آنچه در این مقاله خواهید خواند
مقیاس پذیری (Scalability) راهحل بهبود سرعت شبکه بلاک چین یک ارز دیجیتال مانند بیت کوین است. اما مقیاس پذیری در سیستم های توزیع شده یعنی چه؟
مقیاس پذیری (Scalability) ارز دیجیتال یکی از مهمترین مسائل در سیستم و شبکه بلاک چین است که از زمان خلقت بیت کوین تا کنون، موضوع مورد بحث و بررسی هر دوی متخصصان صنعت و محققان دانشگاهی بوده است. اما آیا بلاک چین هایی نظیر شبکه بیت کوین میتوانند در سطح جهانی به مقیاس پذیری برسند؟ در این مطلب، برخی از چالشهای پیرامون این حوزه و برخی از راههای رفع آن را بررسی میکنیم.
فرقی نمیکند که شما یک محقق بلاک چین در حوزه دانشگاهی باشید یا یک علاقهمند به رمز ارزها، حتما تا به حال اصطلاح «مقیاس پذیری» یا «بلاک چین مقیاس پذیر (Scalable Blockchain)» را شنیدهاید. اکثر اوقات، یک بلاک چین مقیاس پذیر را با شبکهای که توانایی دستیابی به TPS (تراکنش در ثانیه) بالا دارد، یکی میدانند. با این وجود، مقالات متعددی توسط موسسات تحقیقاتی، شرکتها یا حتی رسانهها منتشر شده که هدفشان بررسی و مقایسه عینی مقایس پذیری بلاک چینهای مختلف بوده است.
با اینکه کلمه “Scalability” در بسیاری از حوزههای علمی تعریف مشخصی دارد، اما تعاریف آن در سیستم بلاک چین متعدد است. بنابراین، درک معنی این مسئله اهمیت فراوانی دارد و به رشد سالمتر و سریعتر صنعت و جامعه آن کمک میکند.
مقیاس پذیری یعنی چه؟
در اکثر سیستمهای کامپیوتری (مانند پایگاههای داده یا موتورهای جستجو)، کلمه مقیاس پذیری به قابلیت آن سیستم در اداره مقدار رو به رشد کار یا مقیاسگذاری (کاهش یا افزایش اندازه کار) اشاره دارد. اگر یک سیستم بهجای تخصیص منابع بیشتر (مانند قدرت محاسباتی، سرور یا پهنای باند) نیازمند تلاش بیشتر برای اصلاح سیستم جهت مقابله با حجم کاری افزایش یافته باشد، مقیاسگذاری مناسبی ندارد یا به زبان سادهتر، مقیاسپذیری ضعیفی دارد.
اما در حوزه بلاک چین، کلمه مقیاس پذیری معنای گستردهتری دارد. بهعنوان مثال، در یکی از مهمترین مقالات نوشته شده در این حوزه بهنام “On scaling decentralized blockchains” توسط کرومن و همکاران، هر بهبودی در بلاک چین بیت کوین از نظر توان عملیاتی، تاخیر در شبکه، زمان راهاندازی یا هزینه تراکنش، مقیاسگذاری نام دارد و نتیجه آن مقایسپذیری سیستم است.
امروزه، سیستمهای بلاک چینی متعددی «مقیاس پذیر» محسوب میشوند که توان عملیاتی بسیار متفاوتی دارند. دقت داشته باشید که کلمه «Scalable» یک اصطلاح قیاسی در بلاک چین است. زمانی که به یک سیستم بلاکچینی مقیاس پذیر میگویند، یعنی این سیستم با اصلاح مکانیزم اجماع و/یا تعدیل برخی از پارامترهای شبکه، نسبت به دیگر سیستمهای موجود TPS بیشتری دارد.
در واقع، بلاک چینهای مقیاسپذیر در چهار نوع دستهبندی میشوند:
- مقیاس پذیری بیت کوین: راهحلهای بهبود توان عملیاتی بیت کوین از طریق افزایش اندازه بلاک یا کاهش فاصله بلاکها بدون تغییر الگوریتم اجماع اثبات کار (PoW) را میگویند.
- مقیاس پذیری اثبات کار: راهحلهایی که همچنان در چارچوب اجماع ناکاموتو کار کرده، اما بهوسیله اصلاح الگوریتم، توان عملیاتی بالاتری نسبت به الگوی PoW بیت کوین دارند.
- الگوریتمهای مقیاس پذیری تلرانس خطای بیزانس (BFT): راهحلهای مبتنی بر الگوریتمهای BFT را میگویند که پیچیدگی پیام کمتری نسبت به PBFT (تلرانس خطای بیزانس عملی) دارند.
- توسعه افقی بلاک چینها (Scale-out Blockchains): راهحلهایی که الزام وجود نودهای ماینینگ یا اعتبارسنج برای دانستن کل تاریخچه تراکنشها را کاهش میدهد. بنابراین توان عملیاتی همپای اندازه سیستم قادر به رشد بوده و در نتیجه، به مقیاس پذیری بهتری نسبت به 3 نوع دیگر بالا دست مییابد.
مقیاس پذیری بلاک چین بیت کوین
حالا برای درک بهتر مسئله مقیاس پذیری بلاک چین، بهتر است به اوایل تولد بیت کوین برگردیم. شبکه بیت کوین یک بلاک چین بسیار ساده و دارای کاربرد مشخص است: ارسال و دریافت پول دیجیتال.
بیشتر بخوانید: تفاوت بلاک چین و بیت کوین چیست؟ مقایسه Bitcoin و BlockChain
همهمان میدانیم که بیت کوین مقیاس پذیری ضعیفی دارد. دلیل آن هم نحوه طراحی الگوی اثبات کار آن است. در شبکه بیت کوین، PoW بهعنوان روشی تصادفی جهت تعیین بلاک معتبر بعدی استفاده میشود؛ مثلا، تمام نودها برای تعیین برنده رقابت ماینینگ، الگوی PoW را برای مدت مشخصی اجرا میکنند. علاوه بر این، هر بلاک جدید نیازمند همگامسازی با کل شبکه است تا هر نود بتواند برای استخراج بلاک بعدی رقابت کند. اساسا، الگوی اثبات کار بیت کوین ساختاری آبشاری دارد که در تصویر زیر نشان داده شده است.
از طرفی، اگر همگامسازی یک دقیقه و PoW ده دقیقه طول بکشد، مشکلی ایجاد نمیکند. با این وجود، اگر زمان همگامسازی هر بلوک با هر چرخه PoW مشابه باشد، شبکه بیت کوین دیگر عادلانه و امن نخواهد بود. این اتفاق در صورتی رخ میدهد که اندازه بلاک افزایش یا مدت زمان میان دو بلاک شدیدا کاهش یابد؛ مثلا زمان میان دو بلاک به یک دقیقه برسد. در این حالت، شاهد فورکهای زیادی در شبکه خواهیم بود که در نهایت، به طولانی شدن زمان تایید و کاهش میزان امنیت شبکه میانجامد.
به زبان سادهتر، یکی از موانع ضمنی در شبکه بیت کوین، این است که مدت زمان اجرای الگوریتم اجماع باید بسیار بیشتر از مدت زمان همگامسازی باشد. بنابراین مدت زمان لازم برای همگامسازی، نه تنها به طراحی الگوریتم اجماع بستگی دارد، بلکه به ویژگیهای شبکه مربوطه مانند توان عملیاتی، مدت زمان تاخیر، وضعیت جغرافیایی و سطح عدم تمرکز نیز شدیدا وابسته است.
در مقاله “On scaling decentralized blockchains”، بر اساس وضعیت شبکه بیت کوین در سال 2016 تخمین زده شد که این بلاک چین نمیتواند به بیشتر از 27 تراکنش در ثانیه برسد. اما از آنجایی که امروز اندازه و سایز یا سطح عدم تمرکز شبکهها با یکدیگر متفاوت است، بنابراین این محدودیت به آلت کوینی که از الگوریتم PoW یا حتی شبکه بیت کوین استفاده میکند، قابل تعمیم نیست. با این وجود، محدودیت ذکرشده هنوز پا برجاست. بنابراین، رویکردهای «ساده لوحانهای» که اندازه بلاک را افزایش یا مدت زمان میان دو بلاک را کاهش میدهند، تنها باعث مقیاس پذیری جزئی بلاک چین بیت کوین میشوند.
سپس برای رفع این مشکل، دستهای از پروژههای جدید (مانند لایت کوین) ظهور کردند که صرفا کپیهایی از کدهای بیت کوین بودند. این اتفاق نیز راهحل واقعی رفع این مسئله نبود، چراکه این زنجیرههای جدید شبکههای مجزایی از بیت کوین بودند و برقراری ارتباط میان دو شبکه بیت کوین و لایت کوین امکانپذیر نبود. علاوه بر این، به دلیل افزایش تعداد کاربران در طول زمان، این بلاک چینهای جدید نیز به مواجه با مشکلات مشابه محکوم بودند.
مقیاس پذیری اثبات کار
همانطور که در تصویر زیر مشاهده میکنید، برای پرداختن به مشکل ذکرشده در بالا، طرحهای جدید PoW به گونهای معرفی شدند تا امنیت سیستم دیگر به همگامسازی بلاکهای جدید متکی نباشد. به عبارت دیگر، مدت زمان اجماع لزوما نباید بزرگتر از زمان همگامسازی باشد، بلکه میتواند مشابه یا کاملا با آن برابر باشد.
مثلا، در پروتکل بلاک چین تلرانس خطای بیزانس Bitcoin-NG، از فرایند اجماع بهجای تعیین کل مجموعه تراکنشها، تنها برای تعیین لیدر دور (Round Leader – معتمدترین نود که بلاک جدید را منتشر میکند) استفاده میشود. بنابراین، در این حالت همگامسازی تراکنشها به صورت موازی انجام شده و اندازه بزرگ بلوک کارایی خواهد داشت. برخی از دیگر بلاک چینهای این دسته، اجماع هیبرید (Hybrid Consensus)، بایزیکوین (Byzcoin) و گوست (GHOST) هستند.
اثبات سهام
در این قسمت حتی میتوانیم برخی از طرحهای اثبات سهام (PoS) را در دسته «مقیاس پذیری اثبات کار» قرار دهیم. دلیل این است که در این سیستمها، اجماع شبکه از طریق مکانیزم انتخاب رهبر (لیدر) حاصل میشود که بر اساس تولید تصادفی شماره صورت گرفته و برای دستیابی به عدالت در شبکه، نیازی به اجرای طولانی مدت الگوریتم ندارند.
بنابراین، این الگوها محدودیت «بزرگتر بودن مدت زمان اجماع نسبت به زمان همگامسازی» را نداشته و میتوانند مشابه راهحل «مقیاس پذیری PoW»، مستقیما اندازه بلاک را افزایش دهند. برخی از پروژههای شناختهشده در این دسته اروبوروس (Ouroboros)، اسنو وایت (Snow White)، دفینیتی (Dfinity) و الگورند (Algorand) هستند.
مقیاس پذیری تلرانس خطای بیزانس (BFT)
الگوریتمهای تلرانس خطای بیزانس (Byzantine Fault Tolerance)، یک گروه از الگوریتمهای اجماع هستند که با نودهای خطاکاری که بهصورت خودسرانه رفتار میکنند برخورد کرده، و بنابراین به نودهای درستکار اجازه میدهند تا در یک شبکه غیر قابل اعتماد به اجماع برسند.
این روش، از مسئله کلیات بیزانس که در اوایل دهه 80 میلادی توسط لزلی لمپورت (Leslie Lamport) معرفی شد، نشات گرفته است. با این وجود، بهخاطر نبود کاربرد واقعی، نسخه عملیتر BFT به نام تلرانس خطای بیزانس عملی (Practical Byzantine Fault Tolerance) در سال 1995 معرفی شد.
PBFT الگوریتمی است که (O(N² پیچیدگی پیام دارد. در این مدل، N تعداد کل نودهای ماینینگ یا تاییدکننده در شبکه است. در تصویر زیر، 5 مرحله در هر دور اجماع نشان داده شده است و هر پیکان، نمایانگر یک پیام ارسالی از یک نود به نود دیگر است. همانطور که مشاهده میکنید، برای رسیدن به اجماع در یک پیام، پیام مورد نظر ابتدا باید برای تمامی نودهای شبکه ارسال شود. سپس باید دوباره توسط هر نود برای نود دیگر ارسال شود.
یکی از مشکلات بزرگ PBFT، مقیاس پذیری ضعیف آن نسبت به اندازه شبکه به خاطر پیچیدگی پیام (O(N² است. همانطور که مشخص است، با توجه به افزایش تعداد نودهای اعتبارسنج شبکه، تعداد پیامهای ارسالشده بین نودها برای هر تراکنش نیز به صورت «یک تابع درجه دو» افزایش خواهد یافت. بنابراین از آنجایی که پهنای باند نمیتواند به نسبت تعداد نودها بیشتر شود، با رشد شبکه توان عملیاتی نیز کاهش مییابد که در نتیجه، برای شبکههایی با بیش از مثلا 50 نود کارایی نخواهد داشت.
حال برای رفع این مشکل، چندین ایده برای مقیاس پذیر کردن الگوریتمهای کلاسیک BFT مانند PBFT مطرح شد. اولین ایده، «Speculative BFT» نام دارد. ایده بسیار ساده است: نودها ابتدا بر اساس حدس و گمان فرض میکنند که وضعیت شبکه خوب است و محیط قابل اعتمادی دارد. بنابراین برای رسیدن به اجماع، از طرحهای سادهتر و کاراتر استفاده میکنند. حال در صورت شکست، این افراد به الگوریتم پر هزینهتر PBFT رجوع میکنند. این وضعیت شبیه تبادل «بدترین حالت تاخیر» با «بهترین حالت توان عملیاتی» است.
توجه داشته باشید که در این نوع الگوریتم BFT، مثلا الگوریتمی بهنام Zyzzyva، حتی پیش از مفهوم بلاک چین نیز حضور داشته است. با مهمتر شدن مشکل مقیاس پذیری، ایده Speculative BFT توسط متخصصان و محققان بلاک چین بهعنوان بلوک ساختمانی ایجاد سیستمهای بلاکچینی مانند بایزیکوین، الگورند و تاندرلا (Thunderella) مورد استفاده قرار گرفت.
دومین ایده، حذف عامدانه زوائد در BFT از طریق استفاده از یک ابزار نظریه اطلاعاتی (Information Theoretic) به نام Erasure Coding است که میتواند کارایی استفاده از پهنای باند را بهبود دهد. بهعنوان مثال، الگوریتم Honeybadger-BFT در این دسته قرار میگیرد.
توسه افقی بلاک چین در سیستم های توزیع شده
مفهوم توسعه افقی یا Scale-out، مشابه تعریف اولیه «مقیاس پذیری» در سیستم های توزیع شده است. در این حالت، در یک بلاک چین دارای توسعه افقی یا یک سیستم توزیع شده مقیاس پذیر، با رشد شبکه توان عملیاتی نیز افزایش مییابد. تفاوتهای بنیادین میان این دو سیستم، این است که تعریف مقیاس پذیری در سیستمهای توزیع شده نیازمند رشد خطی عملکرد سیستم به نسبت تعداد سرورها (نودها) است که در حالت کلی، به خاطر عدم تمرکز بلاک چین قابل دستیابی نیست.
بنابراین، محققان حوزه بلاک چین برای رشد توان عملیاتی به صورت خطی به تناسب افزایش اندازه شبکه، مقیاس پذیری کمتری را هدف قرار دادهاند. امروزه طرحهای نهایی این روش، بلاک چینهای «Scale-out» یا «دارای توسعه افقی» نامیده میشوند.
با اینکه ممکن است تا کنون اصطلاح «Scale-out» را نشنیده باشید، اما احتمالا اصطلاح «شاردینگ (Sharding)» شبکه لایتنینگ (Lightning Netwotk)» یا «پلاسما اتریوم (Ethereum Plasma)» به گوشتان خورده است. همگی این طرحها در واقع راهحلهای توسعه افقی برای رفع مشکل مقیاس پذیری بلاک چین هستند.
در توسعه افقی بلاک چینها، برخی از پیامها هیچ وقت به بعضی از نودها نمیرسند. در اینجا منظور از «نود» کسانی هستند که هم کار اعتبارسنجی و هم اجماع را انجام میدهند. در شبکه بیت کوین، این حالت یعنی ماینرها نیاز به دانستن و تایید اعتبار تمامی تراکنشها ندارند. یکی از عواقب مهم این ساختار، افزایش ریسک دو بار خرج کردن یا دابل اسپندینگ (Double Spending) است و نودهایی که از تراکنش مربوطه اطلاع ندارند، ممکن است کوین خرجشده در یک تراکنش را دوباره خرج کنند.
برای جلوگیری از دابل اسپندینگ و در عین حال حفظ حالت فعلی، ما به یک سری نود در شبکه نیاز داریم تا تراکنشها را از طرف دیگر نودها تایید کنند. این امر در نتیجه، باعث ایجاد میزان خاصی از تمرکز در سیستم میشود که در نهایت، یا امنیت یا عدم تمرکز را به خطر میاندازد. این مشکل عموما به نام «Blockchain Scalability Trilemma» یا «سهگانگی مقیاس پذیری بلاک چین» شناخته میشود. به دلیل وجود این سهگانگی، بحثهایی درباره عدم ادامه استفاده از طرحهای توسعه افقی صورت گرفته است.
حال دو استراتژی برای طراحی و پیادهسازی یک بلاک چین Scale-out وجود دارد: یکی از طریق شاردینگ و دیگری بهوسیله طرحهای برون زنجیرهای (Off-Chain).
شاردینگ یعنی تقسیم کل شبکه به زیرشبکههایی به نام شارد (Shard)، که نودهای هر زیرشبکه دارای یک دفتر کل محلی هستند. در حالت ایدهآل، هر نود بهجای کل پیامها، نیازمند دانستن، تایید اعتبار و ذخیره پیامی است که درون شارد خودش منتقل شده است. میتوان شاردینگ را مشابه شکستن بلاک چین اصلی به تعدادی بلاک چین کوچک در نظر گرفت که به دلیل وجود نودهای کمتر برای تایید تراکنشها و مشارکت در اجماع، امنیت کمتری دارند.
بنابراین، بزرگترین چالشها برای استراتژی شاردینگ عبارتند از: 1) نحوه تامین امنیت هر شارد و 2) نحوه تعامل کارا و امن شاردها برای اداره تراکنشهای میان یکدیگر. مثلا، زمانی که رمز ارزها از شارد A به شارد B منتقل میشوند، گیرنده در شارد B باید برای جلوگیری از تقلب توسط فرستندههای مخرب، چندین نود در شارد A را درباره اعتبار ارزها مورد تحقیق و تفحص قرار دهد.
راهحلهای بسیاری برای پرداختن به این دو مشکل معرفی شدهاند که برخی از آنها عبارتند از: امنیلجر (Omniledger)، چیناسپیس (Chainspace)، آرچین (Rchain) و شاردینگ اتریوم (Sharding for Ethereum). ذکر جزئیات این راهحلها از حوصله این مقاله خارج است.
طرحهای برون زنجیرهای از شبکه لایتنینگ الهام گرفتهاند که برای ایجاد کانالهای خارج از بلاک چین میان دو نود جهت انجام پرداختهای سریع و بدون نیاز به ثبت هر تراکنش در شبکه بیت کوین، از حقههای هوشمندانهای استفاده میکنند.
با این وجود، چنین رفاهی هزینهبر است. در این حالت، هر دوی طرفین معامله باید پیش از باز کردن کانال خارج از زنجیره، مقداری ارز به آن ارسال کنند. از زمان معرفی شبکه لایتنینگ، طرحهای برون زنجیرهای بسیاری ورای شبکه بیت کوین و کاربرد صرف برای پرداختهای سریع معرفی شدهاند. برخی از مهمترین پروژههای برون زنجیرهای شامل پلاسما (Plasma)، پولکادات (Polkadot) و لیکوییدیتی (Liquidity) هستند.
معیارهای تعیین مقیاس پذیری بلاک چین
تعیین میزان مقیاس پذیری یک سیستم بلاک چینی بدون داشتن پیشزمینه نظری و تجربه در این حیطه، کار دشواری است. با این وجود، میتوان از سه معیار زیر برای تعیین وجود 3 نوع مقیاس پذیری ذکرشده در بخش قبل در سیستم بلاک چین استفاده کرد:
- آیا بلاک چین از اجماع اثبات کار (PoW) بیت کوین استفاده میکند؟ اگر پاسخ مثبت است، آیا محدودیتی برای همگامسازی دائم و همیشگی نودها با بلاکهای جدید وجود دارد و آیا در غیر این صورت، قدرت ماینینگ آنها ضایع خواهد شد؟ اگر پاسخ مثبت باشد، یعنی الگوی PoW مذکور مقیاس پذیر نیست.
- آیا بلاک چین از اجماع نوع BFT استفاده میکند؟ اگر پاسخ مثبت است، آیا حقه هوشمندانهای برای کاهش پیچیدگی پیامها وجود دارد؟ اگر پاسخ منفی باشد یعنی BFT ما مقیاس پذیری ندارد.
- آیا تمام نودهای ماینینگ یا اعتبارسنج باید از همه پیامهای شبکه اطلاع داشته باشند؟ نود در اینجا یعنی آنهایی که در اجماع سهیم هستند. مثلا، نودهایی که میتوانند بلاک تولید کنند (ماینرها در حوزه ارزهای دیجیتال). اگر پاسخ مثبت است، بلاک چین ما مقیاس پذیر نیست.
راهحلهای لایه 1 و لایه 2
اینکه لایه 1 راهحل بهتری برای مقیاس پذیری بلاک چین است یا لایه 2، موضوع داغ مورد بحثی است که هنوز پاسخ مشخصی برای آن وجود ندارد. با این وجود، با اینکه این راهحلها به موضوع مورد بحث ما در این مقاله مرتبط هستند، اما مستقیما به توضیح این مبحث نخواهیم پرداخت. دلیل این است که این اصطلاحات هنوز به خوبی تعریف نشدهاند و از آنجایی که هدف ما توضیح شفاف مقیاس پذیری است، با پرداختن به این موضوع به افزایش پیچیدگی نخواهیم افزود. اما در این بخش به طور خلاصه هر کدام را توضیح میدهیم.
لایه 1 تمام کاری است که از طریق اصلاح الگوریتمهای اجماع فعلی یا ارائه الگوریتمهای اجماع جدید، برای مقیاس پذیر کردن بلاک چینها انجام میشود. لایه 1 شامل تمام الگوریتمها به غیر از طرحهای برون زنجیرهای است که در این مقاله توضیح دادیم. با این وجود، همانطور که گفتیم، میزان مقیاسپذیری هر کدام از این الگوریتمها با یکدیگر متفاوت است. در طرف مقابل، رویکردهای لایه 2 همان طرحهای برون زنجیرهای هستند. بنابراین از آنجایی که تنها یکی از رویکردهای لایه 1 مانند شاردینگ مقیاس پذیری مشابه رویکر لایه 2 دارد، بهتر است در مبحث مقیاس پذیری این دو راهحل را با یکدیگر مقایسه نکنیم.
آینده مقیاس پذیری بلاک چین
طی دهه گذشته، وضعیت مقیاس پذیری به طرز قابل توجهی بهبود یافته است. میتوانیم این شرایط را با روزهای اولیه ظهور اینترنت مقایسه کنیم که در آن زمان، این فناوری با تعداد روز افزون کاربران و چالشهای حاصل از آن دست و پنجه نرم میکرد.
راهحلی که امروز داریم، خصوصا راهحلهای لایه دو، کارایی نسبتا خوبی دارند، اما این کارایی برای پشتیبانی از بلاک چین در مقیاس جهانی کافی نیست. با این وجود، اوضاع رو به بهبود است.
پاسخ به این مشکل، به ترکیبی از راهحلهای مختلف نیاز دارد. پیشبینی شده است که در آینده، مقیاس پذیری بلاک چینها 100 درصد بهبود خواهد یافت که برای فعالیت در مقیاس جهانی کافی است.
منبع: Medium