برای ایجاد اعتماد در شبکه بلاکچین و تایید اعتبار تراکنشها، گره ها باید بر سر اطلاعات به توافق برسند و راه حل رسیدن به این توافق در بلاک چین الگوریتم اجماع است. در این مقاله فکت کوینز به بررسی یک الگوریتم اجماع معروف به الگوریتم اجماع تحمل خطای بیزانس می پردازیم.
انواع الگوریتمهای اجماع
- الگوریتم های مبتنی بر اثبات
- الگوریتم های مبتنی بر تحملتاب آورخطای بیزانس مانند BPFT ، Ripple، Tendermind
الگوریتمهای مبتنی بر گواهی
در الگوریتم های مبتنی بر گواهی (Proof)، ماینرها یا استخراج کنندگان باید ثابت کنند که آنها میتوانند یک بلاک جدید ایجاد کنند. گواهی باید توسط گرههای دیگر قابل تأیید باشد. برخی از الگوریتمهای مبتنی بر گواهی شامل POW، POS Dpos،POA POE هستند.
الگوریتم های مبتنی بر تحمل خطای بیزانس
از الگوریتم های تحمل خطای بیزانس میتوان به BPFT و Tendermind اشاره کرد.
مسئله ژنرالهای بیزانس مشکلی در علوم رایانه است که دشواری رسیدن چندین گره (رایانه) به اجماع در یک سیستم توزیع شده را توصیف میکند.
مساله ژنرالهای بیزانس چیست؟
چندین ژنرال یک شهر را محاصره کردهاند. هر ژنرال ارتش خاص خود را دارد. چالش این است که ژنرالها باید در مورد چگونگی حمله به شهر به اتفاق نظر برسند. اگر آنها به توافق نرسند، حمله آنها ناموفق خواهد بود. ژنرال ها باید با پیام ارتباط برقرار کنند، با این حال، این پیامها قابل اعتماد نیستند زیرا ممکن است پیام به ژنرال دیگر نرسد یا پیام جعل شود.
بنابراین دستیابی به توافق از این طریق غیرممکن است. در شبکههای بلاکچینی هم مشکل مشابه رخ میدهد. که گرهها با یکدیگر ارتباط برقرار میکنند و باید به اجماع برسند. ممکن است به گرهها اعتماد نکنید یا شبکه معیوب باشد. به همین دلیل، بلاک چینها از الگوریتمهای اجماع برای غلبه بر این چالش استفاده میکنند.
روش های حل مساله ژنرالهای بیزانس
- Practical Byzantine Fault Tolerance (PBFT)
- Federated Byzantine Agreement (FBA)
- Delegated Byzantine Fault Tolerance (DBFT)
الگوریتم تحمل خطای بیزانس
الگوریتم تحمل خطای بیزانس عملی (PBFT) یکی از اولین راه حل ها برای مسئله ژنرال های بیزانس بود. مدل PBFT با ارائه یک مکانیزم تقسیم کار عمل می کند. این الگوریتم برای کارکرد در سیستمهای ناهمگام طراحی شده است.
الگوریتم تحمل خطای بیزانس تحت فرضیات زیر کار میکند
- سیستم توزیع شده ناهمگام است: شبکه ممکن است در ارسال پیام، تأخیر در آنها و تکثیر آنها شکست بخورد.
- گرههای معیوبی ممکن است خودسرانه عمل کنند.
- مهاجم قوی میتواند گرههای معیوب را با یکدیگر هماهنگ کند. ارتباط را به تأخیر بیندازد یا گرههای سالم را به تأخیر بیندازد تا بیشترین آسیب را به شبکه وارد کند.
گرههای موجود در یک شبکه PBFT، که Replica یا کپی نامیده میشوند، از یک گره اصلی تشکیل میشوند که لیدر (Leader) نامیده میشوند و بقیه گرهها پشتیبان هستند. همه گرهها به طور مداوم با یکدیگر ارتباط برقرار میکنند و تلاش میکنند تا به یک وضعیت اجماع برسند. برای انتشار پیام، هر گره باید با استفاده از امضاهای کلید عمومی ثابت کند که پیام از یک گره خاص دریافت شده و یکپارچگی پیام با استفاده از کدهای تأیید پیام (MAC) حاصل شده است.
الگوریتم تحمل خطای بیزانس مطابق مراحل زیر عمل می کند
- کلاینت C درخواستی را به لیدر (شماره صفر) ارسال میکند تا عملیاتی را فراخوانی کند. با این کار یک پروتکل سه مرحلهای شامل pre-prepare ، prepare و commit شروع میشود.
- در مرحله قبل از آماده سازی (pre-prepare) ، نود رهبر درخواست را به نودهای دیگر میفرستد.
- در مرحله آماده سازی(prepare) ، نودهای پشتیبان تقاضا را اجرا می کنند و سپس پاسخ را به یکدیگر و لیدر ارائه می دهند.
- پس از مرحله آماده سازی، گره ها پیام commit را برای سایر گره ها ارسال می کنند. اگر گره ها بیش از دو سوم پیام تایید دریافت کنند، درخواست کلاینت را تکمیل میکنند و پاسخ را برای مشتری ارسال میکنند.
تصویری از این فرآیند در شکل بالا مشاهده میشود که در آن سه گره معیوب است.
این مدل فقط با گروه کوچکی از گرهها به طور موثر عمل میکند، زیرا گره ها به طور مداوم در ارتباط هستند، بنابراین این یک الگوریتم اجماع است که برای سیستم های بلاکچین عمومی (بدون نیاز به مجوز) مناسب است.
الگوریتم توافق نامه بیزانس فدرال (Federated Byzantine Agreement)
FBA برای سیستمهای غیرمتمرکز طراحی شده است و هیچ مرجع واحدی تصمیم نمیگیرد که چه گرههایی مجاز به پیوستن به فرآیند اجماع هستند. بنابراین استفاده از FBA در هر دو شبکه بلاکچین عمومی و خصوصی امکان پذیر است، این مناسب ترین روش برای سیستمهایی است که به اعتبارسنجهای زیادی نیاز دارند.
Delegated Byzantine Fault Tolerance
DBFT نسخه بهبود یافته PBFT است و برای سیستم های بلاکچین عمومی مناسب است، چراکه از مقایس پذیری بالایی برخوردار است.
الگوریتم تحمل خطای بیزانس (DBFT) یک الگوریتم اجماع است که در بلاک چین NEO استفاده میشود. الگوریتم DBFT امکان رسیدن به اجماع از طریق رأی دادن به یک نماینده را فراهم میکند. در اکوسیستم NEO، این نمایندگان به عنوان دفتردار نامگذاری میشوند. از آنجا که در DBFT وکالت به یک نماینده داده میشود و اجماع بین تعداد کمی از نمایندگان صورت میگیرد، این الگوریتم در مقایسه با PBFT کارآمدتر عمل میکند.
مدلهای اعتماد بین گرهها
قبل از اینکه افراد و سازمانها از شبکه بلاکچین استفاده کنند، باید به توانایی شبکه در حفظ و تأیید تراکنشهای معتبر اعتماد پیدا کنند. در PBFT، همه گره هایی که در فرآیند اعتبارسنجی شبکه شرکت میکنند باید با تمام گره های دیگر شبکه ارتباط برقرار کنند.
بنابراین، گره ها باید اعتماد داشته باشند که سایر گرههای موجود در بلاکچین مخرب عمل نمیکنند، در واقع اعتماد آنها به سازمانی است که دسترسی به شبکه را کنترل میکند. در DBFT، گرهها رای میدهند که کدام گره های اعتبارسنج را شایسته میدانند. به این ترتیب، گره ها کنترل بیشتری بر گره های معتمد دارند.
در الگوریتمهای مبتنی بر FBA، همه گرهها میتوانند در روند اجماع مشارکت کنند. هر گره لیست اعتبار سنجی مورد اعتماد خود را دارد. به این ترتیب همه گره ها کاملاً قادر به کنترل اینکه به چه گرههایی اعتماد دارند و چه گرههایی را قابل اعتماد نمیدانند، هستند. به جای اعتماد به همه گرهها در شبکهای که توسط یک نهاد مرکزی به آنها دسترسی داده می شود، هر گره به طور جداگانه درمورد اینکه کدام گره ها مورد اعتماد هستند، تصمیم میگیرد.
نظر شما در مورد الگوریتم تحمل خطای بیزانس چیست؟ نظر خود را با ما به اشتراک بگذارید.
برای ایجاد اعتماد در شبکه بلاکچین به صورت غیر متمرکز و تایید اعتبار اطلاعات، گره ها یا رایانهها باید بر سر تراکنشها به توافق برسند و راه حل رسیدن به این توافق در بلاک چین الگوریتم اجماع است.
مساله ژنرال های بیزانس مشکلی در علوم رایانه است که دشواری رسیدن به اجماع در یک سیستم توزیع شده را توصیف میکند.
گره ها پیام را براساس چه معیاری تأیید می کنند؟
سلام و درود
دوست عزیز
بلاکچین بر اساس علم ریاضی و رمز نگاری بنا شده است و نودها برای تایید گره ها بر اساس الگوریتم های اجماع به توافق می رسند.
برای کسب اطلاعات بیشتر مقاله های ما را دنبال کنید.
موفق باشید