آشنایی با مفهوم مقیاس پذیری در بلاک چین
مقیاس پذیری (Scalability) راهحل بهبود سرعت شبکه بلاک چین یک ارز دیجیتال مانند بیت کوین است. اما مقیاس پذیری در سیستم های توزیع شده یعنی چه؟
مقیاس پذیری (Scalability) ارز دیجیتال یکی از مهمترین مسائل در سیستم و شبکه بلاک چین است که از زمان خلقت بیت کوین تا کنون، موضوع مورد بحث و بررسی هر دوی متخصصان صنعت و محققان دانشگاهی بوده است. اما آیا بلاک چین هایی نظیر شبکه بیت کوین میتوانند در سطح جهانی به مقیاس پذیری برسند؟
فرقی نمیکند که شما یک محقق بلاک چین در حوزه دانشگاهی باشید یا یک علاقهمند به رمز ارزها، حتما تا به حال اصطلاح «مقیاس پذیری» یا «بلاک چین مقیاس پذیر (Scalable Blockchain)» را شنیدهاید. اکثر اوقات، یک بلاک چین مقیاس پذیر را با شبکهای که توانایی دستیابی به TPS (تراکنش در ثانیه) بالا دارد، یکی میدانند. با این وجود، مقالات متعددی توسط موسسات تحقیقاتی، شرکتها یا حتی رسانهها منتشر شده که هدفشان بررسی و مقایسه عینی مقایس پذیری بلاک چینهای مختلف بوده است.
با اینکه کلمه “Scalability” در بسیاری از حوزههای علمی تعریف مشخصی دارد، اما تعاریف آن در سیستم بلاک چین متعدد است. بنابراین، درک معنی این مسئله اهمیت فراوانی دارد و به رشد سالمتر و سریعتر صنعت و جامعه آن کمک میکند.
مقیاس پذیری یعنی چه؟
در اکثر سیستمهای کامپیوتری (مانند پایگاههای داده یا موتورهای جستجو)، کلمه مقیاس پذیری به قابلیت آن سیستم در اداره مقدار رو به رشد کار یا مقیاسگذاری (کاهش یا افزایش اندازه کار) اشاره دارد. اگر یک سیستم بهجای تخصیص منابع بیشتر (مانند قدرت محاسباتی، سرور یا پهنای باند) نیازمند تلاش بیشتر برای اصلاح سیستم جهت مقابله با حجم کاری افزایش یافته باشد، مقیاسگذاری مناسبی ندارد یا به زبان سادهتر، مقیاسپذیری ضعیفی دارد.
اما در حوزه بلاک چین، کلمه مقیاس پذیری معنای گستردهتری دارد. بهعنوان مثال، در یکی از مهمترین مقالات نوشته شده در این حوزه بهنام “On scaling decentralized blockchains” توسط کرومن و همکاران، هر بهبودی در بلاک چین بیت کوین از نظر توان عملیاتی، تاخیر در شبکه، زمان راهاندازی یا هزینه تراکنش، مقیاسگذاری نام دارد و نتیجه آن مقایسپذیری سیستم است.
امروزه، سیستمهای بلاک چینی متعددی «مقیاس پذیر» محسوب میشوند که توان عملیاتی بسیار متفاوتی دارند. دقت داشته باشید که کلمه «Scalable» یک اصطلاح قیاسی در بلاک چین است. زمانی که به یک سیستم بلاکچینی مقیاس پذیر میگویند، یعنی این سیستم با اصلاح مکانیزم اجماع و/یا تعدیل برخی از پارامترهای شبکه، نسبت به دیگر سیستمهای موجود TPS بیشتری دارد.
در واقع، بلاک چینهای مقیاسپذیر در چهار نوع دستهبندی میشوند:
- مقیاس پذیری بیت کوین: راهحلهای بهبود توان عملیاتی بیت کوین از طریق افزایش اندازه بلاک یا کاهش فاصله بلاکها بدون تغییر الگوریتم اجماع اثبات کار (PoW) را میگویند.
- مقیاس پذیری اثبات کار: راهحلهایی که همچنان در چارچوب اجماع ناکاموتو کار کرده، اما بهوسیله اصلاح الگوریتم، توان عملیاتی بالاتری نسبت به الگوی PoW بیت کوین دارند.
- الگوریتمهای مقیاس پذیری تلرانس خطای بیزانس (BFT): راهحلهای مبتنی بر الگوریتمهای BFT را میگویند که پیچیدگی پیام کمتری نسبت به PBFT (تلرانس خطای بیزانس عملی) دارند.
- توسعه افقی بلاک چینها (Scale-out Blockchains): راهحلهایی که الزام وجود نودهای ماینینگ یا اعتبارسنج برای دانستن کل تاریخچه تراکنشها را کاهش میدهد. بنابراین توان عملیاتی هم پای اندازه سیستم قادر به رشد بوده و در نتیجه، به مقیاس پذیری بهتری نسبت به 3 نوع دیگر بالا دست مییابد.
مقیاس پذیری در بلاک چین
تکنولوژی بلاکچین آمد تا بسیاری از مشکلات سیستمهای سنتی مثل عدم شفافیت، متمرکز بودن و امنیت را حل کند و در بسیاری موارد جایگزین آنها شود. اما بلاکچینهای امروزی تا چه حد برای پذیرش عمومی آماده هستند؟ بلاکچین بیت کوین امروزه توانایی انجام تنها ۷ تراکنش در ثانیه و اتریوم ۱۵ تراکنش در ثانیه را دارد. این درحالیست که شبکه ویزا کارت تا ۲۴۰۰۰ تراکنش در ثانیه را می تواند انجام دهد. در اواخر سال ۲۰۱۷ دیدیم که بعد از افزایش بیش از حد تعداد تراکنش های بیت کوین و اتریوم و خیلی دیگر از کوینها، بسیاری از تراکنش ها به دلیل پایین بودن سرعت بلاکچین آن ها، مدت طولانی در انتظار تایید میماندند و کارمزد تراکنشها در نتیجه این شلوغی شبکه بسیار افزایش یافته بود. به این مشکل عدم مقیاس پذیری این ارزهای دیجیتال گفته میشود. مقیاس پذیری (Scalibility) یعنی شبکه توانایی پاسخگویی به میزان تقاضای شبکه را داشته باشد.
در یک شبکه از کامپیوترها که به یک منظور خاص بوجود آمدهاند، مقیاس پذیری شبکه یک مسئله اصلی است. ارزهای دیجیتال هم دارای یک شبکه غیر متمرکز از کامپیوترها هستند که به منظور انتقال تراکنش ها، تایید آنها و ذخیرهشان بر روی بلاکچین، بوجود آمدهاند. مقیاس پذیری این نوع شبکه ها از سه قسمت مختلف تشکیل شده است :
- تعداد تراکنشها در ثانیه (TPS)
- حجم مورد نیاز برای ذخیره سازی بلاکچین
- سرعت انتقال اطلاعات در شبکه
هر سه این عوامل پارامترهایی هستند که یک شبکه مقیاس پذیر بسته به تقاضای شبکه باید توان پاسخگویی آنها را داشته باشد. اما در این بین بیشترین صحبت ها پیرامون تعداد تراکنشی است که یک بلاکچین در ثانیه می تواند انجام دهد. مثلا در شبکه بیت کوین تقریبا هر ده دقیقه یک بلوک جدید به بلاکچین آن اضافه می شود که شامل تعدادی تراکنش است. حجم بلوکهای بیت کوین در حال حاضر به یک مگابایت محدود شده است. هر تراکنش بسته به تعداد وروردیها (Input) و خروجی هایش (Output) حجم متفاوتی دارد. اما اگر به صورت میانگین حجم هر تراکنش را ۲۵۰ بایت در نظر بگیریم، هر بلوک که هر ۱۰ دقیقه یکبار ساخته میشود می تواند حدود ۴۰۰۰ تراکنش را در خود جای دهد. با این فرضیات بیت کوین حدود ۷ تراکنش در ثانیه را میتواند تایید کند و در صورت افزایش تعداد آنها، تراکنش ها باید مدت بیشتری را در MemPool به انتظار تایید بنشینند و ازآنجا که اولویت تایید با تراکنشهای با کارمزد بیشتر است در این مواقع کارمزد تراکنش ها هم افزایش می یابند.
نکته اول اینکه مقیاس پذیری یک مسئله نسبی است و نه قطعی یعنی نمیتوان گفت مثلا شبکه بیت کوین در کل مقیاس پذیر نیست یا هست، چون این پارامتر نسبت به زمان متغیر است و بستگی به میزان تقاضای شبکه دارد و یک راه حل نهایی برای آن وجود ندارد، بلکه به نسبت افزایش تقاضای شبکه باید ظرفیت آن به روشهای مختلف در طول زمان افزایش یابد. نکته دوم اینکه در یک شبکه متمرکز مثل شبکه ویزا کارت دستیابی به مقیاس پذیری بسیار ساده تر است و با هزینه بر روی زیرساختها و سرورها میتوان تعداد تراکنشها در ثانیه (TPS) را افزایش داد. اما در یک شبکه غیر متمرکز مسئله بسیار پیچیده تر است. برای روشن تر شدن این پیچیدگی باید ابتدا با سهگانه مقیاس پذیری که ویتالیک بوترین آن را توصیف کرد و میتواند کلید حل بسیاری از مسائل باشد، آشنا شوید.
سهگانه مقیاس پذیری
ویتالیک میگوید هیچگاه یک بلاکچین نمی تواند هم زمان سه پارامتر زیر را با هم داشته باشد، بلکه تنها دوتا از آنها را می تواند داشته باشد و برای به دست آوردن ویژگی سوم باید یکی از آن دو ویژگی که دارد را فدا کند. این سه ویژگی عبارتند از:
- مقیاس پذیری (Scalibility)
- غیرمتمرکز بودن (Decentralization)
- امنیت (Security)
مثلا بیت کوین و اتریوم شبکههایی غیرمتمرکز و با امنیت بالا دارند ولی در حال حاضر مشکل مقیاس پذیری دارند. ولی هرکدام قصد دارند در آینده با به کار بردن فناوریهای جدیدی این مشکل را حل کنند.
افزایش سایز بلوک ها
شاید بتوان گفت سادهترین راه افزایش TPS، افزایش سایز بلوکها در بلاکچین است. در سال ۲۰۱۷ بیت کوین کش به منظور افزایش تعداد تراکنشهای بیت کوین در یک ثانیه، همین راهکار را در پیش گرفت و یک فورک سخت (Hard Fork) از بیت کوین ایجاد کرد و حجم هر بلوک را از یک مگابایت به هشت مکابایت افزایش داد.
اما باید گفت همیشه سادهترین راه بهترین راه نیست. افزایش سایز بلوکها، TPS را میتواند افزایش دهد ولی از سوی دیگر موجب افزایش حجم کلی بلاکچین میشود و یک گره کامل (Full Node) احتیاج به فضای بیشتری جهت ذخیره بلاکچین خواهد داشت. در حال حاضر یک گره کامل بیت کوین باید کل بلاکچین بیت کوین را با حجم تقریبی ۲۱۵ گیگابایت دانلود نماید که این مقدار با اضافه شدن بلوکهای جدید به تدیج زیادتر هم میشود، حال با چند برابر کردن سایز بلوکها حجم کل بلاکچین هم چند برابر میشود. در حال حاضر افراد زیادی قادر به دانلود و ذخیره سازی این حجم از اطلاعات جهت داشتن یک فول نود شبکه بیت کوین هستند اما اگر این حجم چند برابر شود آنگاه افراد معدودتر و شرکتهای بزرگ تنها قادر به انجام این کار خواهند بود و این امر باعث کاهش غیرمتمرکز بودن شبکه (ضلع دیگر سهگانه مقیاس پذیری) میشود.
افزایش نرخ تولید بلوکهای جدید
این کار هم موجب افزایش TPS خواهد شد، هم سرعت تایید تراکنشها. ولی مانند راهکار قبلی حجم کلی بلاکچین را افزایش خواهد داد و در نتیجه غیر متمرکز بودن را کاهش میدهد. به علاوه در صورتی که نرخ تولید بوکهای جدید کاهش یابد یعنی در مدت زمان کمتری بلوک های جدید ساخته شود، احتمال اینکه دو ماینر در دوجای مختلف همزمان بلوک جدیدی را استخراج کنند، افزایش می یابد و در نتیجه تعداد فورکهای ناخواسته در نتیجه ماین همزمان بلوک جدید افزایش پیدا میکند.
کاهش حجم تراکنشها
کاهش حجم تراکنش ها باعث میشود تعداد بیشتری تراکنش در یک بلوک جا شوند، در نتیجه TPS افزایش یابد. راهکارهای مختلفی تا کنون برای کاهش حجم تراکنش ها پیشنهاد شدهاند. مثلا Segwit که یک فورک نرم (Soft Fork) بیت کوین بود، باعث میشود تراکنشهایی از این نوع تا ۶۰ درصد حجم کمتری از بلوک را اشغال کنند و کارمزد پایینتری نسبت به تراکنشهای عادی (Legacy) داشته باشند. و یا راهکارهای جدیدتری مانند Aggregated Siganture یا امضاهای دیجیتال متراکم شده که از طریق آن برای یک تراکنش، فقط یک امضای دیجیتال لازم است و با این ترفند تا حد زیادی حجم تراکنشها را کاهش می دهد. قسمت زیادی از حجم یک تراکنش مربوط به امضاهای دیجیتال آن است.
راهحلهای لایه 1 و لایه 2
اینکه لایه 1 راهحل بهتری برای مقیاس پذیری بلاک چین است یا لایه 2، موضوع داغ مورد بحثی است که هنوز پاسخ مشخصی برای آن وجود ندارد. با این وجود، با اینکه این راهحلها به موضوع مورد بحث ما در این مقاله مرتبط هستند، اما مستقیما به توضیح این مبحث نخواهیم پرداخت. دلیل این است که این اصطلاحات هنوز به خوبی تعریف نشدهاند و از آنجایی که هدف ما توضیح شفاف مقیاس پذیری است، با پرداختن به این موضوع به افزایش پیچیدگی نخواهیم افزود. اما در این بخش به طور خلاصه هر کدام را توضیح میدهیم.
لایه 1 تمام کاری است که از طریق اصلاح الگوریتمهای اجماع فعلی یا ارائه الگوریتمهای اجماع جدید، برای مقیاس پذیر کردن بلاک چینها انجام میشود. لایه 1 شامل تمام الگوریتمها به غیر از طرحهای برون زنجیرهای است. با این وجود، همانطور که گفتیم، میزان مقیاسپذیری هر کدام از این الگوریتمها با یکدیگر متفاوت است. در طرف مقابل، رویکردهای لایه 2 همان طرحهای برون زنجیرهای هستند. بنابراین از آنجایی که تنها یکی از رویکردهای لایه 1 مانند شاردینگ مقیاس پذیری مشابه رویکرد لایه 2 دارد، بهتر است در مبحث مقیاس پذیری این دو راهحل را با یکدیگر مقایسه نکنیم.
آینده مقیاس پذیری بلاک چین
طی دهه گذشته، وضعیت مقیاس پذیری به طرز قابل توجهی بهبود یافته است. میتوانیم این شرایط را با روزهای اولیه ظهور اینترنت مقایسه کنیم که در آن زمان، این فناوری با تعداد روز افزون کاربران و چالشهای حاصل از آن دست و پنجه نرم میکرد.
راهحلی که امروز داریم، خصوصا راهحلهای لایه دو، کارایی نسبتا خوبی دارند، اما این کارایی برای پشتیبانی از بلاک چین در مقیاس جهانی کافی نیست. با این وجود، اوضاع رو به بهبود است.
پاسخ به این مشکل، به ترکیبی از راهحلهای مختلف نیاز دارد. پیشبینی شده است که در آینده، مقیاس پذیری بلاک چینها 100 درصد بهبود خواهد یافت که برای فعالیت در مقیاس جهانی کافی است.
منبع : بلک مجیک کریپتو