روش اجماع (۱) : الگوریتم عملی تحمل خطای بیزانس

یکی از روش‌های اصلی اجماع[۱] در سیستم‌های بلاک چین الگوریتم عملی تحمل خطای بیزانس[۲] است. هایپرلجر[۳]، استلار[۴] و ریپل[۵] نمونه بلاک چین هایی هستند که با این الگوریتم کار می کنند. این الگوریتم به عنوان راه حلی برای مساله ژنرال‌های بیزانسی[۶] مطرح شده بود.

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

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

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

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

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

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

Source: Consensus in Blockchain Systems by Chris Hammerschmidt (2017)

[۱] Consensus

[۲] Practical Byzantine Fault Tolerance (PBFT)

[۳] Hyperledger

[۴] Stellar

[۵] Ripple

[۶] Byzantine Generals Problem

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *