الگوریتم اجماع در بلاکچین چیست؟

الگوریتم اجتماع در بلاکچین، به شبکه اجازه میدهد تا روی یک نسخهی مشترک از دادهها، به توافق برسند.
یکی از مهمترین ویژگیهای شبکههای بلاکچین و سایر دفاتر توزیع شده؛ غیرمتمرکز بودن است. درواقع غیرمتمرکز بودن این شبکهها معنی این است که تمامی اطلاعات و دادهها، روی سرور اصلی ذخیره و پردازش نشده و بر روی چندین رایانهی گوناگون ذخیره و نگهداری میشود. به سرورهایی که مسئول نگهداری و حفظ این دادهها هستند، نود (Node) یا گره گفته میشود.
از طرفی، اصلیترین دلیل استفاده از دفاتر کل توزیعشده مثل بلاکچین، بالابردن سطح امنیت و اطمینان از عدم نابودی یا خرابی دادهها است. در حقیقت اگر اطلاعاتی که بر روی یکی از گرهها قرار دارند به دلایل مختلف خراب شوند و از بین بروند، بیشمار گره دیگر وجود دارند که این اطلاعات را بر روی خود ذخیره کردهاند.
اما در زمان استفاده از بلاکچین یا انواع دیگر دفاتر کل توزیعشده، یک موضوع بسیار حیاتی وجود دارد؛ درواقع زمانیکه قرار باشد دادهها مداوم بهروزرسانی گردند، این بهروزرسانی الزاماً باید بر روی تمامی گرهها یا سرورها انجام شود و برای انجام اینکار، از مکانیزم یا الگوریتمی بهنام «الگوریتم اجتماع» (Consensus Mechanism) بهکار برده میشود.
بهطور اساسی در حوزهی شبکهی بلاکچین و ارزهای رمزنگاریشده، الگوریتم اجماع اهمیت بسیار زیادی دارد. بهطوری که این مکانیزم، مهمترین نقش را در امنیت سیستمهای توزیعشده و شبکههای بلاکچین دارد. با توجه به این موارد، قصد داریم تا در این مطلب بهصورت جامع به مفهوم الگوریتم اجماع و انواع گوناگون آن بپردازیم. در ادامهی این مقاله پاسخ سوالات الگوریتم اجماع چیست؟ و چه ساختاری دارد؟ را دریافت میکنید.
فهرست مطالب
الگوریتم اجماع (Consensus Algorithms) چیست؟
الگوریتم اجماع (Consensus Algorithms) روشی است که از طریق آن، تمام افراد حاضر در شبکه بلاک چین به یک توافق مشترک در مورد وضعیت حال حاضر دفترکل توزیعشده میرسند. بنابراین، الگوریتمهای اجماع، اعتبار (Reliability) را در شبکهی بلاکچین و اعتماد را بین نودها یا همتایان ناشناس در محیط محاسباتی توزیعشده، ایجاد میکنند.
بهطور اساسی، پروتکل اجماع تضمین میکند هر بلاک جدید که به شبکهی بلاکچین افزوده میشود، تنها نسخهی واقعی است و توسط تمام گرهها یا نودها مورد تایید واقعشده است.
مکانیزم اجماع بلاکچین، اهداف خاصی نظیر حق مساوی هر نود، همکاری، دستیابی به توافق و حضور اجباری هر نود در فرآیند اجماع است. بدین ترتیب، الگوریتم اجماع در تلاش برای رسیدن به یک توافق مشترک است که توسط کل اعضای حاضر در شبکه، تایید شده باشد.
کاربردهای الگوریتم اجماع
فرآیند اجماع سه کاربرد مهم در شبکهی بلاکچین دارد:
- یکپارچهسازی اطلاعات روی سیستم اعضای شبکه
- مدیریت شبکه با انتخاب برخی از اعضاء بهعنوان رهبر
- بررسی و تصمیم گیرید در مورد صحت یک تراکنش و ذخیره روی دفتر کل توزیعشده
برای مثال، در یک شرکت اگر کارمندان بر سر یک موضوع نظرهای متفاوتی داشته باشند، مدیر شرکت تصمیمگیرندهی نهایی خواهد بود. با کمک الگوریتم اجماع، به توافق رسیدن بین نودها از طریق یک سیستم رایگیری صورت میگیرد. به این صورت که اگر یک کاربر تراکنشی (هر نوع دادهای را شامل میشود) را به شبکه ارسال کند، اطلاعات ارسال شده توسط همهی گرهها بررسی میشود. اگر با توجه به اطلاعات قبلی، تراکنش فرستاده شده صحت داشته باشد، گره یک تاییدیه مبنی بر صحت آن به شبکه ارسال میکند.
مجموعهای از تراکنشها یک بلاک را تشکیل میدهند. اگر بیشاز ۵۱% نودها، اضافه شدن این بلاک را به بلاکچین تایید کنند، نودها بلاک جدید را به سیستم خود اضافه میکنند و تراکنشهای داخل آن موفق و نهایی میشود.
معروفترین و اولین کاربرد بلاکچین، در بیت کوین است. در شبکهی بلاکچین بیت کوین، هر بلاک شامل اطلاعات تراکنش (فرستنده و گیرنده و مبلغ ارسالی)، هش بلاک قبیل و هش بلاک فعلی است. گرهها در شبکهی بیت کوین با استفاده از یک الگوریتم اجماع، تراکنشها را تایید و بلاکهای جدید را میسازند.
انوع الگوریتم اجماع
الگوریتم اجماع انواع مختلفی دارد. اما دو نوع که کاربرد بیشتری در بلاکچین دارند عبارتاند از:
در حال حاضر بیشتر ارزهای دیجیتال مانند بیت کوین و اتریوم از گواه اثبات کار (PoW) استفاده میکنند و بهدلیل اینکه این روش با افزایش سختی شبکه، مصرف انرژی را بالا میبرد، این شبکهها قصد دارند به سمت الگوریتمهای دیگر مانند گواه اثبات سهام (PoS) حرکت کنند.
برهمین اساس، اتریوم شبکهی خود را بر روی گواه اثبات سهام (PoS) آماده میکند. در ادامه به بررسی هر کدام از این الگوریتمها، مزایا و معایب آنها میپردازیم.
الگوریتم اثبات کار (Proof of Work) چیست؟
در الگوریتم اثبات کار، به فرآیند افزوده شدن بلاکها به بلاکچین، ماینینگ یا استخراج و به فردی که اینکار را انجام میدهند، ماینر یا استخراجکننده گفته میشود. رایانهای که برای استخراج استفاده میشود نیز نوعی گره یا نود (Node) نام دارد.
هر بلاک در شبکهی بلاکچین، یک شناسهی منحصر بهفرد به نام هش (Hash) دارد. هش، مجموعهای از اعداد تصادفی است. اگر اطلاعات بلاک تغییر کند، هش بلاک نیز تغییر میکند. هش هر بلاک، بخشی از هش بلاک قبلی را در خود دارد. برای اینکه ماینرها بتوانند بلاکی را به بلاکچین اضافه کنند، باید هش آن بلاک را پیدا کنند. برای اینکار باید مسائل و معماهای ریاضی را که توسط بلاکچین مطرح شده است، حل کنند تا به هش درست دستیابند.
عملیات هشینگ و یافتن جواب درست معما، برق زیادی مصرف میکند. انگیزهی ماینرها برای مصرف این انرژی و منابع سختافزاری، پاداشی است که توسط شبکه در قبال تایید معاملات دریافت میکنند. پاداش، ارز بومی شبکه است.
برای مثال، ماینرها در بلاکچین بیتکوین، به امید دریافت پاداش شبکه بهصورت بیتکوین، عملیات پرهزینه و سخت ماینینگ را انجام میدهند.
گفتی است در الگوریتم اثبات کار بیتکوین، هر چهار سال یکبار یا بهعبارتی پس از استخراج هر ۲۱۰ هزار بلاک، پاداش استخراج، نصف میشود. به این اتفاق، هاوینگ (Halving) گفته میشود. در حال حاضر پاداش استخراج ۶٫۲۵ واحد بیتکوین است.
برخی از رمزارزهای مشهور که از این الگوریتم استفاده میکنند، بیتکوین، لایتکوین و دوجکوین هستند.
مزایای الگوریتم اثبات کار
- عدم تمرکز
- مکانیزم پاداشدهی
- عدم نیاز به مجوز
- تجربه و سابقهی خوب و بسیار بالا
معایب اثبات کار
- اتلاف انرژی
- امکان حملهی ۵۱ درصدی
- سرعت پایین اضافه شدن بلاک به بلاکچین
- مقیاسپذیری پایین
- تشکیل استخرهای ماینینگ
الگوریتم اثبات سهام (Proof of Stake) چیست؟
مهمترین و بیشترین انتقادی که به الگوریتم اثبات کار میشود، مصرف انرژی در آن است. چرا که مقدار مصرف انرژی در الگوریتم اثبات کار بسیار زیاد است. بر اساس گزارشی از سایت بیبیسی، بیت کوین در حدود هفت گیگاوات برق، معادل ۰٫۲۱% برق جهان را مصرف میکند. این نیرو برابر با قدرتی است که هفت نیروگاه هستهای دانجنس (Dungeness) بهطور همزمان تولید میکنند.
در گزارشی نیز که از کوین تلگراف (Cointelegraph) منتشر شد، میزان برق مصرفی شبکهی بیت کوین معادل ۱۰ میلیون خانوار آمریکایی برآورد شده است. هدر رفت انرژی و مشکلات زیست محیطی مربوط به الگوریتم اثبات کار، زمینهی ساخت الگوریتم دیگری بهنام الگوریتم اثبات سهام (Proof of Stake) را فراهم کرد.
در فرآیند اثبات سهام، افراد عملیات استخراج انجام نمیدهند. ماینری وجود ندارد و بهجای آن، اعتبار سنج (Validator) فرآیند افزودن بلاک به بلاکچین را انجام میدهد. در اثبات سهام، معادلهای برای حل شدن وجود ندارد و نیازی به تجهیزات گران و پرمصرف ماینینگ نیست. بههمین دلیل، اثبات سهام بسیار ارزانتر از اثبات کار است. شاید بپرسید که بلاکها چگونه اضافه میشوند؟
در فرآیند اثبات سهام، همانند اثبات کار، اعضای شبکه اطلاعات را تایید و مجوز افزودن شدن روی بلاکچین را صادر میکنند. در الگوریتم اثبات کار، افراد هزینههای زیادی از جمله تجهیزات و برق مصرفی را برعهده میگیرند. آنها اینکار را به امید دریافت پاداش انجام میدهند. تنها زمانی بهآنها پاداش داده میشود که اطلاعات درست را تایید کنند. در صورت تقلب، نتیجه به ضرر ماینرها خواهد بود.
اما در اثبات سهام، خبری از هزینههای ماینینگ نیست. اما چه تضمینی وجود دارد که افراد برای تایید اطلاعات درست، تلاش کنند و این موضوع برایشان مهم باشد؟
در اثبات سهام، افراد خرابکار و کلاهبردار، جریمه یا بهاصطلاح اِسلَش (Slash) میشوند. یعنی اگر فردی سعی کند تقلب یا بلاک نادرستی را تایید کند، تمام داراییاش صفر میشود.
فرآیند شرکت در اثبات سهام
در فرآیند اثبات سهام، اعضای شبکه در ابتدا باید ارز بومی شبکه را تهیه کنند. در مرحلهی بعد، طی یک قرارداد آن را به شبکه اختصاص (Stake) دهند؛ یا بهعبارتی، سهامگذاری (Stakeing) کنند. در اثبات سهام، پاداش استخراج وجود ندارد و اعضاء براساس مقدار ارزی که استیک کردهاند، پاداش دریافت میکنند.
مزایای الگوریتم اثبات سهام
- تراکنشهای سریعتر
- دریافت پاداش و بهره با استفاده از فرآیند استیکینگ
- احتمال بسیار پایین حملات ۵۱ درصدی
- سازگار با محیط زیست و مصرف کم انرژی برق
- مقیاس پذیری بالا
معایب اثبات سهام
- بهنسبت روشهای دیگر، کمتر آزمایش شده و تجربهی پایینی دارد.
- افزایش قدرت ثروتمندان و سهامداران عمده
- نیاز به ارز برای استیکینگ و قیمت بهنسبت بالای ارز
گفتار پایانی
در این مطلب، در مورد الگوریتم ثبت دادهها در بلاکچین، یعنی الگوریتم اجماع را صحبت کردیم. با مهمترین الگوریتمهای اجماع، یعنی اثبات سهام و اثبات کار آشنا شدیم و به بررسی مزایا و معایب هرکدام پرداختیم. دریافتیم که الگوریتم اثبات کار که در شبکهی بیتکوین بهکار برده میشود، به دلیل سختافزارهای مورد نیاز و مصرف انرژی بالا، گران است اما در طرف مقابل، الگوریتم اجماع اثبات سهام، هزینهی کمتری را به اعضا تحمیل میکند.
اما الگوریتمهای دیگری نیز وجود دارند که برخی از آنها، ترکیبی از دو الگوریتم اثبات سهام و اثبات کار و برخی دیگر، بهطور کامل متفاوت هستند.
تعدادی از این الگوریتمها، موارد زیر هستند:
- گواه اثبات سوزاندن (Proof of Burn)
- گواه اثبات ظرفیت (Proof of Capacity)
- گواه اثبات زمان سپری شده (Proof of Elapsed Time)
- گواه اثبات فعالیت (Proof of Activity)
- گواه اثبات قدرت (Proof of Authority)
- گواه اثبات سهام اعطایی (Delegated Proof of Stake)
- تحملپذیری خطای بیزانس (Byzantine Fault Tolerance)
- گواه اثبات اهمیت (Proof of Importance)
- گراف جهتدار غیر مدور (Direct Acyclic Graphs)
نظر شما در مورد الگوریتم اجماع چیست؟ به نظر شما کدام یک از این الگوریتمها، عملکرد بهتری دارند؟
نظرات خود را با ما در قسمت دیدگاهها به اشتراک بگذارید.
در فرآیند اثبات سهام، اعضای شبکه در ابتدا باید ارز بومی شبکه را تهیه کنند. در مرحلهی بعد، طی یک قرارداد آن را به شبکه اختصاص (Stack) دهند؛ یا بهعبارتی، سهامگذاری (Stacking) کنند. در اثبات سهام، پاداش استخراج وجود ندارد و اعضاء براساس مقدار ارزی که استیک کردهاند، کارمزد دریافت میکنند.
Stack >> stake
Stacking >> staking
کارمزد >> پاداش
لطفا اصلاح شود.
“بههمین دلیل، اثبات سهام بسیار پایینتر از اثبات کار است. ”
بههمین دلیل، اثبات سهام بسیار “ارزان تر” از مکانیزم اثبات کار است.
لطفا اصلاح شود.
Stake نه Stack
ممنون علی عزیز، اصلاح شد.