آموزش ارز دیجیتال

الگوریتم تحمل خطای بیزانس (BFT) چیست؟

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

آشنایی با الگوریتم تحمل خطا بیزانس

آشنایی با الگوریتم تحمل خطا بیزانس

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

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

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

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

بررسی مشکل با دو فرمانده چیست؟

بررسی مشکل با دو فرمانده چیست؟

این شماره که در سال 1975 منتشر شد و در سال 1978 نامگذاری شد، سناریویی را به تصویر می کشد که در آن دو فرمانده به یک دشمن مشترک حمله می کنند. فرمانده 1 رهبر و فرمانده 2 پیرو در نظر گرفته می شود. ارتش هر فرمانده به تنهایی برای شکست دادن موفقیت آمیز ارتش دشمن کافی نیست، بنابراین این فرماندهان باید به طور همزمان همکاری و حمله کنند. این سناریو ساده به نظر می رسد، اما یک مشکل وجود دارد:

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

حتی اگر اولین پیام ارسال شود، Commander 2 باید Commander 1 را از دریافت خود مطلع کند (این ویژگی در الگوریتم تحمل خطای بیزانسی به عنوان Acknowledgment یا ACK شناخته می شود، شبیه به دست دادن 3 مرحله ای در TCP)، بنابراین با ارسال مسنجر، دوباره همان سناریوی قبلی و دریافت پیام رسان قابل تکرار است. این به ACK های بی نهایت گسترش می یابد. به همین دلیل، فرماندهان نمی توانند به توافق برسند.

هیچ راهی برای تضمین شرط دوم و موافقت فرمانده دیگر در مورد زمان حمله وجود ندارد. این دو فرمانده همیشه در مورد موفقیت آخرین پیام خود نامطمئن خواهند بود. از آنجایی که احتمال از دست دادن یک پیام همیشه > 0 است، فرماندهان هرگز با اطمینان 100٪ موافقت نمی کنند.

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

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

مشکل فرماندهان بیزانس چیست؟

معرفی یک الگوریتم تحمل خطا بیزانسی

مسئله فرماندهان بیزانس که توسط لامپورت، شوستاک و پیز در سال 1982 به عنوان یک مسئله سه گانه منطقی مطرح شد، در واقع نسخه کلی تری از مسئله دو فرمانده با اندکی تغییر است. در اینجا پارادایم رهبر-رهبر جای ستوان-فرمانده را در مسئله دو فرمانده گرفته است.

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

بنابراین، الزامات زیر باید در نظر گرفته شود:

  • هر ستوان باید تصمیم بگیرد که حمله کند یا عقب نشینی کند (بله یا خیر).
  • وقتی تصمیمی گرفته می شود، نمی توان آن را تغییر داد.
  • همه ستوان ها باید در مورد یک تصمیم به توافق برسند و آن را به طور هماهنگ اجرا کنند.

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

اکنون سؤال سرداران بیزانسی دو فرض دارد:

IC1: همه ستوان های وفادار از همین دستور پیروی می کنند.

IC2: اگر فرمانده وفادار باشد، همه ستوان های وفادار به دستور او عمل خواهند کرد.

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

آشنایی با الگوریتم تحمل خطا بیزانس

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

الگوریتم تحمل خطا بیزانس (BFT) چیست؟

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

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

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

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

الگوریتم های اجماع بلاک چین و تحمل خطای بیزانسی

الگوریتم های اجماع بلاک چین و تحمل خطای بیزانسی

الگوریتم اجماع را می توان به عنوان مکانیزمی تعریف کرد که توسط آن شبکه بلاک چین به اجماع دست می یابد. رایج ترین انواع این الگوریتم ها اثبات کار و اثبات سهام هستند، اما مثالی از شبکه بیت کوین را در نظر بگیرید. اگرچه پروتکل بیت کوین قوانین اساسی سیستم را تجویز می کند، الگوریتم اجماع PoW چیزی است که تعیین می کند چگونه از این قوانین برای رسیدن به اجماع (مثلاً هنگام تأیید تراکنش ها) پیروی شود. اگرچه مفهوم اثبات کار در ارزهای رمزنگاری شده باقی ماند، اما ساتوشی ناکاموتو نسخه بهبود یافته ای از این مدل را توسعه داد که به بیت کوین اجازه می داد به عنوان یک سیستم BFT ساخته شود.

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

آخرین کلمه

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

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

نوشته های مشابه

دیدگاهتان را بنویسید

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

دکمه بازگشت به بالا