یک خطای بیزانسی شرایط یک سیستم محاسباتی، به ویژه سیستم های محاسباتی توزیع شده است. این حالت زمانی رخ می دهد که یک یا چند جزء از کار بیفتند و اطلاعات دقیقی در مورد اینکه آیا یک جزء از کار افتاده است یا اطلاعات سیستم صحیح است وجود ندارد.
در یک خطای بیزانسی ، یک مؤلفه مانند یک سرور ممکن است به طور متناقض مانند خرابی و کار در سیستم های تشخیص عیب ظاهر شود. این به این دلیل رخ می دهد که سیستم علائم متفاوتی را در مقایسه با مشاهده کنندگان مختلف نشان می دهد. در این مرحله، تصمیم گیری برای اعلام شکست آن و حذف آن از شبکه برای سایر مؤلفه ها دشوار است. خوب، برای این شما باید به اجماع برسید که کدام جزء در وهله اول شکست خورده است.
شکست بیزانس به عنوان یک مشکل اجماع
این اصطلاح نام خود را از “مشکل ژنرال های بیزانس” شناخته شده گرفته است. این برای توصیف شرایطی ایجاد شد که در آن بازیگران باید در مورد استراتژی یا رضایت برای جلوگیری از شکست فاجعهبار سیستم به توافق برسند. و همچنین باید به این هدف برسند و بدانند که در بین آنها ممکن است بازیگران غیرقابل اعتمادی وجود داشته باشند.
مسئله ژنرال های بیزانس توسط رابرت شوستاک در سال ۱۹۷۸ در چارچوب پروژه ای از آزمایشگاه علوم کامپیوتر SRI International توضیح داده شد. این پروژه SIFT نام داشت و از حمایت همان آژانس هوافضا ناسا برخوردار بود. مورد توصیف شده او در اصل یک مشکل ارتباطی توزیع شده بین رایانه ها را نشان می دهد. در آن، کامپیوترهای متمرکز بر اهداف مختلف باید بتوانند به صورت جفتی ارتباط برقرار کنند و بتوانند به یک اجماع برسند. و حتی اگر برخی از آنها آسیب دیده باشند باید بتوانند این کار را انجام دهند. برای درک بهتر، بیایید رویکرد او را ببینیم:
مشکل ژنرال های بیزانسی (PGB)
- چندین ژنرال از یک طرف و ارتش آنها در انتهای مختلف یک شهر قرار دارند و قصد دارند آن را محاصره کنند.
- برای موفقیت، آنها باید به طور هماهنگ به شهر حمله کنند تا دفاع را شکست دهند یا به صورت هماهنگ عقب نشینی کنند. در صورت عدم هماهنگی اقدامات خود، در برابر نیروهای قوی دشمن قرار خواهند گرفت.
- برای رسیدن به این هدف، ژنرال های مهاجم از طریق پیام رسان ها با یکدیگر ارتباط برقرار می کنند.
- اگرچه شهر پر از دشمن است، اما پیام رسان ها باید از شهر عبور کنند تا با دستور حمله از اردوگاهی به اردوگاه دیگر بروند.
- این فرض نشان می دهد که یک قاصد ارتش دیگری را از قصد حمله یا عدم حمله و زمان انجام آن آگاه می کند.
- همانطور که آنها پیشنهادات را دریافت می کنند، ژنرال ها آنها را تایید یا رد می کنند تا یک توافق رای گیری در مورد اینکه چه قدمی باید بردارند ایجاد کنند.
همانطور که می بینید، مشکل این است که در داخل شهر، دشمنان می توانند پیام رسان ها را دستگیر کنند. اگر بتوان آنها را رهگیری کرد، پیام را می توان اصلاح کرد و در نتیجه حمله به صورت هماهنگ انجام نمی شد. اگر به طور هماهنگ انجام نمی شد، ارتش های مهاجم شکست خورده می شدند و در نتیجه ماموریت خود را شکست می دادند.
برای مثال، اگر پیامی از سوی ژنرالها « حمله فردا » بود، متن را میتوان با افزودن» تغییر داد، فقط در صورتی که باران «پشت» ببارد. به این ترتیب ارتش دیگر می تواند فکر کند که فقط در صورت بارندگی با حمله موافقت می کند و پیام را تأیید می کند. پس لشکر اول حمله می کرد و لشکر دوم نمی توانست حمله کند و اگر باران نمی بارید عقب نشینی کرد.
با مجموعه ای از سیستم های کامپیوتری توزیع شده با یک هدف مشترک، هر کامپیوتر معادل یک ژنرال و ارتش آن خواهد بود . و بنابراین، شبکه داده مشابه پیام رسان هایی است که باید از شهر عبور کنند و به ژنرال ها اطلاع دهند.
شکست های بیزانس چه تأثیری دارد؟
گسل های بیزانسی به عنوان دسته کلی تر و پیچیده تر از گسل ها در نظر گرفته می شوند که باید حل شوند. این به این دلیل است که گره ای که در شبکه از کار می افتد، ممکن است داده های دلخواه تولید کند، و وانمود می کند که درست است. گسل های بیزانسی می توانند سیستم های تشخیص عیب را گیج کنند. علیرغم این قیاس، خرابی بیزانسی لزوماً یک مشکل امنیتی نیست که شامل دخالت خصمانه انسانی باشد: میتواند بهطور تصادفی به دلیل انباشته شدن خرابیهای الکتریکی ایجاد شود.
برای توضیح بیشتر در مورد اثرات و دامنه این شکست ها، برخی از موارد شناخته شده آنها را توضیح می دهیم:
مورد شماره ۱: کاوش شاتل فضایی – پرواز STS-124
ناسا دریافت که یکی از شکست های ماموریت STS -۱۲۴، مربوط به سیستم کنترل سوخت بود. از چهار سیستم کنترل او، هر چهار سیستم اطلاعات اشتباه و کاملاً متفاوت از سیستم کنترل را می دادند. با این وجود، شکست برنامه نویسی نبود، بلکه فیزیکی بود. این در یک کارت کنترلی که با هر چهار کامپیوتر ارتباط برقرار می کرد، منشاء گرفت. یک ترک در دیود چیزی بود که باعث این شکست بیزانس شد. پارگی دیود با تبدیل یک دیود به خازن، عامل انتقال نور بود. این وضعیت راه اندازی شاتل را تا رفع عیب به تاخیر انداخت.
اگر سیستم شاتل در برابر شکست های بیزانسی تحمل نمی کرد، این شکست فاجعه بار بود. بدون کنترل سیستم سوخت، به معنای انفجار شاتل بود. این شکست نمونه بارز این است که شکستهای بیزانس چقدر میتواند خطرناک باشد و تشخیص یا جلوگیری از آنها چقدر دشوار است.


شکست بیزانسی نباید مشکلی باشد که ناشی از اقدام اشخاص ثالث است، ممکن است خطای ناشی از سیستم های تشخیص شکست باشد. به یاد داشته باشید، شکست های بیزانس آنهایی هستند که در مورد اعلام شکست آنها اتفاق نظر وجود ندارد.
مورد شماره ۲: فناوری بلاک چین
در مورد بلاک چین ، شکستهای بیزانسی میتوانند خود را در عملکرد گرههای غیرقابل اعتماد یا مخرب نشان دهند. اگر هر یک از اعضای جامعه اطلاعات متناقضی در مورد تراکنش ها به دیگران ارسال کند، قابلیت اطمینان بلاک چین از بین می رود. برای حل این مشکل، PoW مکانیسمهای تحمل خطای بیزانسی (BFT) را برای جلوگیری از این مشکل ارائه میکند.
یکی دیگر از مشکلاتی که در بلاک چین مربوط به شکستهای بیزانسی به وجود میآید، موارد خرج مضاعف است. خرج مضاعف ، حمله ای است که در آن یک بازیگر در دو موقعیت مختلف از ارزهای دیجیتال یکسان استفاده می کند. در این حالت، شبکه بلاک چین باید در برابر این واقعیت که از همان ارز دیجیتال به این شکل استفاده می شود، مقاومت کند. انجام این کار بسیار پیچیده است. برای دستیابی به این هدف، مکانیسم هایی باید طراحی شود که در برابر شکست های جزئی یا کامل بیزانس مقاوم باشد.




