الگوریتم اجماع (Consensus Algorithm) چیست؟

الگوریتم اجماع جایگاه مهمی در علوم کامپیوتر دارد و از آن برای دستیابی به اجماع بر سر تایید دادهها در یک شبکه استفاده می شود. الگوریتم اجماع ابداعی است که فقط در شبکههای توزیع شده یا غیر متمرکز از آن استفاده میشود، چرا که هیچ فرد یا نهاد مرکزی وجود ندارد که اطلاعات روی شبکه را به تنهایی تایید کند و این وظیفه نودها (Node) یا کامیپوترهای داخل شبکه است که در سرتاسر جهان فعال هستند.
در این مطلب از فکت کوینز الگوریتم اجماع، دلایل نیاز به آن و انواع الگوریتمهای اجماع را بررسی میکنیم.
الگوریتم یا مکانیسم اجماع (Consensus Algorithm) چیست؟
اجماع فرآیندی است که طی آن گروهی از کامپیوترها (گرهها) در یک شبکه تعیین میکنند که کدام تراکنشهای بلاک چین معتبر هستند و کدامها معتبر نیستند. الگوریتم اجماع یا Consensus Algorithm روشی است که برای دستیابی به این توافق استفاده میشود. این الگوریتم شامل یک سری قوانین است که به محافظت از شبکه در برابر عملکرد متقلبانه و حملات هکری کمک میکند.
بسته به بلاک چین و کاربرد آن، انواع مختلفی از مکانیسمهای اجماع وجود دارد. در حالی که آنها در مصرف انرژی، امنیت و مقیاس پذیری متفاوت هستند، همه آنها یک هدف مشترک دارند: اطمینان از صحت تاریخچه تراکنشها.
انواع الگوریتم های اجماع
در ادامه به معرفی معروف ترین مکانیزمهای اجماع و بلاکچینهایی که از آنها استفاده میکنند خواهیم پرداخت.
گواهی اثبات کار (POW)
مکانیزم گواهی کار یا اثبات کار (PoW) که توسط بیتکوین، اتریوم و بسیاری دیگر از بلاک چینهای عمومی استفاده شده است، اولین مکانیزم اجماعی بود که اختراع شد. به طور کلی مکانیزم POW قابل اعتمادترین و امن ترین مکانیسم اجماع شناخته میشود، اگرچه نگرانیها در مورد ظرفیت پردازش پایین آن زیاد است. در حالی که اصطلاح گواهی کار برای اولین بار در اوایل دهه 1990 ابداع شد، این بنیانگذار بیت کوین، ساتوشی ناکاموتو بود که اولین بار این فناوری را در زمینه ارزهای دیجیتال به کار برد.
در PoW، ماینرها با استفاده از رایانههای پرقدرت برای حل معماهای محاسباتی بسیار پیچیده با یکدیگر رقابت میکنند. اولین کسی که عدد 64 رقمی هگزادسیمال (هش) را پیدا میکند، حق ساخت بلاک جدید و تائید تراکنشها را به دست میآورد و همچنین مقداری ارز دیجیتال به عنوان «پاداش بلاک» دریافت میکند.
از آنجایی که برای تولید بلوکهای جدید منابع محاسباتی و برق زیادی نیاز است، هزینههای عملیاتی PoW بسیار بالاست. این به عنوان مانعی برای ورود ماینرهای جدید به شبکه عمل میکند که منجر به نگرانی در مورد متمرکز شدن شبکه و محدودیتهای مقیاس پذیری میشود.
و این فقط هزینههای بلاکچین گواهی کار نیست که زیاد است. رایج ترین انتقاد وارده به مکانیزم PoW تأثیر مصرف برق آن بر محیط زیست است. این امر باعث شده است که بسیاری به دنبال پروتکلهای اجماع پایدارتر و کارآمدتر مانند گواهی سپرده یا همان اثبات سهام باشند.
الگوریتم گواهی سپرده یا اثبات سهام (POS)
همانطور که از نام آن پیداست، این روش محبوب اجماع حول فرآیندی است که به نام سپردهگذاری (استیکینگ) شناخته میشود. در یک سیستم گواهی سپرده (Proof of Stake)، ماینرها ملزم به سپردهگذاری ارزهای دیجیتال خود هستند تا شانس انتخاب بهعنوان اعتبارسنج (Validator) را داشته باشند. این فرآیند بی شباهت به قرعه کشی لاتاری نیست که در آن هر چه پول بیشتری را شرط بندی کنید، شانس شما بیشتر است.
برخلاف PoW که در آن ماینرها با پاداش بلاک (کوینهای تازه تولید شده) تشویق میشوند، کسانی که به سیستم PoS کمک میکنند به سادگی یک کارمزد تراکنش دریافت میکنند.
PoS به عنوان یک جایگزین پایدارتر و سازگار با محیط زیست برای PoW در نظر گرفته میشود و در برابر حملات 51 درصد ایمن تر است. با این حال، از آنجایی که این سیستم از افرادی که سپرده بیشتری دارند حمایت بیشتری میکند، PoS انتقاداتی را به دلیل پتانسیل متمرکز شدن به خود جلب کرده است. پلتفرمهای برجسته PoS عبارتند از کاردانو (ADA)، سولانا (SOL) و تزوس (XTC).
گواهی سپرده واگذارشده (DPoS)
مکانیزم گواهی سپرده واگذار شده (اثبات سهام واگذار شده) برای دستیابی به اجماع بر یک سیستم رأی گیری مبتنی بر اعتبار متکی است. کاربران شبکه به شاهدان (Witnesse) یا همان تولید کنندگان بلاک رأی میدهند تا از طرف آنها شبکه را ایمن کنند. فقط شاهدان رده بالا (کسانی که بیشترین رأی را دریافت کردند) حق اعتبارسنجی تراکنشهای بلاک چین را کسب میکنند.
برای رأی دادن، کاربران توکن های خود را در یک استخر سپرده (Stake Pool) واریز میکنند. سپس آرا بسته به اندازه سپرده هر رأی دهنده وزندهی میشود. بنابراین هر چه سپرده یا استیک یک شخص بیشتر باشد، قدرت رأی بیشتری دارد. شاهدان منتخب که با موفقیت تراکنشها را تائید میکنند، پاداشی دریافت میکنند که معمولاً با کسانی که به آنها رأی دادهاند تقسیم میشود.
شاهدان رده بالا همیشه در معرض خطر جایگزینی با کسانی هستند که قابل اعتمادتر تلقی میشوند و در نتیجه رأی بیشتری کسب میکنند. آنها حتی ممکن است در صورت عدم انجام مسئولیتهای خود یا تلاش برای تائید تراکنشهای جعلی با رأی گیری اخراج شوند. این شاهدان را تشویق میکند تا همیشه درست عمل کرده و یکپارچگی بلاک چین را حفظ کنند.
اگرچه DPoS کمتر از PoS رایج است، اما از نظر بسیاری کارآمدتر، دموکراتیکتر و از نظر مالی فراگیرتر از نسخه قبلی خود است. الگوریتم Dpos توسط Lisk (LSK)، EOS.IO (EOS)، Steem (STEEM)، BitShares (BTS) و Ark (ARK) استفاده میشود.
گواهی فعالیت (PoA)
مکانیزم گواهی فعالیت (PoA) ترکیبی از مکانیسمهای اجماع PoW و PoS است. این الگوریتم توسط پروژههای بلاک چینی دِکرِد (Decred) و اسپرز (Espers) استفاده میشود.
در سیستمهای PoA، فرآیند ماینینگ مانند PoW آغاز میشود، و ماینرها برای حل یک مسئله ریاضی پیچیده با استفاده از قدرت محاسباتی خود رقابت میکنند. با این حال، هنگامی که بلوک استخراج شد، سیستم به PoS تغییر میکند و سربرگ بلاک (Block Header) تولید شده در شبکه PoA مخابره میشود. سپس گروهی از اعتبارسنجها بهطور تصادفی انتخاب میشوند تا بلاک را امضا کنند و بلاک جدید را تائید کنند. مانند PoS، هر چه اعتبارسنج رمز ارز بیشتری داشته باشد، شانس انتخاب شدن آنها بیشتر است. هنگامی که اعتبارسنج بلاک را امضا کرد، به شبکه بلاک چین اضافه میشود و آماده ثبت تراکنشها است. سپس پاداش بلوک بین ماینر و اعتبار سنج به اشتراک گذاشته میشود.
اگرچه مکانیزم گواهی فعالیت با هدف ترکیب بهترین ویژگیهای PoW و PoS طراحی شده است، در حالی که از کاستیهای آنها اجتناب میکند، اما به دلیل انرژی بر بودن آن و جانبداری از اعتبارسنجهایی که سپرده بیشتری دارند، انتقاداتی را در پی داشته است.
بیشتر بخوانید: هش ریت (Hash Rate) یا نرخ هش چیست؟
گواهی اعتبار یا اثبات اعتبار (POA)
مکانیزم گواهی اعتبار یا PoA با انتخاب اعتبارسنجها بر اساس اعتبار آنها عمل میکند. این مکانیزم یک نسخه اصلاح شده از PoS است که توسط بنیانگذار اتریوم و مدیر ارشد سابق شرکت گاوین وود در سال 2017 پیشنهاد شد.
در PoA، اعتبارسنجها رمزارزها را سپردهگذاری نمیکنند. در عوض، آنها باید اعتبار خود را به خاطر حق اعتبارسنج بلوکها به خطر بیندازند. این مکانیزم بسیار متفاوت از اکثر پروتکلهای بلاک چین است که معمولاً برای مشارکت نیازی به افشای هویت شما ندارند.
از آنجایی که این مکانیسم تقریباً به هیچ قدرت محاسباتی نیاز ندارد، نسبت به برخی از پیشینیان خود، به ویژه PoW، بسیار کممصرف تر است. همچنین یکی از مکانیزمهای کمهزینه است که آن را به یک راهحل بسیار مطلوب برای شبکههای خصوصی، مانند بانک جی پی مورگان (JP Morgan) تبدیل میکند. از پروژههای مبتنی بر PoA میتوان به ویچین (VET) و شبکه آزمایشی اتریوم کوان (Ethereum Kovan) اشاره کرد.
اگرچه بلاکچین گواهی اعتبار بسیار مقیاس پذیر (ظرفیت پردازش بالا) است، مشکل آن تمرکز بالای آن است، زیرا فقط تعداد معدودی میتوانند در این شبکه شرکت کنند. علاوه بر این، الزام برای شناسایی اعتبارسنجها نیز خطر فساد و دستکاری توسط شخص سوم را افزایش میدهد.
گواهی توکن سوزی (PoB)
یکی دیگر از جایگزینهای پایدارتر برای الگوریتم PoW مکانیزم اثبات توکن سوزی (PoB) است. در PoB، ماینرها قدرت استخراج یک بلاک را با «سوزاندن» (از بین بردن) مقداری از پیش تعیینشده از توکنها به دست میآورند. یعنی فرستادن آنها به یک «آدرس توکن خور» که در آنجا دیگر قابل بازیابی یا خرج کردن نیستند. هر چه تعداد رمزارز بیشتری بسوزانید، شانس انتخاب شدن به صورت تصادفی بیشتر میشود.
برخلاف PoS که ماینرها میتوانند در صورت خروج از شبکه، توکنهای قفلشده خود را آزاد کرده یا بفروشند، توکن های سوزانده شده برای همیشه از بین میروند. این روش که ماینرها را ملزم به قربانی کردن ثروت کوتاه مدت برای به دست آوردن امتیاز مادام العمر برای ایجاد بلوکهای جدید میکند، به تشویق تعهد طولانی مدت ماینرها کمک میکند. عمل توکن سوزی همچنین منجر به کمیابی یک توکن، محدود کردن تورم و افزایش تقاضای آن میشود.
ارزهای دیجیتالی که از پروتکل گواهی توکن سوزی استفاده میکنند عبارتند از اسلیم کوین (SLM)، کانتر پارتی (XCP) و فکتوم (FCT).
گواهی ظرفیت/فضا (PoC/PoSpace)
برخلاف اکثر پیشینیان خود که حقوق ماینرها را بر اساس قدرت محاسباتی یا رمزارزهای آنها اعطا میکنند، مکانیزم گواهی ظرفیت (PoC) (که تحت عنوان گواهی فضا (PoSpace) نیز شناخته میشود) الگوریتم خود را بر اساس میزان فضای خالی هارد دیسک ماینر تنظیم میکند.
در PoC، ماینرها لیستی از تمام هشهای ممکن را از قبل در فرآیندی به نام «طرحبندی» plotting)) تولید میکنند. سپس این طرحها روی هارد دیسک ذخیره میشوند. هر چه یک ماینر فضای ذخیره سازی بیشتری داشته باشد، راه حلهای ممکن بیشتر است. هر چه تعداد راه حلها بیشتر باشد، شانس داشتن ترکیب صحیح هش ها و برنده شدن پاداش بلاک بیشتر میشود.
از آنجایی که مکانیزم گواهی ظرفیت به تجهیزات گران قیمت یا تخصصی نیاز ندارد، افراد عادی هم میتوانند در چنین شبکههایی مشارکت کنند. به این ترتیب، مکانیزم POC جایگزینی با مصرف انرژی کمتر و غیرمتمرکزتر برای برخی از مکانیسمهای متداول تر محسوب میشود. با این حال، هنوز توسعهدهندگان زیادی این سیستم را انتخاب نکردهاند و نگرانیهایی در مورد حساسیت آن به حملات بدافزار وجود دارد. این مکانیسم در حال حاضر توسط سیگنام (SIGNA)، برست کوین (BURST)، استورجی (STORJ) و چیا (XCH) استفاده میشود.
الگوریتم اجماع زمان سپری شده (PoET)
الگوریتم اثبات زمان سپری شده (PoET) که معمولاً در شبکههای بلاک چین خصوصی (آنهایی که نیاز به شناسایی شرکتکنندگان دارند) استفاده میشود، از محاسبات قابل اعتماد برای اعمال زمانهای انتظار تصادفی برای ساخت بلاک استفاده میکند. این مکانیزم در اوایل سال 2016 توسط اینتل توسعه یافت.
الگوریتم PoET با تخصیص تصادفی زمانهای انتظار متفاوت به هر گره در شبکه کار میکند. در طول دوره انتظار، هر یک از این گره ها برای مدت زمان مشخص شده به حالت “خواب” میروند. اولین گره ای که بیدار میشود (یعنی کسی که کمترین زمان انتظار را دارد) حق استخراج را دریافت میکند. مکانیسم اجماع PoET بسیار کارآمد، کممصرف و مقیاسپذیر است.
بیشتر بخوانید: الگوریتم اجماع RAFT چیست؟
گواهی تاریخچه (PoH)
همانطور که از نام آن پیداست، گواهی تاریخچه یا اثبات تاریخچه (PoH) گواهی وقایع تاریخی را ارائه میدهد. PoH که توسط سولانا توسعه داده شده است، اجازه میدهد تا «برچسب زمانی» در خود بلاک چین ساخته شود و گذر زمان بین تراکنشها را بدون نیاز به تکیه به گرههای دیگر تائید کند.
از آنجایی که PoH فقط توسط سولانا استفاده میشود، هنوز در مقیاس بزرگ آزمایش نشده است.
الگوریتم اجماع اهمیت (PoI)
مکانیزم گواهی اهمیت اولین بار توسط نم (XEM) معرفی شد، اثبات اهمیت (PoI) ماینرهای خود را بر اساس معیارهای خاصی در فرآیندی به نام «برداشت» (harvesting) انتخاب میکند. این معیارها عبارتند از تعداد و اندازه تراکنشها در 30 روز گذشته، میزان ارز اختصاص یافته و فعالیت شبکه است. بر اساس این عوامل است که یک امتیاز اهمیت به گره ها نسبت داده میشود. هر چه امتیاز بالاتر باشد، احتمال انتخاب شدن برای برداشت یک بلاک و دریافت کارمزد تراکنش بیشتر است.
اگرچه PoI مشابه PoS است، اما استفاده از معیارهای اضافی در آن جانبداری از افراد ثروتمند را از بین میبرد. به این ترتیب، صرفاً سپردهگذاری بالا در POI لزوماً شانس برنده شدن بلاک را تضمین نمیکند.
چرا اجماع ضروری است؟
اطلاعات ثبت شده در بلاکچین میتواند به هر شکلی باشد. اعم از انتقال پول، مالکیت، تراکنش، توافق بین دو طرف یا حتی میزان برق مصرفی. با این حال، برای ثبت اطلاعات در بلاکچین نیاز به تأیید چندین دستگاه مانند رایانه در شبکه است. در این محیط چالش برانگیز، باید یک مشکل اساسی حل شود:
همه گرهها یا نودها باید در مورد یک تاریخچه واحد از تراکنشها به توافق برسند. بدون اتفاق نظر در مورد اینکه چه کسی مالک چه چیزی است، شبکه بی ارزش خواهد بود. سازوکار اجماع در بلاکچین به شبکه اجازه میدهد تا روی یک نسخه واحد از اطلاعات به توافق برسند. وقتی یک فرد در شبکه یک تراکنش انجام میدهد، تراکنش در سرتاسر شبکه پخش و مخابره میشود.
هر گره تراکنش را ثبت میکند و آن را به نسخه لجر (Ledger) یا زنجیره خود اضافه می کند. نسخههای لجر مختلفی که توسط گرههای مختلف نگهداری می شوند کمی متفاوت به نظر میرسند. اگر در ایالات متحده هستید و تراکنشی را مخابره میكنید، گره هایی كه به شما نزدیك هستند زودتر از گره مستقر در آسیا آن را دریافت می كنند.
آنچه دریافت می کنید مجموعه ای از نسخههای یکسان از تراکنشها اما با تاریخچه متفاوت است. در نهایت، همه فعالان شبکه باید در مورد یک داده توافق کنند و این همان کاری است که سازوکار یا الگوریتم اجماع انجام میدهد.
بیشتر بخوانید: Thresholded Proof Of Stake ؛ الگوریتم اجماعی در بلاکچین
اگر الگوریتم اجماع به درستی کار نکند چه مشکلاتی به وجود می آید؟
در ادامه به مشکلات بالقوه ای که ممکن است در بلاکچین اتفاق بیفتد اشاره خواهیم داشت.
به وجود آمدن فورک در بلاکچین
یک فورک (انشعاب زنجیره) می تواند منجر به واگرایی گره های شبکه بلاکچین شود. در بیت کوین اگرچه ممکن است به دلیل تأخیر شبکه، فورکهای موقت ایجاد شود، ولی پروتکل به گونه ای طراحی شده است که در نهایت همه گرهها در یک زنجیره واحد گردهم می آیند.
فورک شدن یا منشعب شدن زنجیره بلاکچین میتواند باعث از کار افتادن برنامه و ناسازگاری دادههای ثبت شده در بلاکچین شود و در نتیجه رویدادهای غیرقابل پیش بینی را منجر شود.
عدم اجماع
الگوریتمهای اجماع خاصی ممکن است توانایی رسیدن به اجماع را تضمین نکنند. برای مثال اگر الگوریتم اجماع به اکثریت آراء گره ها احتیاج داشته باشد ،ممکن است به دلیل از کار افتادن گره یا شبکه، برخی از گره ها به دلیل دریافت پیامهای ناسازگار قادر به تصمیم گیری نباشند و این امر ممکن است منجر به عدم توافق شود.
عملکرد ضعیف
بر اساس طراحی الگوریتم اجماع ، ممکن است در شرایط خاصی زمان بیشتری برای اجماع لازم باشد. مثلا در زمان دریافت اطلاعات بین نودهای شرکت کننده ممکن است تاخیر ایجاد شود.
سخن پایانی
حال که با انواع الگوریتمهای اجماع آشنا شدید، به نظر شما کدام الگوریتم بر بقیه برتری دارد؟ آیا گواهی اثبات سهام (POS) روزی جایگزین مکانیزم گواهی کار (POW) خواهد شد؟
سوالات متداول
الگوریتم اجماع در بلاکچین به شبکه (نودها) اجازه میدهد تا روی اطلاعات تراکنشها و تایید آنها به توافق برسند.
رویکردهای زیادی برای دستیابی به اجماع در یک بلاکچین وجود دارد اما دو الگوریتمی که بیشتر مورد استفاده قرار میگیرند الگوریتم اثبات کار (گواهی کار) و اثبات سهام (گواهی سپرده) هستند.
فکت کوینز مرجع خبر،تحلیل،آموزش رمز ارز
برای دیدن آموزش های رایگان بیشتر،عضو شوید