تورج اکبری | 2018.09.12

انواع الگوریتم اجماع در دنیای بلاک چین و ارز دیجیتال (consensus algorithm)

الگوریتم اجماع بلاک چین (consensus algorithm) در واقع یک الگوریتم برای هماهنگی بین کاربران در یک شرایط توزیع‌شده است که باید تضمین کند تمام عوامل سیستم بتوانند بر یک منبع حقیقت واحد به توافق برسند؛ حتی اگر برخی از اعضای شبکه دچار نقص شوند. گره‌های فردی ممکن است دچار شکست شوند، رفتار خراب‌کارانه بروز دهند و یا در کل ارتباطات در شبکه دچار مشکل شود. ازاین‌رو، سیستم باید دارای قدرت تحمل نقص (fault-tolerance) باشد.

در یک آرایش متمرکز، یک موجودیت واحد بر کل سیستم تسلط دارد. این موجودیت‌ها در بیشتر موارد همان‌طور که دلشان می‌خواهد تغییر ایجاد می‌کنند چون سیستم حکم‌رانی پیشرفته‌ای برای رسیدن به اجماع در میان تعداد زیادی متولی وجود ندارد.

اما در یک حالت غیرمتمرکز، ماجرا متفاوت است. حالا که با یک پایگاه داده توزیع‌شده مواجه هستیم، چگونه می‌توان درمورد ورود داده‌های جدید به توافق و اجماع رسید؟

فائق‌آمدن بر این چالش، در محیطی که کاربران به هم اعتمادی ندارند، مهم‌ترین اقدام در هموار ساختن مسیر توسعه فناوری بلاک چین بوده است. در این مقاله نگاهی به جایگاه مهم الگوریتم اجماع در عملکرد رمز ارزها و بلاک چین‌های مختلف خواهیم انداخت.

الگوریتم‌ اجماع در دنیای رمز ارزها

در اکوسیستم رمز ارزها، موجودی و وضعیت حساب کاربران در یک پایگاه داده مشترک به‌نام بلاک چین ثبت می‌شود. در واقع در بطن فناوری بلاک چین، خود بلاک چین قرار دارد که توسط گره‌های یک شبکه فردبه‌فرد ذخیره می‌شود. همه‌ی گره‌های شبکه باید یک نسخه یکسان از پایگاه داده را حفظ کنند. در غیراین‌صورت به احتمال زیاد به‌سرعت به اطلاعات ضد و نقیض می‌رسیم که در کل شبکه، رمز ارز را از انجام وظایف اصلی خود باز می‌دارد.

در یک بلاک چین، برای مثال بلاک چین بیت کوین یا اتریوم، رمزنگاریِ کلید عمومی تضمین می‌کند که کاربران به رمز ارزهای یکدیگر دسترسی ندارند. اما هنوز به یک منبع واحد از حقیقت نیاز است تا اعضای شبکه برای اطمینان از انجام تراکنش‌ها و وضعیت حساب‌ها به آن اتکا کنند. ساتوشی ناکاموتو، خالق بیت کوین، برای اجماع و هماهنگی اعضای شبکه، سیستم اثبات کار را طراحی کرد که با توجه به ویژگی‌های متمایزش به آن لقب «اجماع ناکاموتو» نیز داده‌اند. در این قسمت، ابتدا کمی درباره مکانیزم اثبات کار توضیح می‌دهیم و پس از آن به معرفی ویژگی‌های مرسوم انواع الگوریتم اجماع خواهیم پرداخت.

آن دسته از اعضای شبکه که در پی افزودن یک بلاک به زنجیره هستند، که آن‌ها را گره اعتبارسنج (validator) خطاب می‌کنیم، باید برای شبکه استیک (سهم) ارائه کنند. این استیک درواقع نوعی از ارزش است که گره‌ها باید به ودیعه بگذارند تا به رفتار خرابکارانه و نادرست ترغیب نشوند. آن‌ها اگر تقلب کنند، استیک خود را ازدست خواهند داد. این ارزش در بلاک چین‌های مختلف می‌تواند قدرت محاسباتی، دارایی رمز ارز و یا حتی شهرت باشد.

اما چرا گره‌های شبکه از به‌خطر انداختن منابع ارزشمند خود پرهیز نمی‌کنند؟ خب، در قواعد پروتکل‌ها، مکانیزم‌هایی برای پاداش درنظر گرفته شده که اغلب از رمز ارز بومی آن شبکه تشکیل شده و شامل کارمزد تراکنش‌ها یا توکن‌های به‌تازگی صادرشده و یا هردو آن‌هاست. این پاداش‌ها و ازطرفی ریسک هدررفتن استیک، تضمین می‌کنند که رفتار درست‌کارانه در یک شبکه فردبه‌فرد درمقایسه با رفتار خرابکارانه، سود بیشتری دارد.

آخرین چیزی که نیاز داریم شفافیت داده‌هاست. اعضای شبکه باید بتوانند تقلب‌ را شناسایی کنند. تولید بلاک برای آن‌ها هزینه‌بر است و از طرفی اعتبارسنجی و تأیید آن‌ها برای اعضای دیگر، بسیار ساده و کم‌هزینه. این یعنی گره‌های اعتبارسنج توسط گره‌های عادی شبکه مورد نظارت قرار می‌گیرند.

انواع الگوریتم اجماع در دنیای بلاک چین و ارز دیجیتال (consensus algorithm)

انواع الگوریتم اجماع ارز دیجیتال

الگوریتم اثبات کار (PoW)

الگوریتم اثبات کار، در بین تمام مکانیزم‌های اجماع، نقش پدرخوانده را بازی می‌کند. این الگوریتم برای نخستین‌بار در شبکه بیت کوین پیاده‌سازی شد، اگرچه مفهوم اصلی آن پیش‌تر نیز وجود داشت. در این مکانیزم اجماع گره‌های اعتبارسنج معروف به استخراج‌گران هستند که داده‌های موردنظر را برای اضافه‌شدن بلاک جدید به زنجیره، هش‌نگاری (hashing) می‌کنند. تا زمانی که یکی از استخراج‌گران معمای محاسباتی را حل کند و بلاک معتبر را برای اعتبارسنجی توسط گره‌های دیگر، انتشار دهد، فرآیند هش‌نگاری ادامه می‌یابد. درصورت تأیید گره‌های مشارکت‌کننده درطی یک فرآیند رأی‌گیری، پاداش بلاک به یابنده‌ی پاسخ معمای رمزنگاری تخصیص می‌یابد. در بلاک چین بیت کوین، این فرآیند رأی‌گیری ضمنی (implicit) است به این معنا که گره‌های دیگر تأیید خود را با آغاز تلاش برای ایجاد بلوک جدید اعلام می‌کنند.

اما هش چیست؟ مقدار هش یک رشته‌ی به‌ظاهر تصادفی از اعداد و ارقام است که از واردکردن داده‌ها به تابع هش (hash function) حاصل می‌شود. یک تابع هش ویژگی‌های متمایزی دارد؛ برای مثال قطعی‌ست به این معنا که داده‌های ورودی یکسان، همواره خروجی یکسانی دارند؛ یا دارای اثر بهمنی (avalanche effect) هستند، یعنی یک تغییر کوچک در داده ورودی، مقدار هش را به‌شدت تغییر می‌دهد به نحوی که با مقدار قبلی هیچ ارتباطی نداشته باشد.

با نگاه‌کردن به خروجی تابع هش، به احتمال بسیار بسیار قوی قادر نیستید اطلاعات ورودی این تابع را به‌دست آورید. ازطرفی چون محاسبه مقدار هش برای ورودی مشخص، بسیار سریع و آسان است، توابع هش برای اثبات دانستن اطلاعاتی مشخص پیش از یک زمان مشخص، بسیار مفید هستند. مقدار هش را به فردی می‌دهید و زمانی که پس از مدتی داده‌های ورودی را آشکار کردید، آن فرد می‌تواند مقدار هش را با آن‌ها حساب کرده و از صحت و درستی مقدار خروجی شما اطمینان حاصل کند.

پیشنهاد مطالعه: گواه اثبات کار یا Proof of Work چیست؟ (PoW)

در یک مکانیزم اثبات کار، پروتکل، شرایطی را مشخص می‌کند که معتبربودن بلاک را نشان می‌دهد. برای مثال، تنها بلاکی را معتبر می‌داند که مقدارخروجی هش آن بلاک با 00 آغاز شود. تنها راه پیش روی استخراج‌گر برای ایجاد یک بلوکِ سازگار با این شرط، این است که از توان محاسباتی فوق‌العاده‌ای بهره‌مند شود. استخراج‌گران به‌صورت پیوسته تغییرات کوچکی را در داده‌های ورودی اعمال می‌کنند، تازمانی‌که مقدار هش موردهدف حاصل شود.

در بسیاری از بلاک چین‌ها، در رقابت با سایر استخراج‌گران باید زیرساخت استخراج خود را با دستگاه‌های پیشرفته محاسباتی مثل دستگاه ASIC تجهیز کنید تا بتوانید یک بلوک معتبر را به بلاک چین اضافه کنید. با افزایش روزافزون رقابت، استخراج‌گرانِ فردی برای داشتن یک جریان درآمد پایدار باید به استخرهای استخراج (mining pool) ملحق شوند.

زمانی که در یک شبکه با مکانیزم اجماع اثبات کار به استخراج می‌پردازید، استیک شما همان هزینه ثابت دستگاه‌ها و هزینه‌های متغیر مثل برق مصرفی و تعمیر و نگهداری آن‌هاست. دستگاه‌های ASIC تک‌منظوره ساخته شده‌اند و غیر از استخراج رمز ارز هیچ کاربرد دیگری ندارند. تنها راه برای بازگرداندن سرمایه‌گذاری اولیه، اجرای یک گره استخراج‌گر در شبکه است.

این شبکه است که اعتبار بلاک جدید را تأیید می‌کند. کافی‌ست گره‌های دیگر، داده‌های ورودی شما را برای یک مرتبه هش‌نگاری کنند تا درصورت معتبربودن خروجی، این داده‌ها مورد پذیرش قرار گیرند و پاداش خود را دریافت کنید. در غیراین‌صورت، شبکه داده‌ها را تأیید نمی‌کند و به احتمال زیاد فقط سرمایه و انرژی را تلف کرده‌اید.

الگوریتم اثبات سهام (PoS)

مکانیزم اجماع اثبات سهام در اوایل ظهور بیت کوین به‌عنوان یک جایگزین برای الگوریتم اثبات کار مطرح شد. در یک سیستم توزیع‌شده با مکانیزم اجماع اثبات سهام، مفهومی برای واژگان استخراج‌گر، سخت‌افزار تخصصی و یا مصرف شدید انرژی وجود ندارد. به لحاظ سخت‌افزاری، تنها به یک کامپیوتر ساده نیاز دارید.

بله، درست است که در شبکه اثبات سهام نیازی به آوردن منابع خارجی، مثل برق و سخت‌افزار، وجود ندارد، اما هنوز هم باید یک چیزی وسط بگذارید! به عنوان استیک، گره‌های اعتبارسنج باید دارایی رمز ارز خود را به ودیعه بگذارند. باوجود تفاوت در قواعد پروتکل‌های مختلف، به‌صورت معمول، یک سطح حداقلی دارایی برای صلاحیت استیک‌کردن درنظر گرفته شده است.

پیشنهاد مطالعه: گواه اثبات سهام یا proof of stake چیست؟ (PoS)

برای این‌کار باید دارایی خود را در یک کیف‌پول قفل کنید. این یعنی دارایی شما مادامی که در سپرده استیک قرار دارد قابل استفاده نیست. ازآنجاکه این یک مکانیزم اجماع است، شما باید با گره‌های دیگر بر سر داده‌های بلاک بعدی زنجیره به توافق برسید. به نوعی با استیک خود بر سر بلاک بعدی شرط‌بندی می‌کنید و پروتکل با استفاده از الگوریتم خود، برای مثال تابع تصادفی قابل تأیید (VRF)، یک بلاک را انتخاب می‌کند.

اگر بلاک انتخاب‌شده توسط پروتکل، همان بلاکی باشد که روی آن شرط بسته‌اید، متناسب با سهم استیک خود، پاداش را از محل کارمزد تراکنش‌ها دریافت خواهید کرد. هرچه دارایی استیک‌شده شما بیشتر باشد، پاداش بیشتری خواهید گرفت. البته درصورتی‌که با ارائه تراکنش‌های نامعتبر، قصد تقلب و خرابکاری را در شبکه داشته باشید، پروتکل شما را با کاهش دارایی استیک، جریمه می‌کند. ازهمین‌رو، در اینجا مکانیزم مشابهی با الگوریتم اثبات کار مشاهده می‌کنیم؛ رفتار درستکارانه در شبکه درمقایسه با رفتار خرابکارانه، سودآوری بیشتری دارد.

به‌صورت معمول، کوین‌های به‌تازگی صادرشده بخشی از پاداش گره‌های اعتبارسنج نیستند. رمز ارز‌ بومی بلاک چین باید به طریقی دیگر عرضه شوند؛ یا از طریق عرضه‌های اولیه مثل (ICO، IEO و IDO) و یا اینکه پروژه از قبل با مکانیزم اثبات کار پیاده‌سازی شده باشد و سپس به مکانیزم اثبات کار منتقل شود.

تاکنون، مکانیزم اثبات سهام محض، فقط در شبکه‌ رمز ارزهای کوچک‌تر مورد استفاده قرار گرفته است. به همین دلیل نمی‌توان مطمئن بود که این الگوریتم اجماع بتواند به‌عنوان یک جایگزین واقعی برای الگوریتم اجماع اثبات کار عمل کند. درحالی‌که به لحاظ نظری بدون نقص به‌نظر می‌رسد، اما نتیجه درعمل متفاوت خواهد بود.

زمانی که الگوریتم اثبات سهام در یک شبکه با مقیاس وسیع به لحاظ ارزش، راه‌اندازی شود، سیستم به یک میدان ایده‌آل برای نظریه بازی‌ها و انگیزه‌های مالی تبدیل می‌شود. هرکسی با داشتن تخصص در هک‌کردن یک سیستم اثبات سهام، اگر بتواند مبلغ قابل‌توجهی به‌دست آورد، این‌کار را خواهد کرد. برای همین است که پیاده‌سازی مکانیزم اثبات سهام بر روی یک شبکه اصلی و درحال فعالیت، تنها و آخرین راه برای حصول اطمینان از عملکرد و پایداری آن الگوریتم است.

پیشنهاد مطالعه: مقایسه الگوریتم اثبات کار و اثبات سهام : کدامیک بهتر است؟

انواع دیگر الگوریتم اجماع

الگوریتم‌های اثبات کار و اثبات سهام از بحث‌برانگیزترین‌ها در مکانیزم‌های اجماع بوده‌اند. به‌هرحال یک طیف گسترده از انواع مکانیزم اجماع وجود دارد که هر یک از آن‌ها مزایا و معایب مخصوص به خود را دارند. برای اطلاعات بیشتر درباره این الگوریتم‌ها پیشنهاد می‌‌شود که از این لینک‌ها استفاده کنید.

کلام آخر

الگوریتم‌های اجماع برای عملکرد سیستم‌های توزیع‌شده نقش حیاتی دارند. آن‌ها عملکرد بلاک چین را در زمینه قطعیت تراکنش‌ها، مقیاس‌پذیری، توان عملیاتی شبکه و امنیت آن در برابر حمله‌های مختلف مشخص می‌کنند. در واقع نقش مکانیزم اجماع در به حقیقت پیوستن ویژگی‌های منحصربه‌فرد فناوری بلاک چین، مثل عدم‌نیاز به واسطه‌ مورداعتماد، غیرقابل تغییر بودن، یک‌پارچگی داده‌ها و شفافیت، غیر قابل انکار است.

بسیاری باور دارند که مهم‌ترین نوآوری بیت کوین که یک سیستم پول دیجیتال رمزنگاری‌شده در یک شبکه فردبه‌فرد است، استفاده از الگوریتم اثبات کار برای رسیدن به اجماع بر سر یک پایگاه داده مشترک و غیرمتمرکز است. همین نوآوری موجب شد که بیت کوین بتواند برای نخستین‌بار راهی را برای ایجاد هماهنگی در شبکه‌های فردبه‌فرد، بدون نیاز به طرف‌های سوم مورد اعتماد، در میدان عمل ارائه دهد.

الگوریتم اجماع همان‌طور که در سیستم‌های پول دیجیتال و همچنین در بلاک چین‌هایی که به برنامه‌نویسان قابلیت اجرای برنامه‌ها را در یک سیستم توزیع‌شده می‌دهند، نقش محوری دارد. درحال‌حاضر این الگوریتم‌ها یکی از ستون‌های اصلی فناوری بلاک چین بوده و برای حیات بلندمدت شبکه‌های مختلف ضروری هستند.

از میان انواع الگوریتم اجماع بلاک چین، مکانیزم اثبات کار، پیشنهاد غالب است. هنوز یک جایگزین امن‌تر با قابلیت ‌اعتماد بیشتر برای آن وجود ندارد. با این وجود، مشاهده می‌شود که حجم وسیعی از تحقیق و توسعه برای جایگزینی الگوریتم اثبات کار درحال انجام است که این نوید را می‌دهد در آینده‌ای نزدیک شاهد ظهور انواع جدیدی از مکانیزم اجماع باشیم.

در صورتی که PDF معرفی کامل تمام الگوریتم‌های اجماع بلاک چین را مشاهده نمی‌کنید، صفحه را Refresh کرده و کمی صبر کنید.

این مقاله صرفا برای اهداف آموزشی ارائه شده است و نباید به‌عنوان مشاورهٔ تجاری و سرمایه‌گذاری از طرف کوین ایران و نویسندگانش قلمداد شود.

منبع