الگوریتم اجماع تاب آور خطای بیزانس چیست؟
2

الگوریتم اجماع تاب آور خطای بیزانس چیست؟

بازدید : 1111

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

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

  • الگوریتم های مبتنی بر اثبات
  • الگوریتم های مبتنی بر تحملتاب آورخطای بیزانس مانند BPFT ، Ripple، Tendermind

الگوریتم‌های مبتنی بر اثبات

در الگوریتم های مبتنی بر اثبات، ماینرها یا استخراج کنندگان باید ثابت کنند که آنها می‌توانند یک بلاک جدید ایجاد کنند. اثبات باید توسط گره‌های دیگر قابل تأیید باشد. برخی از الگوریتم های مبتنی بر اثبات شامل 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) حاصل شده است.

پیام رسانی بین لیدر و نودهای دیگر در الگوریتم BPFT
پیام رسانی بین لیدر و نودهای دیگر در الگوریتم BPFT

 الگوریتم تحملتاب آورخطای بیزانس مطابق مراحل زیر  با توجه به شکل عمل می کند

  • کلاینت C درخواستی را به لیدر(شماره صفر) ارسال می کند تا عملیاتی را فراخوانی کند. با این کار یک پروتکل سه مرحله ای شامل pre-prepare ، prepare و commit شروع می شود.
  • در مرحله قبل از آماده سازی(pre-prepare) ، نود رهبر درخواست را به نود های دیگر می فرستد.
  • در مرحله آماده سازی(prepare) ، نودهای پشتیبان تقاضا را اجرا می کنند و سپس پاسخ را به یکدیگر و لیدر ارائه می دهند.
  • پس از مرحله آماده سازی،  گره ها پیام commit را برای سایر گره ها ارسال می کنند. اگر گره ها بیش از دو سوم پیام تایید دریافت کنند ، درخواست مشتری را انجام می دهند و پاسخ را برای مشتری ارسال می کنند.

تصویری از این فرآیند در شکل بالا مشاهده می شود که گره 3 گره معیوب است.

این مدل فقط با گروه کوچکی از گره ها به طور موثر عمل می کند زیرا گره ها به طور مداوم در ارتباط هستند ، بنابراین یک الگوریتم اجماعی است که برای سیستم های بلاکچین مجاز مناسب است.

الگوریتم توافق نامه بیزانس فدرال (Federated Byzantine Agreement)

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

Delegated Byzantine Fault Tolerance

DBFT نسخه بهبود یافته PBFT است و برای سیستم های بلاکچین عمومی مناسب است. DBFT برای بلاکچین های عمومی که دارای گره های زیادی هستند ارجحیت دارد  چراکه از مقایس پذیری بالایی برخوردار است.

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

مدل‌های اعتماد بین گره‌ها

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

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

در الگوریتم های مبتنی بر FBA، همه گره ها می توانند در روند اجماع شرکت کنند. هر گره لیست اعتبار سنجی مورد اعتماد خود را دارد. به این ترتیب همه گره ها کاملاً قادر به کنترل  اینکه به چه گره هایی  اعتماد دارند و چه گره هایی را قابل اعتماد نمی دانند، هستند. به جای اعتماد به همه گره ها در شبکه ای که توسط یک تنظیم کننده مرکزی به آنها دسترسی داده می شود، هر گره به طور جداگانه درمورد اینکه کدام گره ها مورد اعتماد هستند، تصمیم می گیرد.

الگوریتم اجماع جیست؟

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

 مساله ژنرال‌های بیزانس چیست؟

مساله ژنرال های بیزانس مشکلی در علوم رایانه است که دشواری رسیدن به اجماع در یک سیستم توزیع شده را توصیف می‌کند.

0
2
برای اینکه به فکت این مقاله کمک کنید روی دکمه زیر کلیک کنید و تا افراد بیشتری آن را دنبال کنند
اشتراک در
اطلاع از

2 نظرات
بازخورد (Feedback) های اینلاین
مشاهده همه نظرات
فرشته
2 سال ago

گره ها پیام را براساس چه معیاری تأیید می کنند؟

محل تبلیغ
محاسبه‌گر ارزهای دیجیتال
ارز معادل
تومان

محاسبه با مبلغ تتر : تومان

2
0
نظر خود را بنویسید !x