الگوریتم اجماع بلاکچین مکانیسمی است که بین کاربران یا کامپیوترهای محیط توزیعشده بلاکچین، هماهنگی ایجاد میکند. این مکانیسم نیاز دارد تا تمامی افراد حاضر در سیستم، در خصوص یک منبع حقیقی واحد توافق داشته باشند، حتی اگر برخی از این افراد در کار خود شکست خورده باشند. به زبان سادهتر، سیستم باید تابآوری خطا داشته باشد.
تابآوری خطا (Fault Tolerant) مشخصهای است که یک سامانه و شبکه را قادر میسازد با در صورت وجود یک اشکال از سوی یک یا چند شخص (یا چند سیستم)، شبکه بدون هیچ ایرادی به کار خود ادامه دهد.
در سیستم متمرکز، یک نهاد یا شخص منفرد قدرت کاملی را روی سیستم برعهده دارد. در بسیاری از موارد، این قدرت میتواند بدون دخالت یا مشورت دیگر اعضا، هر تغییری را که بخواهد روی سیستم اعمال کند. این شخص نیازی ندارد تا رضایت تعداد زیادی از اعضای سیستم را جلب کند تا بتواند تغییر مورد نظر خود را روی سیستم پیاده کند.
اما از طرف مقابل، داستان برای سیستمهای غیرمتمرکز (Decentralized) متفاوت است. در این نوع سیستمها تمامی اعضا یا بخش بزرگی از اعضای شبکه، باید برای یک تغییر به توافق برسند. یک دیتابیس غیرمتمرکز را تصور کنید که بین ده، صد یا حتی هزاران نفر توزیع شده باشد. چطور میتوان برای انجام یک تغییر یا یک تصمیمگیری، بین تمامی اعضا به توافق رسید؟
غلبه بر این چالش که در محیط آن همه غریبه هستند و اعضا به یکدگیر اعتماد ندارند، شاید یکی از مهمترین مسائلی بوده است که بلاک چین برای موفقیت باید با آن دست و پنجه نرم میکرد. برای حل این مسئله، مکانیسم الگوریتم اجماع بلاک چین ایجاد شد.
الگوریتم اجماع بلاک چین و ارزهای دیجیتال
در زمینه ارزهای دیجیتال، موجودی کاربران در دیتابیس بلاک چین ثبت میشود. ضروری است که هر شخص (یا صحیحتر این است که بگوییم هر گره) یک نسخه از دیتابیس بلاک چین را در اختیار داشته باشد. این ذات بلاک چین است. اگر گرههای زیادی یک نسخه از بلاک چین را در اختیار نداشته باشند، آنگاه شاهد اطلاعات متناقض خواهیم بود و نواقص و اشکالات زیادی برای شبکه به وجود خواهد آمد.
کلیدهای عمومی (Public Key) به این دلیل ایجاد شد که شخصی نتواند از کوینهای فرد دیگری استفاده کند. اما با این حال، برای اینکه افراد به شبکه اعتماد کنند، به یک منبع واحد حقیقی نیاز است که مشترکین شبکه به آن اتکا کنند و دارایی خود را به شبکه بسپارند.
ساتوشی ناکاموتو، خالق بیت کوین برای این مسئله سیستمی به نام گواه اثبات کار (Proof of Work) ایجاد کرد تا مشترکین شبکه را هماهنگسازی کند و الگوریتم اجماع بلاک چین شکل بگیرد. اما این مکانیسم چندین خصوصیت را باید به همراه داشته باشد.
ویژگیهای الگوریتم اجماع بلاک چین
اولین خصوصیتی که الگوریتم اجماع باید رعایت کند، این است که کاربرانی که میخواهند به شبکه یه بلاک اضافه کنند (که به این اشخاص اعتبارسنج گفته میشود) باید یک سهام برای خود در شبکه ایجاد کنند. این سهام به نوعی بهایی است که اعتبارسنجها برای کار در شبکه باید بپردازند. این بها، باعث میشود تا شخص اعتبارسنج دست به اعمال نادرست نزند. اگر این شخص تقلب کند، در نهایت تمامی سهام و دارایی خود را از دست میدهد. حال این سهام میتواند ارز دیجیتال، قدرت محاسباتی یا حتی اعتبار آن شخص در شبکه باشد.
اما چرا اصلا فردی باید دارایی خود را تحت خطر یک شبکه قرار دهد؟ خب این شبکه در نقطه مقابل پاداشی هم در نظر گرفته است. این پاداش معمولا ارز دیجیتال محلی یک شبکه است. مانند بلاک چین بیت کوین که اعتبارسنجها (یا ماینرها) با انجام گواه اثبات کار (استخراج)، بیت کوین دریافت میکنند. همچنین این افراد هزینههای جانبی نظیر اعتبارسنجی تراکنشها را هم دریافت میکنند.
اما الگوریتم اجماع نیاز به شفافیت هم دارد. شبکه باید این ویژگی را داشته باشد تا اگر فردی تقلب کرد، به سرعت شناسایی شود. بنابراین، شبکه به نوعی عمل میکند که ایجاد بلاکها، برای افراد هزینهبر باشد اما اعتبارسنجی هر یک از بلاکها برای دیگر اعضا ارزان تمام خواهد شد. این مسئله باعث میشود تا نه تنها یک اعتبارسنج هزینه زیادی برای ایجاد بلاکها بپردازد و به همین دلیل از تقلب دوری کند، بلکه همه اعضای یک شبکه، حتی اعضای عادی، قادر باشند رفتار و عملکرد اعتبارسنجهای شبکه را تحت نظر داشته باشند.
انواع مکانیسمهای الگوریتم اجماع
مکانیسم اجماع بلاک چین دارای انواع مختلفی است که هر کدام به شیوه متفاوتی اجرا میشوند و البته از ویژگیهای ذکر شده هم پیروی میکنند.
گواه اثبات کار
گواه اثبات کار (Proof of Work) را باید پدر الگوریتمهای اجماع دانست. این مکانیسم ابتدا در شبکه بیت کوین به کار رفت، اما در اصل مفهوم این کار مدتها بود که در صنایع مختلف استفاده میشد. در شیوه اثبات کار، اعتبارسنجها (که به عنوان ماینر شناخته میشوند) دادههایی را که قصد دارند به شبکه اضافه کنند، هش (Hash) میکنند تا راه حلی مشخص را ایجاد کنند.
هش یک رشته حروف و اعداد است که وقتی دادهها را از یک تابع هش اجرا میکنیم، ایجاد میشود. این رشته حروف و اعداد همیشه ثابت هستند، اما اگر حتی یک تغییر بسیار کوچک در اطلاعات ایجاد شود، این هش به کلی عوض میشود.
البته اگر به معادله به دست آمده نگاه کنید، قادر نخواهید بود اطلاعاتی را که در آن وجود دارد را بیان کنید. با استفاده از این معادله، میتوان درستی بلاکهای یک بلاک چین را مشخص کرد. در گواه اثبات کار، یک سری قوانین تنظیم میشوند تا مشخص کنند کدام بلاکها معتبر هستند. برای مثال، اگر بلاکهایی که هش آنها با ۰۰ شروع شوند، معتبر خواهند بود. تنها راهی که ماینرها یا اعتبارسنجها میتوانند معادلهای با این قوانین ایجاد کنند، این است که ورودیها را به صورت فراگیر (Brute Force) انجام دهند. با اصلاح یک پارامتر در دادهها، سعی میکنند خروجی متفاوتی دریافت کنند. این کار تا زمانی که هش مورد نظر به دست بیاید، انجام میشود.
بهایی که ماینرها در گواه اثبات کار باید بپردازند
البته این کار به کمک نرمافزار و سختافزارهای مخصوص صورت میگیرد. در بلاک چینهای بزرگ، قوانین و معادلات بسیار سخت هستند. ماینرها برای اینکه بتوانند از پس این معادلات بزرگ بربیایند و یک بلاک را اعتبارسنجی کنند، به سختافزارهای مخصوص هش که مدارهای مجتمع با کاربرد خاص (ASIC) شناخته میشوند، نیاز دارند.
همانطور که گفتیم، یک شخص نیاز به سهامگذاری در شبکه دارد تا بتواند به عنوان یک اعتبارسنج فعالیت کند و پاداش بگیرد. در خصوص ماینرها، بهایی که میپردازند، قدرت سختافزاری و هزینه برق است. سختافزارهای مخصوص ماینینگ (ASIC) فقط برای استخراج و اعتبارسنجی تولید شدهاند و هزینه بسیار بالایی دارند. ماینرها در صورت عملکرد درست برای ایجاد یک بلاک جدید در بلاک چین، پاداش میگیرند. اگر این افراد تقلب کنند، تمامی درآمدهای چندین و چند میلیونی خود را از دست میدهند.
برای آشنایی جامع گواه اثبات کار، شما را به مطالعه این مطلب در کوین نیک دعوت میکنیم:
این مطلب راهم مطالعه کنید: گواهی اثبات کار چیست
گواه اثبات سهام
گواه اثبات سهام (Proof of Stake) در همان روزهای ابتدایی بیت کوین به عنوان روشی جایگزین برای گواه اثبات کار پیشنهاد شد. در سیستم اثبات سهام، هیچ مفهومی از حضور ماینرها، سختافزارهای مخصوص و مصرف بسیار زیاد برق و انرژی وجود ندارد. در این سیستم، یک شخص فقط با یک کامپیوتر معمولی هم میتواند کار خود را انجام دهد.
البته نه فقط یک کامپیوتر، بلکه باید به هر حال یک بهایی بپردازید تا بتوانید به عنوان یک اعتبارسنج عمل کنید. در گواه سهام، نیازی به منابع خارجی (مانند سختافزار و برق) نیست. اما نیاز به یک منبع درونی است. این منبع درونی چیزی نیست جز ارز دیجیتال. برای تبدیل شدن به یک اعتبارسنج و دریافت پاداش، نیاز است تا حداقل مقدار مشخص شده ارز دیجیتال را درون شبکه واریز کنید یا به نوعی، سهامگذاری کنید.
در این مرحله شما سرمایه خود را درون یک کیف پول قفل میکنید که در سهامگذاری روی یک شبکه، قابل جابهجایی نیستند. در این شیوه، شما عموما با دیگر اعتبارسنجها به توافق میرسید که کدام تراکنشها وارد بلاک بعدی شوند. به زبان دیگر، شما روی یک بلاک شرط میبندید که انتخاب میشود یا نه. سپس این پروتکل است که یک بلاک را انتخاب میکند.
اگر بلاک شما انتخاب شد، نسبت به میزانی که سهام گذاری کردهاید، بخشی از هزینه تراکنشها را دریافت میکنید. هرچقدر که دارایی بیشتری را در شبکه قفل کرده باشید، پاداش بیشتری هم میگیرید. اما اگر با ایجاد تراکنشهای نامعتبر قصد تقلب داشته باشید، تمامی دارایی خود را میبازید و غیرقابل برگشت خواهند بود. به زبان ساده، عملکرد صحیح و صادقانه در یک الگوریتم اجماع بلاک چین سود بسیاری بیشتری نسبت به تقلب کردن دارد.
دیگر الگوریتم اجماع بلاک چین
شیوه گواه اثبات سهام، زمانی فقط در ارزهای دیجیتال کوچکتر مورد استفاده قرار میگرفت. اما حالا بلاک چینهای عظیم مانند اتریوم به این سیستم روی آوردهاند.
برای آگاهی بیشتر از شیوه گواه اثبات سهام و تفاوت آن با گواه اثبات کار، میتوانید مطلب اختصاصی کوین نیک را در این زمینه مطالعه کنید:
این مطلب راهم مطالعه کنید: اثبات کار در برابر اثبات سهام ؛ بهترین مکانیزم برای مقیاسپذیری بلاک چین کدام است؟
اما به غیر از این دو الگوریتم محبوب، روشهای دیگری هم هستند که هر کدام مزایا و معایب خاص خود را دارند که از جمله آنها میتوان به موارد زیر اشاره کرد:
- گواه اثبات کار معوق
- گواه اثبات سهام استیجاری
- گواه صلاحیت
- گواه اثبات سهام واگذاری شده
- گواه اثبات سهام و گواه اثبات کار دوگانه
جمع بندی
مکانیسمهایی که برای دستیابی به اجماع در بلاک چین استفاده میشوند، برای عملکرد سیستمهای توزیع شده بسیار حیاتی هستند. بسیاری بر این باور هستند که بزرگترین ابداع در بیت کوین، استفاده از گواه اثبات کار بوده است تا به کاربران اجازه دهد در خصوص مسائل مختلف به توافق برسند.
الگوریتمهای اجماع امروزه نه تنها برای سیستمهای پول دیجیتال، بلکه برای بسیاری از دیگر کاراییهای بلاک چین هم مورد استفاده قرار میگیرند. این الگوریتمها حالا بنیاد تکنولوژی بلاک چین هستند و عدم وجود آن، برابر است با عدم کارایی صحیح بلاک چین.
نظر شما در خصوص الگوریتمهای اجماع چیست؟ دیدگاه خود را با کوین نیک به اشتراک بگذارید.
منبع: Academy Binance