در پسزمینه هر ارز دیجیتال بزرگ و موفق، یک الگوریتم اجماع فوقالعاده در حال اجراست. هیچ الگوریتمی بدون اشکال نیست، اما هرکدام از آنها نقاط قوت مخصوص خود را دارند. در دنیای ارزهای دیجیتال الگوریتمهای اجماع برای جلوگیری از حملاتی نظیر «دو بار خرج کردن» به وجود آمدهاند. در این مقاله به محبوبترین الگوریتمهای اجماع که تا به این لحظه در ارزهای دیجیتال مورداستفاده قرارگرفتهاند، خواهیم پرداخت و از بلاک چین گرفته تا دَگ (گراف جهتدار غیرمدور) و هرچه بینشان قرار دارد را بررسی خواهیم کرد.
اثبات کار (Proof-of-Work) – اولین مکانیزم اجماع
محبوبترین پیادهسازیهای انجامشده: بیت کوین، اتریوم، لایت کوین، دوج کوین و بسیاری دیگر
مزایا: میدانیم که جواب میدهد!
معایب: عملکرد کند، برای محیط زیست و زمین خطرناک است
اثبات کار اولین الگوریتم اجماع بود که در بلاک چین مورداستفاده قرار گرفت. این مکانیزم توسط ساتوشی ناکاموتو برای بلاک چین بیت کوین بهکار گرفته شد. مکانیزمی که به لطف آن، عملیات استخراج رشد کرده و مصرف انرژی عظیمی در سرتاسر جهان به وجود آمده است. همه ما میدانیم که این مکانیزم جواب میدهد (عبارتی که برای بسیاری از الگوریتمهای اجماع دیگر هم میتوانیم بهکار ببریم)، اما در این نقطه از بازی باید کمکم به فکر این باشیم که آن را در موزه بگذاریم. حتی اتریوم برای بهرهوری اقتصادی و صرفهجویی در انرژی نیز در حال مهاجرت به سمت الگوریتم اثبات سهام (PoS) است. باوجود گزینههای جایگزین فراوان، اینکه یک بلاک چین از این مکانیزم استفاده کند جای سؤال دارد.
در الگوریتم اثبات کار، ماینرها خود را برای حل مسائل سخت و بیفایده بهزحمت میاندازند تا بلاکهای جدیدی را به شبکه اضافه کنند. درواقع سیستم اثبات کار بر این مبناست که «طولانیترین زنجیره برنده میشود» و با این فرض که بیشتر ماینرها بر روی زنجیره مشابهی کار میکنند، آن زنجیره سریعترین، طولانیترین و مورداعتمادترین خواهد بود. تا زمانی که بیش از ۵۰ درصد شبکه بیت کوین را ماینرهای صادقی تشکیل دهد که باهم دستبهیکی نکرده باشند، این شبکه امن خواهد بود.
اثبات سهام (Proof-of-Stake) – کودک تازه چشم گشوده در دنیای بلاکها
محبوبترین پیادهسازیهای انجامشده: دِکرِد (Decred)، اتریوم (بهزودی)، پیرکوین (Peercoin)
مزایا: هزینهبر بودن حمله به شبکه، غیرمتمرکزتر، بهینهشده ازنظر مصرف انرژی
معایب: مشکل Nothing at Stake
در مکانیزم اثبات سهام، بلاکهای جدید دیگر توسط ماینرهایی که کار حل مسائل را انجام میدهند، ساخته نمیشود. در این مکانیزم متخصصانی وجود دارند که با گرو گذاشتن توکنهای خود، روی این بلاکها عمل اعتبارسنجی را انجام میدهند. در صورت به وجود آمدن فورک نیز، این افراد توکنهای خود را بر فورکی که قصد حمایت از آن را دارند، قرار میدهند. با در نظر گرفتن اینکه افراد بیشتری به فورک صحیح رأی دادهاند، افرادی که توکنهای خود را روی فورک دیگر بستهاند، توکنهای خود را در فورک صحیح از دست میدهند.
مشکلی که در الگوریتم اثبات سهام وجود دارد، تئوری Nothing at Stake است. نگرانی از جایی نشأت میگیرد که تاییدکنندگان (validators) بلاکها همانند دیگر به مثابه اثبات کار، نیازی به توان پردازشی در فورکهای مختلف ندارند. آنها میتوانند در هر فورک ایجادشده بدون نگرانی رأی دهند و به همین دلیل نیز ایجاد فورک در بلاک چینهایی که با اثبات سهام کار میکنند نسبت به بلاک چینهای اثبات کار پدیده معمول و رایجتری خواهد بود. این مورد میتواند اعتبار شبکههایی که با این الگوریتم کار میکنند را زیر سؤال ببرد.
اثبات سهام نمایندگی شده (Delegated Proof-of-Stake) – انتخاب تاییدکنندگان با رایگیری
محبوبترین پیادهسازیهای انجامشده: استیمیت (Steemit)، ایاس (EOS)، بیتشیرز (BitShares)
مزایا: تراکنشهای ارزان، مقیاسپذیر، بهینهشده از نظر مصرف انرژی
معایب: تا حدودی متمرکز
این الگوریتم که محصول فکری دنیل لاریمر (Daniel Larimer) است، تفاوت بسیاری با الگوریتم اثبات سهام دارد. در مکانیزم DPoS، دارندگان توکن دیگر درباره معتبر بودن بلاکها رأی نمیدهند، بلکه نمایندگانی (Delegate) را از طریق رأیگیری برمیگزینند تا کار اعتبارسنجی بلاکها را آنها انجام دهند. معمولاً بین ۲۱ تا ۱۰۰ نماینده در سیستمهای مبتنی بر DPoS انتخاب میشود. نمایندگان در شبکه بهصورت دورهای جابهجا میشوند و پروتکل آنها را ملزم به تحویل بلاکهایشان میکند. تعداد کم نمایندگان این امکان را به آنان میدهد که بهطور مؤثر سازماندهی شوند و هر نماینده قادر به تعیین زمان کافی برای انتشار هر بلاک باشد. اگر نمایندگان مرتباً بلاکها را منتشر نکنند یا تراکنشهای نامعتبر را تأیید کنند، دارندگان توکن در شبکه به خروج آنها از نمایندگی رأی میدهند و فرد بهتری جایگزین آنها میشود.
در الگوریتم DPoS تاییدکنندگان بلاک بهجای رقابت با یکدیگر که در اثبات کار و اثبات سهام دیده میشود، برای ایجاد بلاک با همدیگر همکاری میکنند. متمرکزسازی جزئی در ایجاد بلاکها، عملکرد این الگوریتم را نسبت به بقیه مکانیزمهای اجماع سریعتر میسازد. قابلتوجه است که ایاس موفق به ایجاد بلاکهایی در کمتر از ۱ ثانیه شده است. تنها کمی سریعتر از بلاکهای ۱۰ دقیقهای بیت کوین!
اثبات اعتبار (Proof-of-Authority) – اعتماد، تمام آنچه نیاز دارید
محبوبترین پیادهسازیهای انجامشده: POA.Network ، شبکه آزمایشی کووان اتریوم (Ethereum Kovan)
مزایا: بهرهوری بالا، مقیاسپذیر
معایب: سیستمهای متمرکز
اثبات اعتبار، الگوریتم اجماعی است که تراکنشها در آن توسط حسابهایی معتبر و تایید شده، اعتبارسنجی میشوند؛ بهنوعی مانند ادمینها در سیستمهای معمولی. اعضا در شبکه به این افراد اعتماد و انتظار حرکات صحیح از آنها دارند. الگوریتم PoA در خروجی بسیار موفق ظاهر میشود و برای شبکههای خصوصی بهینهسازی شده است. البته بعید است این مکانیزم را به خاطر ذات متمرکزش در بلاک چینهای عمومی مشاهده کنید.
اثبات وزنی (Proof-of-Weight) – هرچه سنگینتر، بهتر
محبوبترین پیادهسازیهای انجامشده: آلگورند (Algorand)، فایلکوین (Filecoin)، چیا (Chia)
مزایا: قابل تنظیم، مقیاسپذیر
معایب: چالش انگیزه سازی
اثبات وزنی طبقهبندی گستردهای از الگوریتمهای اجماع است که بر اساس مدل توافق جمعی آلگورند پایهریزی شده است. بر اساس این ایده کلی همانطور که در مکانیزم اثبات سهام درصد مالکیت شما از توکنهای کل شبکه، نشاندهنده شانس شما برای کشف بلاک بعدی است، در سیستم اثبات وزنی نیز پارامترهای نسبی وزنی دیگری در فرایند مورداستفاده قرار میگیرند. برای مثال در مکانیزم اثبات فضا-زمان (Proof-of-Spacetime) فایلکوین، بسته به اینکه چه مقدار اطلاعات IPFS ذخیره کردهاید، در شبکه اعتبار خواهید داشت. بقیه سیستمها نیز مانند اثبات شهرت (Proof-of-Reputation) پارامترهای دیگری را مدنظر قرار میدهند.
تحمل خطای بیزانس (Byzantine Fault Tolerance) – سلطهجویی بر بلاک چین!
محبوبترین پیادهسازیهای انجامشده: هایپرلجر (Hyperledger)، استلار (Stellar)، دیسپچ (Dispatch)، ریپل (Ripple)
مزایا: خروجی بالا، هزینه و مخارج کم، مقیاس پذیر
معایب: اعتماد نصفه و نیمه
مسئله قدیمی به نام «مسئله فرمانده بیزانس» در رابطه با رایانش توزیعشده وجود دارد. این مسئله از جایی آغاز میشود که چندین فرمانده بیزانس و ارتش مربوط به هرکدام از آنها یک شهر را محاصره کردهاند. آنها باید بهصورت متحد درباره زمان انجام حمله تصمیمگیری کنند. اگر برخی از فرماندهان بدون همراهی بقیه به شهر حمله کنند، برتری حاصل از محاصره آنها از بین رفته و جنگ را بهطرف مقابل واگذار میکنند. این فرماندهان بهواسطه فاصله طولانی که با یکدیگر دارند، برای ارتباط نیاز به ارسال پیام دارند. حال در موضوع ارزهای دیجیتال نیز پروتکلهای مختلف BFT جهت فائق آمدن بر این مشکل در راستای دستیابی به اجماع مورداستفاده قرار میگیرند؛ و البته هرکدام از آنها مزایا و معایب خاص خود را دارد:
تحمل خطای بیزانس کاربردی (Practical Byzantine Fault Tolerance) یا PBFT: یکی از اولین راهحلهایی که برای این مشکل ارائه شد، پروتکل PBFT بود. این مکانیزم هماکنون در هایپرلجر فابریک، توسط فرماندهان از پیش تعیین شده، با بهرهوری چشمگیری در حال اجراست.
مزایا: تعداد تراکنشهای بالا
معایب: متمرکز و مجاز
توافقنامه بیزانس متعهد شده (Federated Byzantine Agreement): این الگوریتم نوع دیگری از راهحلهای موجود برای مشکل فرماندهان بیزانس است که ارزهای دیجیتال استلار و ریپل از آن استفاده میکنند. ایده کلی به این صورت است که هر فرمانده بیزانس که مسئول زنجیره خود میباشد، پیامها را به همان ترتیب که دریافت میکند، برای اثبات حقیقت به همان ترتیب نیز منتشر میکند. این فرماندهان (تاییدکنندگان) در ریپل، توسط این موسسه از پیش انتخابشدهاند. اما در استلار هرکسی قابلیت این را دارد که تأییدکننده (Validator) باشد و این شما هستید که فرد مورد اعتماد خود را باید انتخاب کنید.
به دلیل خروجی فوقالعاده بالا، کارمزد پایین تراکنشها و مقیاسپذیری شبکه، به نظر من کلاس FBA از الگوریتمهای توافق جمعی، در بین مکانیزمهای اجماع توزیعشده بهترین محسوب میشوند.
گراف جهتدار غیرمدور (DAGs) – معروف به قاتل بلاک چین!
محبوبترین پیادهسازیهای انجامشده: آیوتا (IOTA)، هشگراف (Hashgraph)، نانو یا ریلبلاک سابق (Nano)
مزایا: مقیاسپذیری شبکه، کارمزد پایین
معایب: وابسته به نوع پیادهسازی
دفاتر کل توزیعشده دگ در حال حاضر از پروفایل تیندر ویتالیک بوترین نیز جذابتر به نظر میرسند! در الگوریتمهای اجماع دگ، دیگر شاهد ساختار داده بلاک چینی نیستیم و تراکنشها بهصورت غیر همزمان مدیریت میشوند. مزیت بینظیری که در این نوع شبکهها وجود دارد، امکان انجام بینهایت تراکنش در ثانیه است؛ اما الگوریتمهای اجماع دگها نیز مانند دیگر مکانیزمهای اجماع، نقاط قوت و ضعف خود را دارد.
تنگل (Tangle): این الگوریتم از الگوریتمهای اجماع است که در ارز دیجیتال آیوتا بکار رفته است. جهت انجام تراکنش در شبکه آیوتا، باید دو تراکنش قبلی که دریافت کردهاید را تأیید کنید. دو تراکنش درازای یکی، یا توافق جمعی «نیکی در حق دیگران» (pay-it-forward) اعتبار تراکنشها را با اضافه شدن هر چه بیشتر آنها به تنگل تقویت میکند. به دلیل ایجاد اجماع از طریق تراکنشها، ازلحاظ تئوری اگر فردی بیش از یک سوم تراکنشها را تولید کند، میتواند شبکه را قانع به تأیید تراکنشهای نامعتبر خود کند. تا زمانی که حجم تراکنشهای انجامشده مقدار قابلتوجهی باشد، امکان ایجاد یک سوم تراکنشها در شبکه از جانب فرد یا گروهی ناممکن خواهد بود.
آیوتا در حال حاضر از شیوه بررسی دوباره کل تراکنشهای شبکه در نود متمرکزی به نام «هماهنگکننده» (The Coordinator) بهره میبرد. طبق گفته توسعهدهندگان، این نود یار کمکی شبکه در مراحل ابتدایی توسعه آیوتا خواهد بود و پس از گسترش تنگل بهاندازه کافی، از شبکه حذف خواهد شد.
هشگراف: این الگوریتم که پروتکل اجماع مبتنی بر سخنچینی محسوب میشود، توسط لیمون بیرد (Leemon Baird) ساخته و توسعه داده شد. نودها تراکنشهایی که از آنها آگاهی دارند را بهصورت شانسی به اشتراک میگذارند تا اینکه درنهایت تمام تراکنشها در شبکه بین همه نودها پخش شود. هشگراف از سرعت بسیار بالایی در انجام تراکنشها برخوردار است (بیش از ۲۵۰ هزار تراکنش در ثانیه) اما در مقابل حملات Sybil آسیبپذیر نشان میدهد. با این حساب این مکانیزم برای شبکههای خصوصی گزینه بسیار مناسبی است. همچنین مشاهده این الگوریتم در شبکههای عمومی نظیر اتریوم یا دیسپچ، در آیندهای نزدیک نامحتمل به نظر میرسد.
بلاک-لتیس (Block-lattice): ارز دیجیتال نانو بر روی الگوریتمی به نام بلاک-لتیس اجرا میشود که ترکیبی از بلاک چین و دگ است. ساختار بلاک-لتیس بهگونهای است که هر کاربر (آدرس کیف پول) بلاک چین مخصوص خود را دارد که تنها خود کاربر قادر به بازنویسی آن میباشد. همه کاربران نیز یک کپی از زنجیرههای همدیگر در اختیاردارند. هر تراکنش از دو مشخصه بلاک ارسال در زنجیره ارسالکننده و بلاک دریافت در زنجیره دریافتکننده بهره میبرد. به نظر میرسد روش کار این مکانیزم خیلی ساده باشد، اما برای آسیب زدن در دنیای واقعی همیشه راهی وجود دارد. این ساختار بلاک-لتیس بهتنهایی در برابر حملات اسپم انتقال مبالغ ریز آسیبپذیر است. در این حملات، مهاجم اقدام به ایجاد تعداد بسیار بالایی بلاک چین خصوصی و ارسال مبالغ بسیار جزئی به گسترهای از کیف پولهای خالی میکند.
اسپکتر (SPECTRE): تسلسلی از رخدادهای اثبات کار: روشی پیشنهاد شده برای مقیاسپذیری بیت کوین با انجام تراکنشها بصورت انتخابات بازگشتی (Recursive Elections) است که با ترکیب الگوریتمهای اثبات کار و دگ برای توافقات جمعی مقیاس پذیر استفاده میشود. در اسپکتر هر بلاکی که استخراج میشود بجای یک والدین (parent)، چند والدین دارد و به این صورت امکان مدیریت بلاکهای بیشتری در واحد زمان فراهم میشود. هر بلاک استخراج شده در اسپکتر، اعتبار بلاک والدین خود را افزایش میدهد. در مقایسه با فلسفه اثبات کار که میگوید «زنجیرهای که طولانیتر باشد، پیروز است» در اسپکتر «بلاکی که بیشترین بلاک فرزند را داشته باشد، برنده خواهد بود». اسپکتر در پروژهای واقعی بکار گرفته نشده و آسیبپذیری آن در برابر حملات هنوز مشخص نشده است، اما بنظر میرسد راهحلی هوشمندانه برای حل مشکلات بیت کوین باشد.