الگوریتم اجماع چیست؟
الگوریتم اجماع مکانیزمی است که در شبکههای بلاکچین برای رسیدن به توافق در مورد وضعیت دفتر کل توزیعشده استفاده میشود. به زبان سادهتر، این الگوریتمها تضمین میکنند که همه نودها (کامپیوترهای متصل به شبکه) بر روی یک نسخه واحد و صحیح از دادهها توافق دارند.
الگوریتم اجماع (Consensus Algorithms)، ستون فقرات فناوری بلاک چین است. به جرئت میتوان گفت یکپارچگی، نظم، شفافیت و امنیت شبکههای بلاک چینی مدیون الگوریتم اجماع است. این الگوریتم در حقیقیت مثل یک قرارداد یا توافق بین جامعه کاربران شبکههای غیرمتمرکز عمل میکند تا از آشفتگی سیستم و از هم کسیختگیاش محافظت کند و در عین حال، به شخص یا نهاد خاصی وابسته نباشد.
Consensus Algorithms چیست و چطور کار میکند؟
بلاکچین یک شبکه توزیع شده و غیرمتمرکز با ویژگیهایی چون تغییرناپذیری، حفظ حریم خصوصی، امنیت و شفافیت است. در این شبکه، هیچ مرجع مرکزی برای تأیید و اعتبارسنجی تراکنشها وجود ندارد، اما باوجوداین، هر تراکنش در بلاکچین کاملاً قابل اعتماد تلقی میشود. این سازوکار تنها با طراحی و اجرای پروتکل اجماع، بهعنوان بخش اصلی هر شبکه بلاک چین امکانپذیر است.
به بیان دیگر، یک الگوریتم اجماع روشی است که از طریق آن تمام گرهها یا نودها (Node) در شبکه در مورد وضعیت دفتر کل توزیعشده (Distributed Ledger) به یک توافق مشترک میرسند. به این ترتیب، الگوریتمهای اجماع، امکان اطمینان از درستی اطلاعات ذخیره شده در شبکه بلاکچین را تضمین کرده و اعتماد بین کاربران ناشناخته را در ساختار توزیعشده برقرار میکنند.
پروتکل اجماع اطمینان میدهد که هر بلاک جدید حاوی دادههای تراکنشها که به بلاکچین اضافه میشود، تنها نسخه معتبر و تأییدشده توسط تمام اعضای شبکه است.در نتیجه، هر الگوریتم اجماع، بهدنبال یافتن توافقی میان تمام اعضا است که منافع کل شبکه را تأمین کند.
در حقیقت، اگر این الگوریتمها نباشند، یکپارچی و قابل اعتمادبودن بود اطلاعات در شبکه بلاک چین زیر سوال میرود و در آن بههمریختگی و آشفتگی غیرقابل کنترلی به وجود میآید. درست کارکردن الگوریتم اجماع در شبکه، نیازی به مدیریت شخص یا نهاد خاصی ندارد و کل جامعه کاربران در درستی انجام آن سهیم هستند.
مراحل کلی عملکرد الگوریتم اجماع
- ایجاد و انتشار تراکنشها: کاربران تراکنشهای خود را ایجاد کرده و آنها را به شبکه بلاک چین ارسال میکنند.
- جمعآوری تراکنشها در بلاکها: گرههای شبکه، تراکنشها را جمعآوری کرده و آنها را در بلاکهایی قرار میدهند که حاوی مجموعهای از تراکنشها، هش بلاک قبلی و دیگر اطلاعات است.
- اعتبارسنجی بلاکها: گرههای شبکه با استفاده از الگوریتمهای مختلفی مانند اثبات کار (PoW)، اثبات سهام (PoS) و …، اعتبار بلاکهای جدید را بررسی میکنند.
- دستیابی به اجماع: پس از اعتبارسنجی، گرهها باید بر روی اعتبار بلاک جدید به توافق برسند. این توافق معمولاً با فرایند رأیگیری یا مکانیزمهای اجماعی دیگر حاصل میشود.
- اضافهشدن بلاک به بلاک چین: پس از دستیابی به اجماع، بلاک جدید به بلاک چین اضافه شده و زنجیره بلاک طولانیتر میشود
تاریخچه الگوریتم اجماع
میدانیم که الگوریتم اجماع، یک سیستم توزیعشده است و سازمان یا نهاد خاصی مسئولیت سرپرستی و مدیریت آن را بر عهده ندارد. این موضوع با اینکه باعث ایجاد یک سیستم شفاف و امن میشود و به همه به یک اندازه اختیار کنترل میدهد، یک چالش مهم هم بهوجود میآورد؛ مسئله این است که در الگوریتم اجماع برای منظم ماندن سیستم و اطمینان از درست انجام گرفتن فرآیندها چه اقدامی انجام میشود؟ چطور میشود به این سیستم اعتماد کرد؟ پاسخ پیروی از مسئله فرماندهان بیزانسی (Byzantine Generals Problem) است! مسئله بیزانسی توافقی در سیستمهای توزیع شده به وجود میآورد که خیال همه اعضا را از یکپارچگی سیستم و درست انجام شدن کارها راحت میکند.
پیشینه مسئله فرماندهان بیزانسی به یک داستان نظامی رومی برمیگردد و خروجی آن در الگوریتم اجماع، در نقش یک راه چاره برای رفع چالشهای ایجاد توافق در سیستمهای توزیع شده و به اجماع رسیدن اکثریت اعضا با هم ظاهر میشود. فرض کنید فرماندهان چند گروه مختلف با هدفی مشترک، بر سر انجام کاری بهطور همزمان توافق میکنند.
چه تضمینی وجود دارد که همه بر سر این توافق بمانند و کسی عمدا یا سهوا در انجام وظیفه خود کوتاهی نکند؟ بهتر است برای درک بهتر مکانیسم اجماع در شبکههای بلاک چین به یک مثال ساده توجه کنید. فرض کنید که شما و گروهی از دوستانتان در نظر دارید برای شام به رستورانی بروید. هر کدام از دوستانتان یک رستوران را انتخاب میکنند و برای اینکه نتیجه نهایی مشخص شود بین گزینههای موجود رایگیری میکنیدو رستورانی که بیشترین رای را بیاورد میشود مقصد شما برای قرار شام دوستانه. طرز کار شبکه اجماع هم در ایجاد توافق و یکپارچگی بین گرهها همین است. مثلا همه اعضای شبکه (گرهها) باید در مورد اینکه آخرین تراکنشها چه بودهاست رای دهند و به توافق برسند.
الگوریتم اجماع و تحمل خطای بیزانس
در الگوریتم اجماع گرهها همان فرماندهانی هستند که قرار است رهبر گروه خود باشند و فرض اولیه این است که اکثریت آنها با در نظرداشتن منافع مالی خودشان و سودبردن از امنیت شبکه قابل اعتماد هستند و قصد خیانت و کارشکنی ندارند. مورد بعدی تکرار و تایید است. در مثال رستوران، شما برای اینکه مطمئن شوید همه به یک نظر واحد رسیدهاند، چندبار از آنها سوال میکنید. در شبکه بلاک چین هم همینطور است. اطلاعات به طور مداوم در بین گرهها مبادله میشود و هر گره اطلاعات خودش با دیگر گرهها را مقایسه میکند. اگر اکثریت گرهها اطلاعات مشابهی دریافت کنند، آن اطلاعات مورد تایید شبکه است. استفاده از توابع توافق در الگوریتم اجماع یکی دیگر از اثرات مفید مسئله فرماندهان بیزانسی در شبکههای کامپیوتر مثل شبکه بلاک چین است. این توابع فرمولهای ریاضی پیچیدهای هستند که همه اطلاعات را بررسی میکنند و به تایید تراکنشهای مالی معتبر یا ایجاد بلوکهای جدید کمک میکنند. الگوریتم اثبات کار و اثبات سهام نوعی تابع توافق هستند که در ادامه بیشتر دربارهشان میخوانید.
چرا به الگوریتم اجماع نیاز داریم؟
بدون الگوریتم اجماع سیستم بلاک چین یک سیستم بهم ریخته و آشفته است. این الگوریتم با وضع قوانین مشخص و لازم الاجرا شبکه غیرمتمرکز بلاک چین را یکدست و امن میکند. سه اصل اساسی الگوریتم اجماع عبارتند از:
- توافق و اجماع بر سر یک نسخه واحد از اطلاعات در شبکه
- کنترل و مدیریت شبکه با استفاده از اعتبار بعضی اعضا با عنوان رهبر و سهامگذار
- استفاده از نظر اکثریت با رایگیری در مورد صحت اطلاعات روی دفتر کل توزیعشده
مهمترین الگوریتمهای اجماع در بلاک چین
تا اینجای کار ماهیت الگوریتم اجماع را شناختیم و با اهمیتش در شبکه بلاک چین آشنا شدیم. حالا وقت آن رسیده که کمی در طرز کار الگوریتم اجماع در شبکههای بلاک چینی دقیقتر شویم به سراغ موارد جزئیتر برویم. الگوریتم اجماع برای تحقق بخشیدن به یکپارچگی سیستم و بینیازی آن به یک مدیر کل از سازوکارهایی استفاده میکند که در ادامه معرفی میکنیم:
الگوریتم اثبات کار (Proof of Work)
الگوریتم اثبات کار (POW) یکی از مهمترین الگوریتمهای اجماع است. شبکه بیت کوین و بسیاری از شبکههای دیگر ( از جمله اتریوم قبل از آپدیت مرج ) با استفاده از این الگوریتم فعالیت میکنند. در الگوریتم اثبات کار ماینرها باید با صرف انرژی بالا، معادلات پیچیده ریاضی را حل کنند تا بتوانند بلاک جدید در شبکه باز کنند. از آنجا که برای استخراج بلوکها در اثبات کار منابع محاسباتی زیادی نیاز است، یک شخص خاص نمیتواند کنترل شبکه را دست بگیرد و در نتیجه این تمرکز زدایی امنیت شبکه تا حد زیادی بالا برده و ثبات خوبی به آن میدهد.
الگوریتم اثبات سهام (Proof of Stake)
الگوریتم اثبات سهام (Pos) هم مانند الگوریتم اثبات کار، از مهمترین و شناختهشدهترین الگوریتمهای اجماع در شبکههای بلاک چینیست. استفاده از این الگوریتم نسبت به اثبات کار، به انرژی کمتری نیاز دارد و به مراتب مقیاسپذیری و امنیت بالاتری را هم به همراه دارد. به همین خاطر بهراحتی میتواند جایگزین اثبات کار شود. در حال حاضر شبکه اتریوم مبتنی بر همین الگوریتم است و تنها بخش کوچکی از آن با روش قبلی و بر پایه الگوریتم اثبات کار فعالیت میکند. در الگوریتم اثبات سهام به جای حل مسائل ریاضی، ماینرها به سهامگذار تبدیل میشوند و با استفاده از استیکینگ (Staking) بخشی از دارایی خود را در بلاک به عنوان وثیقه ذخیره میکنند. آنها با استفاده از این اعتبار میتوانند شانس خود را در ایجاد بلاک جدید در شبکه امتحان کنند تا بتوانند در تصمیم گیریها هم نقش داشته باشند.
الگوریتم اثبات سهام واگذار شده (Delegated Proof of Stake)
الگوریتم اثبات سهام واگذار شده (DPoS) از الگوریتم اثبات سهام الهام گرفته است. طرز کار آنها به این صورت است که وقتی اعتبارسنجها در شبکه مشخص شدند، اعضای دیگر شبکه از بین آنها نمایندگانی را برای خود انتخاب میکنند تا در تصمیمگیریها و رایگیریها شرکت کنند. عموما اعتبارسنجهایی که مقدار قابل توجهی ارز دیجیتال را در شبکه سپردهگذاری میکنند. اگر بخواهیم توضیح دقیقتری برای اثبات سهام واگذار شده ارائه دهیم باید بگوییم که در الگوریتم اثبات سهام، ایجاد بلاک جدید بهصورت تصادفی و باتوجه به مقدار اعتباری که وثیقه گذاشته شده تعیین میشود. اما در الگوریتم اثبات سهام واگذار شده، جامعه کاربران شبکه نمایندگانی را برای ایجاد بلاک جدید انتخاب میکنند تا مسئولیت اعتبارسنجی تراکنشها و ایجاد بلاک جدید در شبکه را به آنها بسپارند.
الگوریتم اثبات سهام هیبرید (Hybrid Proof of Stake)
اثبات سهام هیبرید (Hybrid PoS) یک الگوریتم جدید است که سعی دارد مزایا اصلی الگوریتم اثبات کار و اثبات سهام را با هم ادغام کند و یک شبکه بلاک چین امنتر، مقیاسپذیرتر و مفیدتر بسازد. طرز کار این الگوریتم را میتوان به سه دسته کلی تقسیم کرد:
- ترکیب اثبات کار و اثبات سهام: برای ایجاد بلاک جدید، بهصورت تناوبی از ویژگیهای اثبات کار و اثبات سهام استفاده میشود. مثلا در تولید ۱۰ بلاک جدید در شبکه، ۹تای آنها از الگوریتم اثبات سهام پیروی میکنند و در ایجاد دهمین بلاک باید توان محاسباتی ماینر سنجیده شود و بلاک دهم با استفاده از الگوریتم اثبات کار ایجاد شود.
- راهاندازی با اثبات کار و ادامه با اثبات سهام: در این روش از الگوریتم اثبات هیبریدی، در ابتدا با استفاده از اثبات کار و بهکارگیری توان محاسباتی ماینرها، بلاکها ایجاد میشوند و بعد از رسیدن به یک نقطه عطف (که از قبل مشخص شدهاست) ادامه روند را با الگوریتم اثبات سهام پیش میروند. نقطه عطف میتواند رسیدن به تعدادی بلاک تولد شده باشد یا گذشتن زمان مشخص.
- استفاده از اثبات کار برای تایید اعتبارسنجها: در این نوع از الگوریتم اثبات سهام هیبریدی هر کسی که میخواهد به ماینر تبدیل شود قبل از اینکه به عنوان اعتبارسنج فعالیت کند باید یک آزمون ورودی را بر اساس الگوریتم اثبات کار را از سر بگذراند. به این تریتیب که ابتدا درخواست رسمی برای تبدیلشدن به اعتبارسنج را به شبکه ارسال میکند، شبکه به او مسئله ریاضی پیچیدهای میدهد و در صورتی که بتواند از پس حلکردنش بربیاید، میتواند در فرآیند اثبات سهام شرکت کند.
الگوریتم اثبات اعتبار (Proof of Authority) الگوریتم اثبات اعتبار (POA) همانطور که از نامش پیداست بر پایه تایید اعتبار است. به این صورت که حق ایجاد بلاک و تایید تراکنشها تنها به کسانی داده می شود که تجربه و تخصص خود را در شبکه بلاک چین ثابت کرده و اعتبارسنج شده باشند. در واقع ایجاد بلاک در این الگوریتم به اعتبار و شهرت افراد یا سازمانها بستگی دارد. مهمترین ویژگی الگوریتم اثبات اعتبار در مقایسه با الگوریتم اثبات سهام و اثبات کار این است که به انرژی کمتری نیاز دارد و در نتیجه میتوان گفت به محیط زیست آسیب کمتری میزند.
دیگر الگوریتمهای اجماع
تعداد اصلی الگوریتمهای اجماع را نمیتوانیم درست تخمین بزنیم و لیستی از تمام آنها در اختیار داشته باشیم. اما الگوریتمهای اجماع مهم را بالاتر شرح دادیم. از آنجا که شبکههای بلاک چینی روز به روز در حال بهبود هستند، الگوریتمهای دیگری هم وجود دارد که بد نیست با آنها آشنا باشید.
- الگوریتم اثبات دانایی صفر (zero knowledge proof): تراکنشهای محرمانه، احراز هویت بدون نیاز به اطلاعات شخصی، رایگیریهای امن و سرّی.
- الگوریتم اثبات ظرفیت (Proof of Capacity): بهجای سنجیدن قدرت محاسباتی، از فضای خیرهسازی هارد دیسک استفاده میکند، هرچه فضای ذخیرهسازی گره بیشتر باشد، شانس بیشتری برای تایید ایجاد بلاک جدید و دریافت پاداش دارد.
- الگوریتم اثبات سوزاندن (Proof of Burn): از غیرفعالکردن یا به اصطلاح سوزاندن ارز دیجیتال برای تایید تراکنش و ایجاد بلاک جدید استفاده میکند. هرچه میزان ارزهای سوخته شده بیشتر باشد حق بیشتری برای تولید بلاک جدید به گره داده میشود.
- الگوریتم اثبات تاخیر (Proof of Time): استفاده از زمان به جای توان محاسباتی، مدت زمان مشخصی به عنوان تاخیر اجباری برای ایجاد بلاک جدید و تایید تراکنش در نظر گرفته میشود.
همه را گفتیم تا بگوییم…
الگوریتمهای اجماع، عنصری حیاتی در زیرساخت شبکههای بلاک چین هستند. این الگوریتمها با ایجاد مکانیزمی برای دستیابی به توافق در شبکههای غیرمتمرکز، به امنیت، اعتماد و غیرمتمرکزسازی این شبکهها کمک شایانی میکنند. انتخاب الگوریتم مناسب برای هر شبکه، به عوامل مختلفی مانند مقیاسپذیری، امنیت و مصرف انرژی بستگی دارد.