اگر با دنیای بلاک چین و ارزهای دیجیتال آشنا باشید، حتماً تاکنون نام پولکادات (Polkadot) را شنیدهاید. پلتفرم نسل سوم بلاک چین که پس از ۳ سال تحقیق و توسعه، بلأخره در ماه مه ۲۰۲۰ (اردیبهشت ۹۹) بهطور رسمی راهاندازی شد و خیلی زود جای خود را در میان ۱۰ انتخاب برتر بازار (از نظر ارزش بازار) باز کرد.
شبکه پولکادات با ادعاها و وعدههای امیدوارکنندهای پا به میدان گذاشته و تا زمان نگارش این مقاله هم بهخوبی از عهده اجرای آنها بر آمده است. پولکادات با راهاندازی شبکهای از بلاکچینهای مجزا اما مرتبط به یکدیگر، گام مهم و مؤثری را در جهت حل مشکلات مقیاسپذیری شبکههای بلاک چین برداشته است.
اینطور که پیداست، پولکادات نه از ایده «یک بلاک چین مجزا برای هر پروژه» طرفداری میکند و نه به ایده «یک بلاک چین برای همه پروژهها» اعتقادی دارد! پولکادات شبکهای از بلاک چینهای موازی و مرتبط به هم است. طبق گفته توسعهدهندگان پولکادات، این شبکه زیرساخت امنی را برای پروژههای غیرمتمرکز (با کاربردهای متفاوت) ایجاد میکند تا بدون نیاز به توسعه بلاکچینهای اختصاصی و مجزا، از مزایایی همچون راهاندازی توکن اختصاصی، امنیت اشتراکی در کل شبکه، تعاملپذیری و ارتباط میانزنجیرهای در این شبکه بهرهمند شوند.
اگر ادبیاتمان برای شروع مقاله زیادی فنی و پیچیده است، نگران نباشید. وبسایت انتخاب در مقاله دیگری تحت عنوان «پولکادات چیست؟ همهچیز درباره اینترنت بلاک چینها»، بهزبان کاملاً ساده به توضیح مفاهیم مقدماتی شبکه پولکادات، معرفی ارز دیجیتال دات (DOT)، نحوه خریدوفروش و نگهداری، معرفی تیم توسعهدهنده و بررسی نقشه راه پروژه پولکادات پرداخته است. پس اگر با پولکادات آشنا نیستید، توصیه میکنیم ابتدا مقاله مقدماتی را بخوانید.
هدف ما در این مقاله، توضیح چگونگی عملکرد پولکادات در سطح فنی است. اگرچه معتقدیم برای استفاده از این شبکه، نیازی به درک عمیق نحوه کارکرد شبکه پولکادات نداریم. پس بدون اینکه درگیر فرمولهای ترسناک ریاضی شویم یا بحث را به کدهای پیچیده برنامهنویسی بکشانیم، به سراغ توضیح اجزای فنی و منطق طراحی شبکه پولکادات میرویم.
تقریباً تمام مطالبی که در ادامه میخوانید، بر اساس وایت پیپر پولکادات (مقاله معرفی اصلی)، دانشنامه تخصصی پولکادات و حساب رسمی پولکادات در پلتفرم مدیوم (medium) گردآوری شده است. امیدواریم با خواندن این مقاله به درک نسبی از تمام اجزا و فرایندهای شبکه پولکادات برسید.
در ادامه این مقاله، بهطور مفصل درباره سازوکار اجماع، معماری شبکه، انواع مشارکتکنندگان در شبکه و مکانیسم حاکمیت در شبکه پولکادات صحبت خواهیم کرد. اگر آمادهاید، شروع کنیم!
سازوکار اجماع در شبکه پولکادات
پروتکل پولکادات با ادغام چندین بلاک چین در یک شبکه، ارتباط میانزنجیرهای و قابلیت همکاری بلاک چینها را تسهیل میکند. امنیت این سیستم از طریق الگوریتم اجماع ترکیبی گرَندپا/بِیب (GRANDPA/BABE) تأمین میشود. این الگوریتم نوعی اجماع مبتنی بر اثبات سهام است که متناسب با پولکادات طراحی شده است. بهطور خلاصه، الگوریتم گرَندپا/بِیب روشی ترکیبی است که از مزایای روشهای اثبات کار (PoW) و اثبات سهام (PoS) بهرهمند بوده و از معایب آنها پرهیز میکند.
گواه اثبات کار روشی برای توافق بر روی نویسنده هر بلاک و همچنین توافق بر روی بلندترین زنجیره است. بیت کوین و همه ارزهای دیجیتال فورک شده از آن مانند لایت کوین (LTC)، بیت کوین کش (BCH) و بیت کوین اسوی (BSV)، از این الگوریتم اجماع استفاده میکنند. بهطور مشابه گواه اثبات سهام، مجموعه قوانینی برای انتخاب اعتبارسنجهاست؛ در این روش قانون مشخصی برای انتخاب زنجیره صحیح یا اطمینان از نهایی بودن (غیرقابلتغییر بودن) یک زنجیره وجود ندارد. ارزهای دیجیتال اتریوم ۲.۰، کاردانو، EOS و ترون، از روش اثبات سهام یا روشهایی شبیه به آن برای حفظ امنیت بلاک چین خود استفاده میکنند.
بیشتر بخوانید: اثبات انجام کار و اثبات سهام، مفهومها و تفاوتها
الگوریتم اجماع ترکیبی GRANDPA/BABE
وقتی از الگوریتم اجماع ترکیبی پولکادات صحبت میکنیم، همواره با دو اصطلاح سروکار داریم. گرَندپا و بِیب. گرَندپا ابزاری برای نهاییسازی بلاکهاست؛ به این معنی که تحت شرایط خاصی، بتوانیم از نهایی بودن بلاکها اطمینان حاصل کنیم. دستیابی به این توافق در روش اثبات کار، بسیار هزینهبر و زمانبر است؛ بنابراین گرَندپا ابزاری است که نهاییسازی بلاکها را (بدون گیرافتادن در دام اثبات کار) میسر میکند. اصطلاح بِیب نیز به مجموعه قوانینی اشاره دارد که نویسنده هر بلاک را تعیین میکند. مکانیسم بِیب، اسلاتهای زمانی تولید بلاک را بر اساس میزان سهامگذاری نودها و چرخه تصادفی پولکادات، به نودهای اعتبارسنج اختصاص میدهد. اسلاتها واحدهای گسسته زمانی هستند که طول هریک از آنها ۶ ثانیه است.
اینطور در نظر بگیرید که اعتبارسنجهای پولکادات در هر اسلات زمانی، در یک قرعهکشی شرکت میکنند که میزان سهامگذاری هر نود، نقش بلیطهای این قرعهکشی را دارد. درنهایت نتیجه این قرعهکشی مشخص میکند که کدام نودها مسئول ساخت بلاک در این اسلات هستند.
مکانیسم سهامگذاری (استیکینگ) در پولکادات
پولکادات از مکانیسم NPoS (Nominated Proof-of-Stake) یا اثبات سهام نامزدشده برای تعیین اعتبارسنجها استفاده میکند. در این مکانیسم، نودهای اعتبارسنج (validators) و نودهای گزینشگر (nominators) نقش اصلی را در امنیت شبکه ایفا میکنند. به این صورت که نودهای اعتبارسنج با رأی نودهای گزینشگر (و بر اساس میزان سهامگذاری این نودها) انتخاب میشوند.
سیستم پولکادات، دارندگان توکنهای دات را به مشارکت در شبکه بهعنوان نودهای گزینشگر تشویق میکند. همچنین افرادی که علاقهمند به مشارکت مستقیم در شبکه هستند، باید یک نود اعتبارسنج راهاندازی کنند.
گزینشگران میتوانند حداکثر از ۱۶ نود اعتبارسنج بهعنوان نودهای مورداعتماد پشتیبانی کرده و به آنها رأی دهند. در ابتدای راهاندازی شبکه پولکادات تعداد محدودی از اسلاتها در اختیار این اعتبارسنجها قرار میگرفت؛ اما تعداد این اسلاتها اکنون افزایش یافته و به تدریج به بیش از ۱۰۰۰ خواهد رسید.
نکته قابلملاحظه درباره این مکانیسم، آن است که NPoS (یا اثبات سهام نامزدشده) با مفهوم عمومیتر DPoS (اثبات سهام نمایندگیشده) که توسط بلاک چینهای دیگری همچون ترون و EOS استفاده میشود، تفاوتی اساسی دارد. در روش NPoS، گزینشگران با سهامگذاری خود، درستکار بودن نودهای موردنظرشان را تضمین میکنند؛ به این معنی که در صورت خرابکاری نودهای اعتبارسنج، مبلغ سهامگذاری شده توسط گزینشگران، بهعنوان جریمه از دست خواهد رفت؛ در حالی که در روش DPoS سهامگذاران مسئولیتی در برابر رفتار نمایندگان منتخب خود ندارند.
معماری شبکه پولکادات
مهمترین اجزای شبکه پولکادات، ریلِیچین (Relay Chain)، پاراچینها (Parachains)، پاراتریدها (Parathreads) و پلها (Bridges) هستند. در ادامه درباره هریک از این اجزا و نقش آنها در شبکه توضیح خواهیم داد.
ریلِیچین (Relay Chain)
ریلِیچین ستون فقرات شبکه پولکادات و اصلیترین درگاه ارتباطی پاراچینها محسوب میشود. نودهای اعتبارسنج (Validator) این زنجیره، بلاکهای تمامی پاراچینها را دریافت و اعتبارسنجی میکنند؛ ازاینرو آنها وظیفه تأمین امنیت کل شبکه را بر عهده دارند.
تمامی نودهای اعتبارسنج پولکادات توکنهای DOT خود را بر روی ریلِیچین سهامگذاری کرده و اعتبارسنجی تراکنشها را بر روی ریلِیچین انجام میدهند. ریلِیچین نسبت به سایر زنجیرههای پولکادات، از انواع نسبتاً کمتری از تراکنشها میزبانی میکند. این تراکنشها شامل تعامل سایر اعضا با مکانیسم حاکمیت، شرکت در مزایدههای مربوط به پاراچینها و مشارکت در اجماع NPoS هستند. بنابراین ریلِیچین تعمداً کمترین عملکرد را در میان سایر زنجیرهها دارد. بهعنوان مثال تراکنشهای مربوط به قراردادهای هوشمند، توسط ریلِیچین پشتیبانی نمیشوند.
مهمترین مسئولیت ریلِیچین و اعتبارسنجهای آن، هدایت سیستم بهصورت یکپارچه است و سایر کارها به پاراچینهایی واگذار شده که هریک دارای اهداف، کاربردها و قابلیتهای خاص خود هستند.
پاراچینها (Parachains)
پاراچین یک ساختار داده اختصاصی برای هر اپلیکیشن شبکه پولکادات است که نودهای اعتبارسنج ریلِیچین، وظیفه اعتبارسنجی و نظارت نهایی بر آن را به عهده دارند. هریک از پاراچینها دارای قابلیتها و کاربردهای مخصوص به خود هستند. در اغلب موارد، پاراچینها نقش یک بلاک چین کامل را دارند اما عملاً نیازی نیست که واقعاً بلاک چین باشند. واژه پاراچین از مفهوم زنجیرههای موازی (parallelized chains) که بهصورت موازی بر روی ریلِیچین اجرا میشوند برگرفته شده است. این زنجیرهها قادرند تراکنشها را بهصورت موازی پردازش کرده و باعث مقیاسپذیری شبکه پولکادات شوند. هریک از پروژههای مشارکتکننده در شبکه پولکادات، برای اجاره کردن پاراچین اختصاصی خود موظفند ۲۰٬۰۰۰ توکن دات را برای مدت دو سال در شبکه وثیقهگذاری (یا رهن) کنند.
پاراچینها در امنیت کل شبکه پولکادات سهیم هستند و میتوانند از طریق سامانه پیامرسانی XCMP با پاراچینهای دیگر ارتباط برقرار کنند (در ادامه این مقاله درباره سامانه پیامرسانی XCMP توضیح خواهیم داد).
نودهایی که مسئول رسیدگی و نگهداری از پاراچینها هستند، با نام کُلیتور (collator) یا «نود رابط» شناخته میشوند. نقش رابطها اجرای فولنود پاراچین، حفاظت از اطلاعات اساسی پاراچین، ایجاد بلاکهای کاندید (از تراکنشهای صورتگرفته در پاراچین) و ارائه این بلاکها به اعتبارسنجهای ریلِیچین بهمنظور تأیید و گنجاندن آن در حالت اشتراکی شبکه پولکادات (یعنی زنجیره ریلِیچین) است. در اینجا منظور ما از حالت (state)، نوعی بهروزرسانی از تمامی دادههای ردوبدل شده، موجودی حسابها و تراکنشهای صورتگرفته در شبکه است.
نودهای رابط برای مشارکت در شبکه نیازی به سهامگذاری توکنهای DOT در ریلِیچین (یا حتی در اختیار داشتن این توکنها) ندارند؛ مگر اینکه قوانین خاص پاراچین بهگونهای پیادهسازی شده باشند که آنها را ملزم به این کار کنند.
هریک از پاراچینها میتوانند توکن اختصاصی و طرح اقتصادی مخصوص به خود را داشته باشند. معمولاً برای انتخاب نودهای رابط هر پاراچین از روشهایی مانند اثبات سهام استفاده میشود؛ اما بهطور کلی پاراچینها ملزم به انجام هیچیک از این اقدامات نیستند.
مشوق اقتصادی نودهای رابط نیز بسته به قوانین پیادهسازی شده در هر پاراچین متفاوت است. این مشوق هم میتواند تورم قیمت توکنهای اختصاصی پاراچین باشد و هم کارمزد تراکنشهای ثبت شده در پاراچین. شبکه پولکادات در این مورد قاعده ثابتی را وضع نکرده و دست پاراچینها را برای تصمیمگیری درباره نحوه تأیید تراکنشها باز گذاشته است. بهعنوان مثال ممکن است یک پاراچین خاص، تأیید تراکنشها را مشروط به پرداخت کارمزد حداقلی به نودها کرده باشد و یک پاراچین دیگر هیچ کارمزدی برای تراکنشها لحاظ نکرده باشد. در هر دو صورت، پولکادات قوانین داخلی پاراچینها را اعمال کرده و اعتبار تراکنشها را بر اساس آن میسنجد.
همان طور که گفتیم پاراچینها درباره راهاندازی توکن اختصاصی خود نیز صاحب اختیار هستند. اما در صورت تعریف توکن اختصاصی، خود پاراچین مسئول توسعه و حفظ ارزش آن خواهد بود؛ نه پولکادات.
جالب است که بدانید پاراچینها از لحاظ نوع بلاک چین (عمومی یا خصوصی) نیز محدودیتی ندارند؛ در ادامه چند نمونه از انواع پاراچینها را بررسی خواهیم کرد:
- پاراچینهای کنسرسیومی رمزنگاری شده: این پاراچینها احتمالاً بلاک چینهای خصوصی هستند که هیچگونه اطلاعاتی را به عموم ارائه نمیدهند؛ اما بهدلیل ماهیت پروتکل پیامرسانی XCMP، بدون نیاز به اعتماد میتوان با آنها ارتباط برقرار کرد.
- پاراچینهای پربسامد: بلاک چینهایی هستند که در مدتزمان کوتاه، تراکنشهای زیادی را پردازش میکنند. این سرعت بالا ناشی از بهینهسازیهای خاص در مکانیسم اجماع پاراچین است.
- پاراچینهای مبتنی بر حریم خصوصی: بلاک چینهای عمومی و بدون نیاز به مجوزی هستند که با بهرهگیری از روشهای پیشرفته همچون zk-SNARK مانع از انتشار هرگونه اطلاعات در فضای عمومی میشوند.
- پاراچینهای قرارداد هوشمند: بلاک چینهایی هستند که با پیادهسازی کدهای نرمافزاری جدید در قالب قراردادهای هوشمند، عملکردهای منطقی متنوعی را از خود به نمایش میگذارند.
پاراتریدها (Parathreads)
پاراتریدها (یا رشتههای موازی)، از منظر فنی شباهت بسیاری به پاراچینها دارند؛ اما نحوه اتصال آنها به شبکه و مدل اقتصادی آنها اندکی با پاراچینها تفاوت دارد.
مفهوم پاراترید، ایدهای جایگزین برای پاراچینهاست تا بدون نیاز به اجاره اسلات اختصاصی، بهطور موقت (یعنی بلاکبهبلاک) در شبکه پولکادات مشارکت داشته و از مزیت امنیت آن بهرهمند شوند. این کار از طریق اشتراکگذاری اسلاتهای محدود پاراچین بین مجموعهای از پاراتریدها (با مکانیسم رقابتی) انجام میشود.
برای درک بهتر تفاوت میان پاراترید و پاراچین، از یک مثال ساده استفاده میکنیم. اگر شبکه پولکادات را همانند یک کامپیوتر عظیم درنظر بگیریم، پاراچینها همچون نرمافزارهایی هستند که روی حافظه این کامپیوتر نصب شده و کاملاً در دسترس هستند. اما پاراتریدها مانند نرمافزارهای پرتابلی هستند که بر روی یک حافظه خارجی ذخیره شدهاند و هرزمان که نیاز باشد، میتوان آنها را بر روی حافظه اصلی کامپیوتر کپی کرد.
بر این اساس، زنجیرههایی که امکان دستیابی به یک اسلات پاراچین را ندارند یا به دلایل اقتصادی اجاره یک پاراچین کامل را منطقی نمیبینند، قادر خواهند بود با مشارکت در مدل «پرداخت در ازای مدت زمان اتصال» یا «پرداخت در ازای هر بلاک»، از پاراتریدهایی استفاده کنند که درست همان رابط کاربری نرمافزاری (API) و عملکرد مشابه با پاراچینها را دارند. این مدل همچنین به پاراچینهایی که (به هردلیلی) دیگر نیازی به یک اسلات اختصاصی ندارند، اجازه میدهد تا اسلات خود را با یک پاراترید جایگزین کرده و همچنان به ریلِیچین متصل باشند.
مسلم است که بسیاری از تیمهای توسعهدهنده در بدو کار خود، سرمایه لازم برای وثیقهگذاری دوساله ۲۰٬۰۰۰ توکن دات و دریافت یک اسلات پاراچین اختصاصی را در اختیار ندارند. پاراتریدها برای این دسته از توسعهدهندگان بسیار کاربردی هستند؛ زیرا پاراتریدها به یک وثیقهگذاری حداقلی (۵۰ تا ۱۰۰ دات) نیاز دارند و به زنجیرههای زیرمجموعه خود اجازه میدهند هرزمان که یک دسته کامل از تراکنشها موجود بود، آنها را در قالب یک بلاک برای ثبت در ریلِیچین ارائه دهند. این در حالی است که پاراتریدها از مزایای امنیت اشتراکی و قابلیت اتصال به کل شبکه بهرهمند خواهند بود. همچنین اپلیکیشنهایی که مورداستقبال کاربران قرار میگیرند میتوانند با تأمین وثیقه موردنظر، پاراترید خود را به پاراچین ارتقا دهند.
اگر با نحوه کار بلاک چینهای سنتی (مانند بیت کوین و اتریوم) آشنا باشید، دلیل و نحوه پرداخت هزینه در پاراتریدها را به سادگی متوجه خواهید شد. کاربران یک پاراترید برای ثبت هر بلاک پاراترید در ریلِیچین، هزینهای پرداخت میکنند؛ درست مانند هزینهای که کاربران اتریوم و بیت کوین برای ثبت یک تراکنش در بلاکهای این شبکه میپردازند؛ یا شبیه به هزینهای که توسعه دهندگان اتریوم برای ثبت و اجرای یک قرارداد هوشمند بر روی شبکه پرداخت میکنند.
در این میان برای برخی از اپلیکیشنها، پاراترید بودن منطقیتر از پاراچین بودن است. در این اپلیکیشنها معمولاً بهروزرسانی حالت بهصورت مکرر اتفاق نمیافتد. بهعنوان مثال یک سرویس نام دامنه (DNS) را در نظر بگیرید. در این مورد، درخواستهای زیادی برای خواندن اطلاعات از بلاک چین وجود دارند اما درخواست برای ثبت نام (رجیستری) بهندرت اتفاق میافتد. بنابراین طبیعی است که بهروزرسانی درخواستهای ثبت نام، هر یک ساعت یکبار انجام شود؛ زیرا یک سرویس DNS نیاز چندانی به ثبت ۶ ثانیه یکبار بلاکها (زمان میانگین ساخت بلاکها در پولکادات) ندارد. مثال دیگری از اپلیکیشنهای مناسب برای پاراترید، اوراکلها هستند. اوراکلها بلاک چینهای خاصی برای انتقال داده از دنیای واقعی به بلاک چینهای دیگر هستند. مثلاً اوراکل وضعیت آبوهوای روزانه یا اوراکل بلاکهای شبکه بیت کوین.
بهطور خلاصه پاراتریدها برای سه نوع از اپلیکیشنها ایدهآل هستند:
- اپلیکیشنهایی که بهدنبال ورود به شبکه پولکادات و دسترسی به جامعه کاربران و توسعهدهندگان این شبکه هستند.
- اپلیکیشنهایی که نگران ازدستدادن اسلاتهای پاراچین هستند.
- اپلیکیشنهایی که بیشتر از نوشتن اطلاعات بر روی بلاک چین، نیاز به خوانده شدن (از روی بلاک چین) دارند.
شبکه پولکادات برای تقسیم پاراتریدها در میان متقاضیان، برخی از اسلاتهای پاراچین را به استخرهای پاراترید (parathread pools) اختصاص خواهد داد. استخر پاراترید، متعلق به اپلیکیشنهایی است که بهصورت اشتراکی از یک اسلات استفاده میکنند. تعداد پاراتریدهایی که میتوانند در هریک از این استخرها وجود داشته باشند، محدودیتی ندارد؛ اما تنها تعداد اندکی از پاراتریدها میتوانند در ایجاد هر بلاک نقش داشته باشند.
در هنگام ایجاد هریک از بلاکهای ریلِیچین، پاراتریدها با شرکت در یک مزایده عمومی، تمایل خود را برای ساخت بلاک اعلام میکنند؛ به این صورت که نودهای رابط هر پاراترید، به نودهای اعتبارسنج مخصوص استخر اطلاع میدهند که حاضرند تا چه میزان توکن دات را برای ساخت بلاک خود پرداخت میکنند. مدل پرداخت کارمزد در ازای هر بلاک، پاراتریدها را از پاراچینها متمایز میکند؛ زیرا همان طور که گفتیم، پاراچینها با استفاده از اسلات اختصاصی خود میتوانند در هر زمان دلخواه، بلاک خود را به ریلِیچین ارائه دهند.
درمجموع میتوان پاراتریدها را یک ضمیمه بسیار مفید به شبکه پولکادات تلقی کرد. زیرا پاراتریدها دقیقاً همان رابط کاربری پاراچینها را دارند، هر دو از مدل امنیت اشتراکی پولکادات استفاده میکنند و هر دو از طریق سامانه XCMP قادر به ارسال و دریافت پیام هستند. شبکه پولکادات قادر به پشتیبانی از (تقریباً) ۱۰۰ پاراچین خواهد بود؛ اما با اشتراکگذاری اسلاتهای پاراچین در میان پاراتریدها، میتوان از اپلیکیشنهای بیشتری پشتیبانی کرد.
پلها (Bridges)
فناوری پلهای بلاک چینی، نوآوری بزرگی در زمینه تعاملپذیری بلاک چینها بهشمار میرود. برای درک بهتر مفهوم پلهای بلاک چینی، میتوان از سیستم مالی سنتی کمک گرفت. سیستم سنتی مبتنی بر پول فیات در هر کشوری، با قوانین و دستورالعملهای بانکی و پول مخصوص آن کشور تنظیم شده است. همین امر باعث میشود تا نقلوانتقال بینالمللی پول از طریق بانکهای کشورهای گوناگون، با مشکلات عدم هماهنگی روبهرو باشد. جامعه جهانی برای رفع این مشکلات از سیستم سوئیفت (SWIFT) استفاده میکند.
سوئیفت یا به بیان دقیقتر «جامعهٔ جهانی ارتباطات مالی بین بانکی»، نوعی سامانه پیامرسان است که جهت ارسال و دریافت هرگونه پیام ارزی در بین واحدهای ارزی بانکهای بینالمللی مورداستفاده قرار میگیرد. اکنون مؤسسات مالی سراسر دنیا از سیستم استانداردشده کدهای سوئیفت برای انتقال ایمن اطلاعات و اجرای دستوالعملهای خود استفاده میکنند. به همین دلیل است که با تحریم شبکه سوئیفت برای بانکهای یک کشور، عملاً همکاری بانکهای آن کشور با بانکهای خارجی قطع شده و سیستم مالی کشور بهحالت ایزوله در خواهد آمد. بنابراین سوئیفت یک راهکار متمرکز برای رفع مشکلات سیستم مالی متمرکز جهانی است.
با این مقدمه، اکنون میتوانیم به مشکلات همکاری میان بلاک چینها بپردازیم. پلهای بلاک چین، نوع خاصی از پاراچینها هستند که عملکردی مشابه سوئیفت داشته و راهکاری برای برقراری ارتباط میان بلاک چینهای متفاوت، با قوانین اقتصادی و زیرساختهای فنی متفاوت به شمار میروند. طرحهای فعلی برای پیادهسازی پلهای بلاک چینی، مجموعهای از راهکارهای متفاوت، از انواع متمرکز و نیازمند اعتماد گرفته تا غیرمتمرکز و بدون نیاز به اعتماد را در بر میگیرند؛ شبکه پولکادات برای اکوسیستم خود از طراحیهای نوع دوم بهره میگیرد.
به یاد داشته باشید که پلهای بلاک چینی بهطور خاص برای همکاری اکوسیستم پولکادات با بلاک چینهای خارجی مانند بیت کوین، اتریوم، تزوس و غیره به کار میروند. اما برای تعاملپذیری پاراچینهای درون اکوسیستم پولکادات، از سیستم XCMP (پیامرسان اختصاصی اکوسیستم پولکادات) استفاده میشود که در قسمت بعدی درباره آن توضیح خواهیم داد.
بهعنوان مثال میتوانیم نحوه کار پل بلاک چینی میان شبکه پولکادات و بیت کوین را بهطور خلاصه موردبررسی قرار دهیم. این پروتکل، یک پل دوطرفه میان پولکادات و بیت کوین ایجاد میکند که به دارندگان BTC اجازه میدهد که دارایی خود را بهعنوان PolkaBTC به شبکه پولکادات تلهپورت کنند. همچنین دارندگان PolkaBTC میتوانند با سوزاندن داراییهای خود، در شبکه بیت کوین BTC دریافت کنند. این طراحی توسط شرکت اینترلی (Interlay) در شبکه پولکادات پیادهسازی شده است.
پل بیت کوین از دو جزء منطقی متفاوت تشکیل شده است:
- مؤلفه XCLAIM: این مؤلفه اطلاعات تمامی حسابهای دارنده PolkaBTC را نگهداری میکند.
- مؤلفه BTC-Relay: این مؤلفه مسئول پایش حالت (موجودی) بیت کوین پس از ارسال هر تراکنش جدید است.
سامانه پیامرسانی میانزنجیرهای (XCMP)
تراکنشهای بین زنجیرهای در داخل اکوسیستم پولکادات، از طریق یک مکانیسم صفبندی ساده بر اساس دادههای ذخیره شده در درخت مرکل تسویه میشوند. نودهای رابط هر پاراچین مسئول مسیریابی پیامها بین زنجیرهها هستند. آنها لیستی از پیامهای خروج (تراکنشهای خروجی) پاراچین ایجاد کرده و پیامهای ورود (تراکنشهای ورودی) سایر پاراچینها را دریافت میکنند. نودهای اعتبارسنج ریلِیچین نیز وظیفه دارند تراکنشهای صف خروجی یک پاراچین را به صف ورودی پاراچین مقصد انتقال دهند. هریک از این پیامها حاوی یک آدرس مقصد و یک تایماستمپ است که این پیام را از سایر پیامها متمایز میکند. در نهایت هش این تراکنش در ریلِیچین ذخیره میشود.
صفهای XCMP با باز کردن یک کانال بین دو پاراچین آغاز میشوند. این کانال هم توسط پاراچین فرستنده و هم توسط پاراچین گیرنده، بهعنوان کانال یکطرفه شناسایی میشود. هر جفت پاراچین میتوانند حداکثر دو کانال بین خود داشته باشند؛ یکی برای ارسال تراکنش از یک پاراچین به پاراچین دیگر، و دیگری برای ارسال پیام در مسیر معکوس. برای افتتاح هر کانال، ملزم به ودیعهگذاری توکنهای DOT هستیم و با بسته شدن هر کانال، این توکنها بازپرداخت میشوند.
در اینجا از پرداختن به جزئیات عملکرد سامانه XCMP صرفنظر میکنیم؛ چراکه این پروتکل همچنان در دست توسعه بوده و جزئیات آن بهمرور زمان تغییر خواهد کرد.
سابستریت، زیرساخت بلاک چینهای شبکه پولکادات
سابستریت (Substrate)، چارچوب ساخت بلاک چین در شبکه پولکادات است که امکان ایجاد و بهینهسازی یک بلاک چین مختص کاربردهای خاص را فراهم میکند.
سابستریت بستری کاملاً ماژولار و انعطافپذیر است که به صاحبان کسبوکار اجازه میدهد بدون نیاز به دانش فنی و برنامهنویسی خاصی، بلاک چین خود را طراحی کنند. برای این منظور، کافی است افراد منطق کسبوکار خود را با استفاده از توابع و اجزای آماده در سابستریت طراحی کنند و بقیه امور را به سابستریت بسپارند. وجود ماژولهای آماده برای اجماع، شبکهسازی و نهاییسازی تراکنشها و دادهها، به افراد این امکان را میدهد که در وقت خود صرفهجویی کرده و تنها در حوزه تخصص خود تمرکز کنند.
با توجه به ساختار فورکناپذیر سابستریت و ابزارهای حاکمیتی شفاف، افراد میتوانند در بهروزرسانیهای متعدد، قابلیتهای جدیدی را به سیستم خود بیفزایند؛ بدون اینکه ترسی از هاردفورک و چنددستگی شبکه کاربران خود داشته باشند. بهروزرسانی آسان و کمخطر، به معنی رشد مداوم بلاک چین، همگام با پیشرفت فناوری و نیازهای متغیر بازار است.
بلاک چینهای ایجادشده بر روی سابستریت، از پشتیبانی بومی اتصال به شبکه پولکادات برخوردار خواهند بود. کومولوس (Cumulus) ابزار مخصوص سابستریت برای اتصال بلاک چین جدید به شبکهای از بلاک چینهاست که ارتباط میانزنجیرهای، قابلیت همکاری مشترک و امنیت اشتراکی را برای بلاک چینهای شبکه پولکادات فعال میکند.
مشارکتکنندگان (نودها) در شبکه پولکادات
بهطور کلی تمام وظایف مربوط به اعتبارسنجی تراکنشها و تولید بلاکها در شبکه پولکادات، بین ۴ گروه از نودها تقسیم شده است:
- نودهای اعتبارسنج (Validators)
- نودهای رابط (Collators)
- نودهای گزینشگر (Naminators)
- نودهای ناظر (Fishermen)
در ادامه درباره نحوه انتخاب و وظایف هر گروه از نودها توضیح خواهیم داد:
اعتبارسنجها (Validators)
اعتبارسنجها مسئول حفظ امنیت ریلِیچین هستند. آنها با سهامگذاری (استیکینگ) ارزهای دیجیتال دات، قادر خواهند بود شواهد و اثباتهای ارائه شده از سوی نودهای رابط را اعتبارسنجی کرده و در کنار سایر نودهای اعتبارسنج، در اجماع شبکه مشارکت کنند. بنابراین اعتبارسنجها اصلیترین نقش را در ایجاد بلاکهای ریلِیچین و همچنین همه پاراچینها بر عهده دارند. این اختیارات به آنها اجازه میدهد تا تراکنشهای میانزنجیرهای را از طریق ریلِیچین به انجام برسانند.
به بیان دقیقتر اعتبارسنجها دو وظیفه مهم بر عهده دارند. اول اینکه صحت اطلاعات موجود در مجموعه بلاکهای ارسال شده از هر پاراچین (مانند هویت طرفین تراکنش و موضوع قراردادها) را تأیید کنند و دوم اینکه در مکانیسم اجماع برای ساخت بلاکهای ریلِیچین شرکت کرده و صحت عملکرد سایر اعتبارسنجها را بررسی کنند. در صورت هرگونه مغایرت میان عملکرد نودهای اعتبارسنج و الگوریتمهای اجماع، این نودها مجازات شده و همه یا بخشی از توکنها دات سهامگذاریشده خود را از دست خواهند داد. این مجازات باعث دلسردی نودها از هرگونه عملیات خرابکارانه بوده و به امنیت شبکه کمک میکند. همچنین نودهای اعتبارسنج در صورت عملکرد صحیح، پاداش ساخت بلاک (شامل کارمزد تراکنشها) را دریافت خواهند کرد.
رابطها (Collators)
نودهای رابط هر پاراچین، با جمعآوری تراکنشها از سوی کاربران و ایجاد شواهد و اثباتهای انتقال حالت برای نودهای اعتبارسنج، در حفظ و مدیریت پاراچینها مشارکت میکنند.
به بیان دقیقتر، رابطها یک فولنود در ریلِیچین و یک فولنود برای پاراچین اختصاصی خود راهاندازی میکنند. بنابراین آنها به تمامی اطلاعات لازم برای تولید بلاکهای کاندید و اجرای تراکنشها دسترسی خواهند داشت. این اختیارات درست مشابه اختیاراتی است که در بلاک چینهای مبتنی بر اثبات کار به ماینرها داده میشود. رابطها در شرایط عادی، تراکنشهای کاربران پاراچین را جمعآوری و اجرا میکنند؛ سپس این تراکنشها را در یک بلاک کاندید گردآوری کرده و آن را همراه با اثبات انتقال حالت، به نودهای اعتبارسنج مربوط به پاراچین خود ارائه میدهند. این بلاکها در نهایت توسط اعتبارسنجها نهایی (اصطلاحاً مهروموم) شده و در شبکه منتشر میشوند.
رابطها عنصر اصلی پیامرسان میانزنجیرهای XCMP هستند؛ زیرا آنها صاحب فولنود ریلِیچین بوده از همه طرفهای دیگر (ارسال و دریافت پیام) آگاه هستند. این ویژگی باعث میشود تا رابطها بهسادگی بتوانند از پاراچین A به پاراچین B پیام ارسال کنند.
گزینشگران (Nominators)
نودهای گزینشگر با سهامگذاری توکنهای دات و انتخاب اعتبارسنجهای درستکار، در امنیت ریلِیچین مشارکت میکنند.
ممکن است افرادی مایل به مشارکت در امنیت ریلِیچین و کسب درآمد از شبکه پولکادات باشند اما توانایی یا حوصله راهاندازی یک فولنود تماموقت را نداشته باشند؛ این افراد میتوانند یک نود گزینشگر راهاندازی کنند تا با گزینش اعتبارسنجهای قابلاعتماد، در امنیت شبکه سهیم شده و درآمد کسب کنند. هر گزینشگر به نسبت مبلغی که در شبکه سهامگذاری کرده، حق رأی خواهد داشت.
شیوه کار نودهای گزینشگر بسیار مسئولانه است؛ به این معنی که آنها موظفند اعتبارسنجها را بهدقت انتخاب کنند. در صورتی که هریک از این اعتبارسنجها رفتار خرابکارانهای از خود نشان دهند، جریمه خواهند شد و نودهای گزینشگری که او را انتخاب کردهاند نیز توکنهای سهامگذاریشده خود را از دست خواهند داد.
در صورتی که با سهامگذاری توکنهای دات نود گزینشگری را راهاندازی کنید، توکنهای شما در شبکه قفل خواهند شد. به این معنی که همچنان میتوانید درآمد خود را بهصورت توکنهای دات جدید دریافت کنید، اما نمیتوانید توکنها را از حساب خود انتقال دهید. نودهای گزینشگر هر زمان که بخواهند میتوانند نود خود را غیرفعال کنند؛ اما غیرفعال کردن یک نود گزینشگر به معنای آزادسازی توکنهای سهامگذاریشده نیست. سهامگذاری توکنها در شبکه پولکادات در دورههای ۲۸ روزه انجام میشود. بنابراین نودهای گزینشگر در پایان هر دوره ۲۸ روزه قادر به آزادسازی و انتقال توکنهای خود خواهند بود.
ناظران (Fishermen)
فیشرمَنها یا ناظران نیز مانند نودهای رابط، فولنود پاراچین مخصوص به خود هستند اما نقشی متفاوت در شبکه پولکادات ایفا میکنند. ناظران بجای تولید بلاکهای بعدی پاراچین و انتقال حالتها (وظیفهای که نودهای رابط هر پاراچین انجام میدهند)، بر این روند نظارت کرده و اطمینان حاصل میکنند که هیچ انتقال حالت نامعتبری در پاراچین انجام نشود.
برخلاف نودهای رابط که نیازی به سهامگذاری بر روی ریلِیچین ندارند، ناظران موظف به سهامگذاری حداقلی بر روی ریلِیچین هستند. آنها در صورت مشاهده رفتار خرابکارانه در پاراچین، این رفتار را گزارش میدهند. در صورتی که صحت گزارش آنها اثبات شود، پاداش قابلتوجهی از شبکه دریافت میکنند و در صورتی که گزارش آنها اشتباه باشد، با ریسک ازدستدادن توکنهای سهامگذاریشده خود مواجه خواهند بود. بهخاطر همین روش درآمدی خاص، این نودها را به شکارچیان فصلی تشبیه میکنند؛ چرا که با ارائه هر گزارش صحیح، درآمد قابلتوجهی کسب خواهند کرد اما از درآمد ثابتی برخوردار نیستند.
حاکمیت در شبکه پولکادات
مکانیسم حاکمیت در شبکه پولکادات، نسبت به بلاک چینهای دیگر اندکی پیچیدهتر است. هدف کلی این مکانیسم آن است که صاحبان اکثریت سهام شبکه (دارندگان توکنهای دات) بتوانند تغییرات و پیشرفتهای شبکه را مدیریت کنند. برای انجام این هدف، شبکه پولکادات از ابزارهای گوناگونی نظیر رأیگیریهای درونزنجیرهای (onchain) و رأیگیری در دستههای کوچکتر استفاده میکند.
اگر با سازوکار حاکمیت بیت کوین آشنایی داشته باشید احتمالاً با اصطلاح BIP (Bitcoin Improvement Proposal) آشنایی دارید. تمامی پیشنهادات بهبود شبکه بیت کوین با این عنوان در مجمعی عمومی به ثبت رسیده و به رأی گذاشته میشوند. در شبکه پولکادات، این پروپوزالها را ریفرندا (referenda) مینامند.
این پیشنهادات، یا توسط ذینفعان عمومی شبکه (صاحبان توکن دات) و یا توسط اعضای شورای پولکادات ارائه میشوند. اما در هر صورت برای اعمال هرگونه تغییری در شبکه، پروپوزالها باید به همهپرسی گذاشته شوند و رأی صاحبان اکثریت سهام شبکه را به دست آورند.
چرخه بررسی هر ریفرندا به یکی از روشهای زیر آغاز میشود:
- پیشنهادات عمومی که صاحبان توکنهای دات ارائه کردهاند.
- پیشنهاداتی که اعضای شورا ارائه کردهاند.
- پیشنهادات ارائهشده بهعنوان بخشی از مصوبات همهپرسی قبلی
- پیشنهادات اضطراری که کمیته فنی ارائه کرده و به تأیید اعضای شورا رسیده است.
بهمنظور جلوگیری از ایجاد دیکتاتوری اکثریت، نقشهای حاکمیتی شبکه پولکادات به سه دسته تقسیم شدهاند که هریک قدرت و اختیارات مخصوص به خود را دارند.
ذینفعان عمومی شبکه
تمامی صاحبان توکنهای دات، ذینفعان عمومی شبکه بهشمار میآیند. این افراد بر اساس میزان سهم خود از شبکه (یعنی تعداد توکنهایی که در اختیار دارند)، در همهپرسیها حق رأی دارند. این روش رأیگیری را اصطلاحاً مبتنی بر «رأیهای وزندار» مینامند. ذینفعان عمومی شبکه، همچنین میتوانند با سهامگذاری ۵ توکن دات، در انتخاب اعضای شورای پولکادات مشارکت کنند.
اعضای شورا (Council Members)
این افراد به نمایندگی از ذینفعان شبکه، برای ایفای سه نقش اصلی در حاکمیت انتخاب شدهاند: پیشنهاد همهپرسیهای معقول، وتوی همهپرسیهای خرابکارانه و انتخاب اعضای کمیته فنی. تعداد اعضای شورا در حال حاضر ۱۳ کرسی است؛ اما طی ماههای آینده، این تعداد در نهایت به ۲۴ کرسی خواهد رسید.
اعضای شورای پولکادات توسط کاربران این شبکه تعیین خواهند شد. هر کاربر با ایجاد یک حساب پولکادات و سهامگذاری ۵ توکن دات، میتواند به ۱۶ نفر از نامزدهای عضویت در شورا رأی دهد. در صورتی که شخص رأیدهنده توکنهای سهامگذاریشده خود را آزاد کند، رأی او از نامزدهای شورا برداشته خواهد شد.
کمیته فنی (Technical Committee)
کمیته فنی، تیمی متشکل از توسعهدهندگان فعال پولکادات است که توسط اعضای شورا انتخاب شدهاند. آنها بههمراه اعضای شورا میتوانند پروپوزالهای اضطراری پیشنهاد دهند تا برای رأیگیری و اجرای سریع موردبررسی قرار گیرد. منظور از پروپوزالهای اضطراری، طرحهایی هستند که بهصورت خارج از نوبت به رأی گذاشته میشوند. در شرایط عادی، طی هر دوره همهپرسی، تنها یک پروپوزال به رأی گذاشته میشود؛ اما در صورتی که یک پروپوزال اضطراری توسط کمیته فنی به شورا پیشنهاد شده و با تصویب شورا به مرحله همهپرسی برسد، بهصورت خارج از نوبت و همزمان با یک پروپوزال عادی به رأی گذاشته خواهد شد. پروپوزالهای اضطراری با کسب ۲/۳ (دو سوم) آرای کمیته فنی به شورا خواهند رفت و در صورت کسب ۳/۴ (سه چهارم) آرای اعضای شورا، به همهپرسی گذاشته خواهند شد.
شبکه پولکادات بهمنظور تقسیم قدرت در میان این سه نقش حاکمیتی، از مفهومی جدید به نام «سوگیری مشارکتی تطبیقپذیر (Adaptive Quorum Biasing)» استفاده میکند. این مفهوم ابتکاری، بهعنوان اهرمی برای اعضای شورا بهمنظور تسهیل یا دشوارکردن تصویب پروپوزالها، در شرایط عدم مشارکت اکثریت مشخص ذینفعان به کار میرود.
بهبیان سادهتر، بسته به اینکه پروپوزالهای نهایی از کدام مسیر به مرحله همهپرسی رسیده باشند و در هنگام همهپرسی با چه میزان مشارکت روبرو شوند، میزان رأی لازم برای تصویب و نهاییسازی آنها متغیر خواهد بود:
- اگر پروپوزالی توسط ذینفعان عمومی شبکه مطرح شده و به مرحله همهپرسی برسد، با سوگیری مشارکتی مثبت (Positive Turnout Bias) به رأی گذاشته خواهد شد؛ به این معنی که در مرحله همهپرسی، در صورت مشارکت ۲۵ درصدی رأیدهندگان به ۶۶ درصد رأی موافق، و در صورت مشارکت ۷۵ درصدی رأیدهندگان به ۵۴ درصد رأی موافق نیاز خواهد داشت تا بهتصویب نهایی برسد.
- در صورتی که پروپوزالی با اجماع کامل اعضای شورا (یعنی با رأی موافق تمام اعضا) بهمرحله همهپرسی برسد، دارای سوگیری مشارکتی منفی (Negative Turnout Bias) خواهد بود. به این معنی که در مرحله همهپرسی، در صورت مشارکت ۲۵ درصدی رأیدهندگان به ۳۴ درصد رأی موافق، و در صورت مشارکت ۷۵ درصدی رأیدهندگان به ۴۶ درصد رأی موافق نیاز خواهد داشت تا بهتصویب نهایی برسد.
- در صورتی که پروپوزالی با اجماع اکثریت اعضای شورا (یعنی با رأی موافق بیش از نصف اعضا) به مرحله همهپرسی برسد، دارای سوگیری مشارکتی خنثی (Neutral Turnout Bias) خواهد بود. به این معنی که در مرحله همهپرسی، با هر میزان مشارکت رأیدهندگان، به بیش از ۵۰ درصد آرا نیاز خواهد داشت تا به تصویب نهایی برسد.
طبق توضیحاتی که در وایت پیپر پولکادات ارائه شده، استفاده از روش سوگیری مشارکتی تطبیقپذیر، نوعی شبیهسازی برای مشارکت صددرصدی رأیدهندگان است. زیرا با مشارکت صددرصدی رأیدهندگان، این روش با همان اجماع ساده بیش از ۵۰ درصد مطابق خواهد بود.