اجماع یک مسئله اصلی برای ایجاد اعتماد در سیستمهای غیرمتمرکز است. در بلاکچین گرهها به یکدیگر اعتماد ندارند به این معنی که بعضی از آنها ممکن است رفتار خصمانه داشته باشند، بنابراین برای تکثیر، بروزرسانی و تایید اعتبار و صحت یک بلاک، گرهها باید به اجماع برسند تا بلاک جدید در دفترکل اضافه شود. یک الگوریتم برای حل مسئله اجماع، لازم است که ترتیب ایجاد بلاک و ترتیب بروزرسانی معاملات در دفترکل را تضمین کند و از همزمانی اضافه شدن بلاکها و ایجاد تضاد جلوگیری نماید. اجماع اولین بار توسط ساتوشی ناکاموتو برای مبادله بیتکوین مطرح شد و ساز و کار مختص خود را دارد و پس از آن روشهای گوناگون دیگری همچون POS ،DPOS ،PBFT برای اجماع در شبکههای بلاکچین عمومی و خصوصی مطرح شد.
الگوریتمهای اجماع در بلاکچین را میتوان در سه دستهی کلی به صورت زیر دستهبندی نمود:
1- الگوریتمهای اجماع مبتنی بر اثبات
2- الگوریتمهای مبتنی بر رایگیری
3- الگوریتمهای مبتنی بر گراف جهت دار بدون دور
در ادامه الگوریتمهای موجود در هر دستهبندی توضیح داده میشود.
الگوریتمهای اجماع مبتنی بر اثبات
در الگوریتمهای مبتنی بر اثبات در میان تمام گرههای شبکه، یک گره اثبات میکند که بلاک جدید زنجیره صحیح است و پاداش شبکه را دریافت میکند و معمولا در بلاکچینهای عمومی کاربرد دارد که گرههای شبکه اعتبارسنجی نمیشوند و ایجاد اعتماد از طریق حل پازلهای رمزنگاری توسط گرهها صورت میگیرد.
الگوریتمهای اجماع مبتنی بر رایگیری در بلاکچین
در الگوریتمهای مبتنی بر رایگیری، یک گره برای اضافه نمودن بلاک جدید، با دیگر گرهها ارتباط برقرار میکند و درصورتی که بلاک جدید توسط اکثریت گرهها مورد تایید باشد، بلاک جدید پذیرفته میشود. معمولا این الگوریتمها در بلاکچینهای خصوصی، که هویت گرهها مشخص است کاربرد دارد و ایجاد اعتماد وابسته به میزان اعتبار سایر گرههای معتمد شبکه است.
الگوریتمهای اجماع مبتنی بر گراف جهتدار بدون دور
اساسا سیستمهای بلاکچین دارای ساختار خطی هستند و بلاکها به صورت ترتیبی و پشت سرهم در بلاکچین ذخیره میشوند. این بلاکچین را آهسته میکند و بلاکها نمیتوانند به صورت موازی اضافه شوند. اما در گراف جهت دار بدون دور، بلاکها یا تراکنشها میتوانند به صورت موازی به زنجیره اضافه شوند و هر بلاک یا تراکنش، تعدادی از بلاکهای قبل از خود را تایید میکند و این مقیاسپذیری بیشتری به گراف جهتدار بدون دور میدهد.
مقایسه انواع روشهای اجماع
در این پست عملکرد الگوریتمهای اجماع در بلاکچین شرح داده شد که با بررسی آنها متوجه میشویم که هیچ یک از مکانیسمهای اجماع کامل نیستند و هر کدام به منظور خاصی بکار میروند. هدف اصلی الگوریتمهای مبتنی بر اثبات، این است که در میان همه گرههای موجود در شبکه، یک گره به طور کارآمد اثبات میکند که بلاک جدید زنجیره، صحیح است و پاداشی را از شبکه دریافت میکند. معمولا در بلاکچینهای عمومی کاربرد دارد که گرههای شبکه اعتبارسنجی نمیشوند و ایجاد اعتماد از طریق حل پازلهای رمزنگاری توسط گرهها صورت میگیرد. فرایند اثبات به دلیل محاسبات زیاد بسیار زمانبر و آهسته است. جدول 1مقایسه دو روش اصلی اثبات کار و اثبات سهام را که مبتنی بر اثبات هستند را نشان میدهد.
در الگوریتمهای مبتنی بر رایگیری، گرههای داخل شبکه شناخته شده هستند و معمولا در بلاکچینهای خصوصی، که هویت گرهها مشخص است کاربرد دارد. این تفاوت اصلی، در مقایسه با الگوریتمهای مبتنی بر اثبات است که گرهها اغلب به صورت آزاد و بدون تایید و هویت سنجی به شبکه اضافه میشوند. در الگوریتمهای اجماع، مبتنی بر رایگیری علاوهبر نگهداری دفاترکل، تمام گرهها معاملات یا بلاکها را بررسی میکنند و قبل از تصمیمگیری برای اضافه کردن بلاک جدید به زنجیره با دیگر گرهها ارتباط برقرار میکنند. جدول 2 مقایسه کلی بین الگوریتمهای اجماع مبتنی بر اثبات و الگوریتمهای اجماع مبتنی بر رایگیری را نشان میدهد.
همچنین هریک از روشهای اجماع، با توجه به کارکرد در دستهبندی مشخصی از بلاکچینها مورد استفاده قرار میگیرد. جدول 3 کاربرد تمام الگوریتمهای اجماع را در پیادهسازیهای مختلف بلاکچین نمایش میدهد. در پست های آینده انواع الگوریتم های اجماع به تفصیل شرح داده می شود.