مقیاس پذیری و اندازه بلاک در بلاکچین چه اهمیتی دارند؟
اندازه هر بلاک و مقیاسپذیری در بلاکچین میتواند به طور بالقوه تاثیر زیادی در سرعت و ظرفیت شبکه داشته باشد، اما همیشه همه موارد با هم وجود ندارد.
چرا اندازه بلاک مهم است؟
همانطور که میدانید، بلاک چین یا زنجیره بلوک از یک سری بلوک تشکیل شده است که تمامی بلوکها در این زنجیره ثبت میشوند. بلاکها نیز خود شامل یک سری از دادههای تراکنشها هستند. با استفاده از مقدار داده موجود در هر بلاک و همچنین سرعت تولید بلاک، تعداد تراکنشها در ثانیه (tps) تعیین میشود. بدیهی است که هرچه تعداد تراکنشها در ثانیه یا مقدار tps بالاتر باشد، شبکه جذابیت بیشتری دارد، بنابراین توسعهدهندگان همیشه به دنبال راههایی برای بهبود این معیار هستند.
نرخ واقعی بسته به شرایط شبکه متفاوت است، امادر حال حاضر بیت کوین حداکثر در حدود هفت tps است و اتریوم با 15 tps. در مقایسه، شرکت ویزا میتواند در حدود 1700 tps را پردازش کند. بنابراین، اگر این شبکهها بخواهند به عنوان راه حلهای پرداخت جهانی با یکدیگر به رقابت بپردازند، باید بهبودهایی در این زمینه حاصل گردد. از آنجا که نرخ tps یک بلاکچین عمیقاً به اندازه هر بلاک گره خورده است، این موضوع در پذیرش عمومی ارزهای دیجیتال از اصلیترین عوامل خواهد بود. با این حال، همانطور که خواهیم دید، افزایش ساده اندازه به طور نامحدود، تنها یک راه برای نزدیک شدن به مسئله است و عوامل مختلفی در مورد چگونگی حرکت رو به جلو وجود دارد.
چند روش برای مقیاسپذیری بلاک چین وجود دارد؟
راهحلهای مقیاسپذیری به دو شکل وجود دارد: درون زنجیرهای (on-chain) و برون زنجیرهای (off-chain). هر کدام از این راه حلها با مزایا و معایبی همراه هستند، اما تاکنون، هیچ کدام از آنها نسبت به دیگری برتری ندارد.
- مقیاسپذیری درون زنجیرهای
مقیاسپذیری درون زنجیرهای اشاره به این دارد که تغییر در بلاک چین باعث افزایش سرعت میشود. به عنوان مثال، یک رویکرد در مقیاسپذیری شامل کاهش مقدار دادههای استفاده شده در هر تراکنش است. در این صورت تراکنشهای بیشتری در یک بلاک قرار میگیرند. این دقیقا همان چیزی است که بیت کوین با بروزرسانی سگویت (segregated witness یا به صورت مختصر segwit) به آن دست یافت. با تغییر نحوه پردازش دادههای تراکنش، این تغییر امکان پیشرفت چشمگیر در ظرفیت کلی شبکه را برای بیت کوین فراهم کرد.
روش دیگر برای افزایش بالقوه سرعت انجام تراکنشها در یک شبکه، افزایش نرخ تولید بلاک است. اگرچه این کار تا حدی میتواند مفید باشد، اما محدودیتهایی دارد. این محدودیتها شامل زمان لازم برای انتشار یک بلاک جدید از طریق شبکه میباشد. اساساً، شما نمیخواهید قبل از برقراری ارتباط بلاک قبلی با همهی (تقریبا همه) نودهای موجود در شبکه، بلاکهای جدید ایجاد شوند، زیرا این امر باعث ایجاد مشکلاتی در اجماع میگردد.
ایجاد ارتباط یکپارچه بین بلاک چینهای مجزا، روش بالقوه دیگری است که این سیستمها میتوانند مقیاسپذیر شوند. اگر زنجیرههای مختلف بتوانند بین یکدیگر تراکنش کنند، دیگر هر شبکه مجبور نیست که دادههای زیادی را اداره کند. در نتیجه، عملکرد هر یک از آنها بهتر میشود. مطمئناً برای اطمینان از صحت صد در صدی دادههای ارسال شده بین شبکهها، به یک سیستم نیاز است و این همان کاری است که پروژههایی مانند پولکادات (polkadot) در حال حاضر آن را انجام میدهند. این پلتفرم با ترکیب چندین زنجیره بومی و همچنین قراردادهای هوشمند، امکان مقیاسگذاری کل اکوسیستم غیرمتمرکز را پس از پیاده سازی کامل فراهم میکند.
سپس تکنیکی به نام شاردینگ (sharding) وجود دارد، که در آن تراکنشها به شاردها تقسیم میشوند و نودهای مختلف فقط شاردهای خاصی را تأیید میکنند. بنابراین، بسیار کارآمدتر پردازش موازی را انجام میدهند تا سرعت سیستم افزایش یابد. این کار میتواند در سیستمهای الگوریتم اثبات کار (proof-of-work) یا الگوریتم اثبات سهام (proof-of-stake) اعمال شود و قرار است یک جز اصلی در اتریوم 2.0 باشد. همچنین این تکنیک امکان بهبود ظرفیت و سرعت شبکه را فراهم میکند و توسعهدهندگان امیدوارند که در واقعیت شاهد افزایش 100000 تراکنش بر ثانیه باشند.
از طرف دیگر، لازم به ذکر است که چند سال طول میکشد تا فرآیند شاردینگ به طور کامل در اتریوم اجرا شود، و مخالفان اظهار داشتهاند که این امر باعث ایجاد پیچیدگی و آسیب رساندن به امنیت میشود. شاردینگ باعث میشود تا در صورت وقوع حمله، مسئله دوبار خرج کردن (double-spend) افزایش یابد. مسئله این است که برای به دست آوردن یک شارد منابع کمتری نسبت به حمله 51%، لازم است. این امر میتواند منجر به تأیید تراکنشهای نامعتبر شود، مانند ارسال اتر (eth) یکسان به دو آدرس والت مختلف.
برخی از پروژهها سعی کردهاند تا با محدود کردن میزان اعتبارسنجی نودها، سرعت شبکه را بهبود بخشند، البته این موضوع برای اتریوم کاملا متفاوت است.در این مورد میتوان ایاس (eos) را مثال زد که اعتبارسنجهای خود را به 21 مورد محدود کرده است. دارندگان توکن به این 21 اعتبارسنج رای میدهند تا به گونهای منصفانه و توزیع شده حاکمیت را حفظ کنند. در این شبکه 4000 تراکنش بر ثانیه گزارش شده است و توسعهدهندگان اطمینان دارند که میتوانند این مقیاس را افزایش دهند. همین امر باعث شده است تا این پروژه به عنوان یکی از رقبای اصلی اتریوم قرار گیرد. با این حال، غالبا اعتبارسنجهای محدود نوعی تمرکز محسوب میشوند. بنابراین، همه کاربران در این مدل قرار نمیگیرند.
البته، یکی از روشهای متداول در مورد مقیاسپذیری بلاک چین، افزایش اندازه هر بلاک است. با استفاده از این روش، در سال 2017 بیت کوین کش (bch) از بیت کوین منشعب شد. برای آنکه اندازه بلاکها محدودیت 1 مگابایتی را نداشته باشند، انجمن بیت کوین کش قوانین را تغییر داد تا پروژه بتواند بلاکهای 8 مگابایتی و سپس 32 مگابایتی را داشته باشد. در حالی که این امر قطعاً به معنای وجود فضای بیشتر در هر بلاک و افزودن دادههای بیشتر تراکنش خرید بیت کوین کش است، اما برخی میگویند که ادامه رشد اندازه بلاک به طور نامحدود غیرممکن است. بسیاری، این راه حل را صرفاً به تاخیر انداختن مشکل به آینده میدانند و در بدترین حالت، آن را مسبب آسیب رساندن به ماهیت غیرمتمرکز بودن بلاکچین میدانند. با توجه به اینکه، در عمل، میانگین بلاک در شبکه بیت کوین کش هنوز کمتر 1 مگابایت است، بحث در این مورد هنوز حل نشده است و در ادامه این موضوع را به طور کاملتر بررسی خواهیم کرد.
-
مقیاسپذیری برون زنجیرهای
همچنین روشهایی برای بهبود توان شبکه وجود دارد که مستقیماً چیزی را در بلاک چین تغییر نمیدهد. این روشها اغلب “راهحلهای لایه دوم (second-layer solutions)” نامیده میشوند، زیرا «در بالای» بلاک چین قرار میگیرند. یکی از شناختهشدهترین این پروژهها، شبکه لایتنینگ بیتکوین است. اساساً، نودهای شبکه لایتنینگ میتوانند «کانال»هایی را بین یکدیگر باز کرده و مستقیماً با نودهای دیگر تعامل داشته باشند. و تنها در صورت بسته شدن کانال، شبکه لایتنینگ میتواند به صورت درون زنجیرهای ثبت کند. همچنین این نودها میتوانند به یکدیگر متصل شوند و سیستم پرداخت بسیار سریعتر و ارزانتری را ایجاد کنند که تنها در کسری از زمان با شبکه اصلی در تعامل است.
البته اتریوم نیز راهحلهایی در این راستا دارد. برای اولین بار، شبکه رایدن (raiden network) به عنوان نسخه اتریوم از شبکه لایتنینگ، و همچنین یک محصول بلاکچین عمومیتر به نام celer network طراحی شد. این پروژهها نه تنها تراکنشهای برون زنجیرهای را انجام میدهند بلکه تغییراتی را نیز انجام میدهند، که امکان پردازش قراردادهای هوشمند را فراهم میکند. در حال حاضر، بزرگترین اشکال این سیستمها این است که آنها در حال پیشرفت هستند و در صورت عدم ایجاد یا بسته شدن کانالها، کماکان اشکالات و سایر مشکلات فنی ادامه خواهد داشت.
ایدهی مشابهی به نام «زنجیرههای جانبی» است. این زنجیرهها اساساً بلاک چینهایی هستند که از شاخه اصلی منشعب شدهاند و توانایی جابجایی دارایی بومی در بین آنها وجود دارد. این بدان معنی است که میتوان زنجیرههای جانبی را برای اهداف خاصی ایجاد کرد، که فعالیت تراکنش را از شبکه اصلی دور کند و پهنای باند کلی را برای مواردی که باید در زنجیره اصلی مستقر شوند، آزاد گذاشت. این مورد از طریق زنجیره جانبی liquid برای بیتکوین اجرا میشود و در نسخه اتریوم با نام پلاسما (plasma) شناخته میشود. یکی از معایب این سیستم این است که هر یک از زنجیرههای جانبی خود باید توسط نودها ایمن شوند. اگر کاربری نداند که چه کسی در پشت صحنه امور را اداره میکند، این مسئله میتواند منجر به مشکلاتی در رابطه با اعتماد و امنیت گردد.
استدلالهای موافق و مخالف در افزایش اندازه بلاک کدامند؟
کسانی که میخواهند اندازه بلاک را افزایش دهند، اینگونه استدلال میکنند که بلاکهای بزرگتر نه تنها ظرفیت و سرعت را بهبود میبخشند، بلکه هزینهها را نیز کاهش میدهند. متقابلا مخالفین افزایش اندازه بلاک نگرانند که بلاکهای بزرگتر منجر به تمرکز بیشتر شوند.
بسیاری از افراد احساس میکنند افزایش اندازه بلاک یکی از عوامل اصلی برای جذب عموم به بیت کوین (btc) و سایر داراییهای غیرمتمرکز است. حقیقتا باید بگوییم که با افزایش اندازه بلاک، نه تنها میتوان تراکنشهای بیشتری را در هر بلاک تأیید کرد، بلکه متوسط هزینه تراکنش نیز کاهش مییابد. به نظر میرسد این بهترین حالت است، زیرا شبکه هم سریعتر و هم ارزانتر است. این قضیه زمانی قویتر میشود که طرفداران اظهار داشته باشند که سایر راهحلهای مقیاسپذیری، مانند زنجیرهای جانبی فوق الذکر و شاردینگ، هنوز در حال آزمایش هستند و آماده پیادهسازی گسترده نمیباشند.
اینها نکات مهمی هستند. اما مسلماً افزایش اندازه بلاک پیامدهایی دارد. در عین حال، بسیاری از افراد تصور میکنند که با این کار به راحتی میتوان در زمان صرفهجویی کرد، ولی باز هم مسئله اصلی حل نشده است. و راهحلهای پیچیدهتری برای این کار لازم است. دلیلی که آنها برای بلاکهای بزرگتر مطرح میکنند این است که اپراتورهای نود باید هر بلاک جدیدی را که ایجاد میشود، بارگذاری کنند. اگر اندازه بلاکها 1 مگابایت، 4 مگابایت یا حتی 32 مگابایت باشد، باز هم با سخت افزار فعلی مسئله خاصی وجود ندارد. با این حال، اگر قرار باشد بلاک چین در سطح جهانی مورد استقبال واقع شود، این مقادیر کافی نیست. بعد از مدتی ممکن است بلاکها به مقیاس گیگابایت برسند و این میتواند مانعی برای بسیاری از افراد باشد. اگر اکثر کاربران متوسط توانایی پرداخت سخت افزار یا اینترنت را نداشته باشند که بتوانند از پس این کار برآیند، احتمالاً تعداد کمتری این کار را انجام میدهند که منجر به افزایش تمرکز میشود. گریگوری مکسول (gregory maxwell)، توسعهدهنده بیت کوین کور (bitcoin core) در این رابطه میگوید:
وقتی در مورد تراکنشهای درون شبکه صحبت میکنیم، بین مقیاس و عدم تمرکز رابطه خطی وجود ندارد. […] به سبب اتصال گیگابیتی، به پهنای باند زیادی نیاز داریم. با این روش احتمالا کار انجام میشود. اما مشکل این است که خیلی غیرمتمرکز نخواهد بود، و آن وقت چه کسی تمایل دارد یک نود را اجرا کند؟
در نهایت، کسانی که در مورد چنین تغییراتی در شبکه تصمیم میگیرند، استخراجکنندگان هستند. آنها هستند که میگویند از ارتقا پروتکل شبکه پشتیبانی میکنند یا نه. از آنجایی که بسیاری از ماینرها در استخرهای بزرگ قرار دارند، و همه آنها با هم این سیگنال را ارسال میکنند، به طور بالقوه، این امر میتواند نوع دیگری از تمرکز باشد. زیرا مجموع آنها بسیار بیشتر از آنچه ماینرها به تنهایی بتوانند، کار میکنند. خوشبختانه، بیش از یک راه برای دستیابی به این مسئله وجود دارد و همه پروژهها با اندازه بلاکهای نامحدود موافق نیستند. توسعهدهندگان دیگر این مشکل را با روشهای هوشمندانه دیگر برطرف میکنند، به این امید که مقیاسبندی را یک بار برای همیشه سامان دهند.
رویکرد پروژههای مختلف درباره مقیاسپذیری چگونه بوده است؟
تا کنون هیچ راه حلی به عنوان بهترین راه حل انتخاب نشده است و پروژهها همچنان فعالانه در تلاشند تا خلاقانهترین نسخههای این راه حلها را کشف کنند.
در زمان نوشتن این مقاله، بیتکوین از زمان اجرای سگویت (segwit) تاکنون، بومیسازی ماهیت خود را ارتقا نداده است. همان طور که گفته شد، تحقیقات مربوط به شبکه لایتنینگ و شبکههای جانبی همچنان ادامه دارد و بسیاری انتظار دارند نوعی از آن، چیزی باشد که خرید روزانه با بیت کوین را به یک امر عادی تبدیل میکند. همان طور که گفته شد، پروژههایی مانند بیت کوین کش (bch) از ایجاد بلاکهای بزرگتر استقبال کردهاند و bitcoinsv با محدودیت بالایی در بلاکهای خود، یعنی 2 گیگابایت، این کار را انجام داده است. مسلماً این امر منجر به افزایش هزینه نگهداری نود و همچنین مشکلات مکرر در مورد بلاکهای یتیم شده، میشود.
اگرچه 2 گیگابایت چشمگیر است، اما حتی پلتفرمهای بلند پروازانهتری نیز وجود دارند. در پروژهای به نام ilcoin، از پروتکلی به نام rift استفاده شده است که طبق ادعای تیم این پروژه، بلاکهایی با اندازه 5 گیگابایت و توان تولید تا 100,000 tps (تراکنش در ثانیه) را میسر میسازد. توسعهدهندگان ilcoin ادعا میکنند این امکان وجود دارد، زیرا هر بلاک از مجموعههای 25 مگابایتی “mini-blocks ” تشکیل شده است و اینها نیازی به استخراج جداگانه ندارند؛ زیرا به طور خودکار توسط بلاکهای والد تولید میشوند. این تیم اظهار داشت که از این نوع سیستم جدید برای ایجاد cloud blockchain غیرمتمرکز یا dcb استفاده میکند. این راه حل «به لطف توانایی همگامسازی همزمان بلاکها، به عنوان یک راه حل ذخیرهسازی داده جهانی عمل میکند که بینیاز از اعتماد و کاملاً در برابر دستکاری مقاوم است». توسعهدهندگان ilcoin همچنین معتقدند که این اولین پروژهای است که میتواند فایلهای کاربران را به صورت درون زنجیرهای ذخیره کند.
البته همه پروژهها از رویکرد بلاک بزرگتر استفاده نمیکنند. در حالی که شبکههایی مانند زیلیکا (zilliqa) به دنبال استفاده از اتریوم به عنوان ابزار اصلی خود برای ایجاد یک سیستم مقیاس پذیر هستند، اتریوم خود به دنبال مهاجرت به یک الگوریتم اثبات سهام جدید است که با عنوان casper نامگذاری شده است. از طرف دیگر، پروژه کاردانو (cardano) رویکرد جدیدی به نام hydra را ایجاد کرده است که طبق آن هر کاربر 10 «head» تولید میکند و هر head به عنوان یک کانال جدید برای توان عملیاتی در شبکه عمل میکند. امیدواریم این رویکرد امکان مقیاسپذیری یکپارچه را فراهم کند، زیرا افزایش استفاده از شبکه، باید ظرفیت بیشتری نیز ایجاد کند.
مساله هنوز حل نشده است
با وجود بسیاری از کارهای خوب انجام شده، هیچ راه حل روشنی برای مقیاسبندی بلاکچین وجود ندارد و ممکن است هرگز وجود نداشته باشد.
همه امکاناتی که در بالا بررسی شد برای کمک به وارد کردن داراییهای دیجیتال به یک مرحله جهانی است، اما هنوز هیچکدام حرف آخر را نمیزنند. همان طور که مطرح شد، هر یک دارای نکاتی مثبت و منفی هستند و غیرقابل تصور است که به سادگی یک برنده وجود نداشته باشد. پروژههای مختلف با اهداف منحصر به فرد، ممکن است لازم باشد از طرق مختلف مقیاسبندی شوند. حتی قابل قبول است که میتوان بیش از یک ایده را به طور همزمان استفاده کرد تا مزایای هر یک را چند برابر کند.
با گذشت زمان، تاریخچه نحوه مقیاسبندی بلاکچینها نوشته میشود، اما ما هنوز به این نقطه نرسیدهایم. با آزمایش و تجسم مجدد راه حلها، توسعهدهندگان باید هر روز به سیستم پردازش داده جهانی نزدیک شوند که از پیشنهادات فعلی پیشی بگیرد. در حال حاضر، داشتن ذهنیت باز و تمایل به امتحان چیزهای جدید مهم است، زیرا شاید پاسخی که رهبران پروژه به دنبال آن هستند در همین لحظه در حال آزمایش باشد.