به طور کلی، مقیاسپذیری به توانایی رشد یک سیستم جهت تامین رشد تقاضا اشاره دارد. وقتی از مقیاسپذیری در بلاکچین صحبت میکنیم، منظور ما افزیش ظرفیت آن برای انجام تراکنشهای بیشتر است. پروتکلهایی مانند بیتکوین از نقاط قوت زیادی برخوردار هستند، اما مقیاسپذیری جز آنها نیست. اگر بیتکوین در یک دیتابیس مرکزی اجرا میشد، افزایش سرعت و توان آن بسیار ساده بود. اما ارایه یک ارزش جدید در زنجیره بیتکوین (برای مثال مقاومت، سانسور) نیازمند آن است که تعداد بسیاری از مشارکتکنندگان یک نسخه از بلاکچین را همگام سازی کنند.
مشکل مقیاسپذیری بلاکچین
اجرای نود بیتکوین نسبتاً ارزان است و حتی دستگاههای ساده نیز میتوانند این کار را انجام دهند. اما از آنجا که هزاران نود باید همزمان به روز شوند، محدودیتهای خاصی در ظرفیت آنها وجود دارد. کپها (CAPS) روی تراکنشهایی که میتواند به صورت درون زنجیرهای پردازش شوند، قرار داده میشود تا از رشد غیر واقعی دیتابیس جلوگیری کنند؛ چرا که در این صورت، نودها قادر به ادامه فعالیت نیستند. علاوه بر این، اگر بلاکها زیادی بزرگ باشند، نمیتوان آنها را به سرعت در شبکه انتقال داد.
یک بلاکچین را میتوان به قطاری تشبیه کرد که در فواصل زمانی معین حرکت میکند. در هر واگن صندلیهای محدودی وجود دارد و مسافران برای گرفتن بلیط، باید ضمانت یک صندلی خالی را پیشنهاد دهند. اگر همه سعی کنند همزمان باهم سوار قطار شوند، قیمت آن بالا خواهد رفت. شبکهای که با تراکنشهای در حال انتظار (pending transactions)، باعث میشود کاربران هزینههای بالاتری را برای ثبت تراکنشهای خود در زمان معین پرداخت کنند. برای این مساله، یک راه حل این است که اندازه واگنها بزرگتر شوند. این به معنای صندلیهای بیشتر، توان بیشتر و قیمت بلیط ارزانتر است. اما هیچ تضمینی وجود ندارد که صندلیها مانند گذشته پر شوند. واگنها نمیتوانند به طور مداوم بزرگتر شوند، همانطور که بلاکها یا محدودیتهای گس بلاکها نمی توانند بی نهایت بزرگ شوند. حالت دوم ماندن نودها در شبکه را پرهزینهتر میکند، زیرا برای سینک ماندن در زنجیره؛ به سختافزار گران قیمتتری نیاز دارند.
ویتالیک بوترین، خالق اتریوم برای توصیف چالش پیش روی زنجیرهها، مقیاسپذیری سهگانه را ابداع کرد. او این نظریه را مطرح میكند كه پروتكلها باید بین مقیاس پذیری، امنیت و تمرکززدایی، سبک سنگین کنند. این ویژگیها تا حدودی با یکدیگر مغایرت دارند - با تمرکز بیش از حد بر دو مورد، مورد دیگر تضعیف خواهد شد. به همین دلیل، بسیاری، مقیاسپذیری را موضوعی میدانند که باید خارج از زنجیره انجام شود، در حالی که امنیت و تمرکز زدایی باید در داخل زنجیره به حداکثر برسد.
راه حلهای مقیاسگذاری برون زنجیرهای چیست؟
مقیاسگذاری برون زنجیرهای به رویکردی اطلاق میشود که امکان انجام تراکنشها را بدون پر کردن زنجیره بلاکها میسر میکند. پروتکلهایی که به زنجیره متصل میشوند، بدون اینکه تراکنشها روی زنجیره اصلی ظاهر شود، به کاربران امکان ارسال و دریافت وجوه را میدهند. ما به دو مورد از پیشرفتهای قابل توجه در این حوزه خواهیم پرداخت: سایدچین (زنجیره جانبی) و کانالهای پرداخت.
سایدچین (Sidechain) چیست؟
ساید چنین یک بلاکچین مجزا است. با این حال، یک بستر مستقل نیست، زیرا به نوعی به زنجیره اصلی متصل شده است. زنجیره اصلی و فرعی با یکدیگر تعامل میکنند، به این معنی که داراییها میتوانند آزادانه از یکی به دیگری انتقال پیدا کند. چندین روش برای اطمینان از انتقال وجوه در سراسر شبکه وجود دارد. در بعضی موارد دارایی از زنجیره اصلی به یک آدرس ویژه منتقل میشود. البته داراییها واقعاً منتقل نشده اند – بلکه در آدرس کدگزاری شده و مبلغی معادل آن در سایدچین ایجاد می شود. گزینه سادهتر (هرچند متمرکزتر) ارسال پول به امانت داری است که مبالغ را در ازای مبلغ ثبت شده در سایدچین مبادله میکند.
سایدچین (Sidechain) چگونه کار میکند؟
فرض کنید دوست ما آلیس، پنج بیتکوین دارد. او میخواهد 5 بیتکوین خود را در سایدچین به یک کوین دیگر تبدیل کند – اجازه دهید آنها را سایدکوین بنامیم. سایدچین مورد نظر از یک مجرای دو طرفه استفاده میکند، به این معنی که کاربران میتوانند دارایی خود را از زنجیره اصلی به زنجیره جانبی و برعکس منتقل کنند. به یاد داشته باشید که سایدچین یک بلاکچین جداگانه است. بنابراین، دارای بلاکها، نودها و مکانیسمهای اعتبار سنجی خاص خود خواهد بود. آلیس برای بدست آوردن ساید کوینهای خود، پنج بیتکوین را به آدرس دیگری ارسال میکند. این آدرس متعلق به شخصی است که پس از دریافت بیتکوین، 5 سایدکوین به آلیس انتقال می دهد. از طرف دیگر، ممکن است نوعی ویژگی وجود داشته باشد که در آن نرمافزار پس از شناسایی پرداخت، سایدچینها را به طور خودکار منتقل کند.
آلیس اکنون کوینهای خود را به سایدکوین تبدیل کرده است، اما او همیشه میتواند برای بازیابی بیتکوینهای خود فرآیند را معکوس کند. حالا که او وارد سایدچین شد، آزاد است که روی این زنجیره مجزا، معامله کند. او میتواند درست به مانند زنجیره اصلی، کوینها را رد و بدل کند. به عنوان مثال، او میتواند به دوستش باب، یک سایدکوین بپردازد. هنگامی که او میخواهد به بیتکوین برگردد، میتواند چهار سایدکوین باقی مانده خود را به یک آدرس ویژه ارسال کند. پس از تأیید معامله، چهار بیتکوین قفل میشوند و به آدرس او بر روی بلاکچین اصلی تحویل داده میشوند.
چرا از سایدچین استفاده میشود؟
شاید سوال کنید که هدف از این ابداع چیست؟ چرا آلیس فقط از بلاکچین بیتکوین استفاده نمی کند؟ پاسخ شما این است که سایدچین ممکن است قابلیتهایی داشته باشد که بیتکوین فاقد آن است. بلاکچینها سیستمهای معاملاتی به دقت مهندسی شدهای هستند. در حالی که بیتکوین امن ترین و غیرمتمرکزترین رمزارز دنیا است، اما از نظر توان عملیاتی بهترین نیست. در حالی که معاملات بیتکوین سریعتر از روشهای معمولی است، اما در مقایسه با سایر سیستمهای بلاکچین نسبتاً کند است. بلاکها هر ده دقیقه استخراج میشوند و در صورت انباشت شبکه، هزینهها (فی) میتواند به میزان قابل توجهی افزایش پیدا کنند. مسلماً برای پرداختهای کوچک روزانه، نیازی به این سطح از امنیت نیست. اگر آلیس در حال پرداخت برای قهوه خود باشد، نمیخواهد زمان زیادی در انتظار تأیید معامله باشد، چرا که قهوهی او تا تایید تراکنش سرد خواهد شد.
سایدچینها، محدود به این قوانین نیستند. در واقع، آنها حتی نیازی به استفاده از اثبات کار ندارند. شما میتوانید از هر مکانیزم اجماعی استفاده کنید، به یک اعتبارسنج اعتماد کنید یا بعضی از پارامترها را تغییر بدهید. میتوانید بهروزرسانیهایی را اضافه کنید که در زنجیره اصلی وجود ندارند، بلاکهای بزرگتری تولید کنید و ظرفیتهای جدیدی اضافه کنید. جالب اینجاست که، سایدچینها در عین داشتن باگهای مهم، تاثیری بر بر زنجیره اصلی ندارند. این به آنها اجازه میدهد تا به عنوان پلتفرمهای آزمایشی مورد استفاده قرار گیرند و ویژگیهایی را ابداع كنند كه بر خلاف زنجیره اصلی، نیازی به اجماع ندارد. مشروط بر اینکه کاربران از معاملات خود راضی باشند، سایدچین میتواند گامی اساسی برای مقیاسگذاری باشد. هیچ نیازی به ذخیره تمام تراکنشهای سایدچین توسط نودهای زنجیره اصلی نیست. آلیس میتوانست به کمک یک معامله بیتکوین صدها معامله سایدچین را انجام دهد و سپس از آن خارج شود. او فقط دو بار وارد بلاکچین بیتکوین شده ویک بار نیز از آن خارج شد.
کانال پرداخت (State channel) چیست؟
کانالهای پرداخت همان اهداف ساید چینها را در مقیاسپذیری دنبال میکنند اما اساساً بسیار متفاوت هستند. آنها مانند سایدچینها، برای جلوگیری از پر شدن زنجیره، تراکنشها را از زنجیره اصلی خارج میکنند اما برخلاف سایدچینها نیازی به ایجاد یک زنجیره مجزا ندارند. کانال پرداخت از یک قرارداد هوشمند استفاده میکند تا کاربران بتوانند بدون انتشار تراکنشها در بلاکچین، اقدام به مبادلات خود کنند. آنها این کار را همچنین با استفاده از یک توافق تنظیم شده توسط یک نرم افزار، بین دو نفر انجام می دهد.
کانال پرداخت (State channel) چگونه کار میکند؟
در مدلهایی مانند شبکه محبوب لایتنینگ، دو طرف ابتدا کوینهای خود را در آدرسی که مشترکاً مالک آن هستند، واریز میکنند. این یک آدرس چند منظوره است که باید برای تبادلات، توسط هر دو طرف امضا شود. بنابراین، اگر آلیس و باب چنین آدرسی را ایجاد میکردند، وجوه فقط با رضایت هر دوی آنها قابل انتقال میبود. فرض کنیم که آلیس و باب هر کدام 10 بیتکوین را به یک آدرس انتقال دادهاند. اگر آلیس میخواست یک کوین به باب بدهد، میتوانند بالانس حسابهای خود را بروز کنند تا نشان دهد که آلیس 9 بیتکوین و باب 11 بیتکوین دارد. تا زمانی که آنها مانده حساب خود را بروزرسانی کنند، ،نیازی به ثبت اطللاعاتشان در بلاکچین ندارند.
اما وقتی زمانش فرا رسید، فرض کنید که آلیس 5 بیتکوین و باب 15 بیتکوین دارد. سپس آنها میتوانند تراکنشی ایجاد کنند که این مانده حسابها را به آدرسهای متعلق به طرفین ارسال کند، سپس آن را امضا کرده و منتشر کنند. آلیس و باب می توانستند ده، صد و یا هزار تراکنش را در ترازنامه خود ثبت کنند. اما در بستر بلاکچین، آنها فقط دو عملیات انجام داده اند: یکی برای تراکنش اولیه، و دیگری برای توزیع مجدد مانده حسابها در پایان معاملات. به غیر از این دو، تمام تراکنشهای دیگر رایگان و تقریباً فوری انجام میپذیرد چرا که در خارج از زنجیره انجام شدهاند و هیچ هزینه استحراجی برای پرداخت و تأیید بلاک وجود ندارد که منتظر آن بمانند. البته، مثال بالا، نیاز به همکاری دو طرف دارد، که وضعیت ایدهآلی برای غریبهها نیست. با این وجود، میتوان از مکانیزمهای ویژهای برای جریمه هرگونه تقلب در سیستم استفاده کرد، بنابراین طرفین میتوانند با اطمینان بدون نیاز به اعتماد به یکدیگر ارتباط برقرار کنند.
مسیریابی پرداخت
بدیهی است، کانالهای پرداخت برای طرفینی مناسب است که حجم بالایی از معاملات را داشته باشند. شبکهای شدن این کانالها نیز قابل دستیابی است، به این معنی که آلیس میتواند به طرفی که با او مستقیماً در ارتباط نیست پرداخت کند. اگر باب کانالی با کارول داشته باشد، آلیس میتواند به او کوین انتقال دهد به این صورت که او وجوهی را به کانال باب منتقل میکند، و باب به نوبه خود آنها را به کانال کارول انتقال میدهد. وقتی کارول نیز به یک فرد دیگر در این سیستم متصل باشد، همین کار را میتواند انجام دهد. چنین شبکهای به یک توپولوژی توزیعشده تبدیل میشود که همه در آن به جفتهای مشترک متصل میشوند. غالباً چندین مسیر به یک مقصد وجود خواهد داشت، و کاربران قادر خواهند بود تا مؤثرترین مسیر را انتخاب کنند.
نتیجه گیری
در این مطلب، ما دو رویکرد مقیاسپذیری را مورد بحث قرار دادیم که اجازه میداد تراکنشها بدون سنگین کردن زنجیره بلاکچین انجام شود. فناوریهای سایدچین و کانالهای پرداخت هنوز تا رسیدن به بلوغ خود فاصله دارند، اما این فناوریها توسط کاربرانی که خواهان دور زدن کاستیهای تراکنشها هستند، به طور فزایندهای مورد استفاده قرار میگیرند. با گذشت زمان و افزایش تعداد کاربران شبکه، مهم است که تمرکززدایی نیز تقویت شود. این امر تنها با اعمال محدودیتهایی بدست میآید که منجر شوند نودهای جدید به راحتی به شبکه بپیوندند. طرفداران راهحلهای مقیاسپذیری برون زنجیرهای بر این باورند که، با گذشت زمان، زنجیره اصلی فقط برای تسویه حساب معاملات با ارزش بالا و یا برای وارد و خارج از سایدچینها و کانالها مورد استفاده قرار خواهند گرفت.
بیشتر بخوانید:
بلاک چین چیست؟ همه چیز درمورد بلاک چین + ویدیو
مقیاس پذیری در بلاک چین به چه معناست؟
فناوری بلاک چین چگونه کار می کند؟
بهترین زبان های برنامه نویسی بلاک چین کدامند؟
منبع: مرکز تحقیقات بلاکچین