تحمل خطای بیزانس

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو

در سامانه‌های رایانه‌ای عیب‌تاب (fault-tolerant computer systems)، مخصوصا در سامانه‌های محاسباتی توزیع شده، عیب‌تابی بیزانسی Byzantine fault tolerance -مخفف (BFT)- یک خصیصه از سامانه است که امکان تحمل دسته‌ای خاص از خطاها را میدهد. این دسته از خطا‌ها را تحت عنوان "مسئله فرماندهان بیزانسی" میشناسیم که خود یک حالت کلی تر از مسئله "‌دو فرمانده" است.

خرابی‌های که ممکن از در یک سامانه توزیع شده به وجود آیند انواع مختلف دارند. ساده ترینشان خطای-توقف (fail-stop) که در آن تنها راه خرابی سامانه ازکار افتادن یکی از گره‌ها است. در مقابل سخت‌ترین نوع خرابی که در سامانه ممکن است به وجود بیاید خرابی بیزانسی (‌Byzantine failure) است. در این نوع خرابی یکی از گره‌های سامانه که خراب/آلوده شده است ممکنه است اطلاعات دلبخوای تولید کند و سعی کند خود را به جای یک گره سالم جا بزند، که امکان عیب‌تابی را سخت میکند.

پیش‌زمینه[ویرایش]

خطای بیزانسی، خطایی است که به مشاهده/معاینه کننده‌گان متفاوت علائم متفاوت نشان میدهد. خرابی بیزانسی، از دست دادن امکان خدمات دهی یک سامانه به دلیل یک خطای بیزانسی است

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

مسئله فرماندهان بیزانسی[ویرایش]

در سال ۱۹۸۲ مقاله ای منتشر شد که در آن مسئله‌ای با این عنوان مطرح شده بود این مسئله به این شکل بود. گروهی از فرماندهان بیزانس یک شهر را محاصره کرده‌اند و هر کدام بخشی از ارتش بیزانس را رهبری می‌کنند. فرماندهان قصد دارند در مورد حمله به شهر یا عقب‌نشینی تصمیم گیری کنند. گروهی ممکن است میل به حمله و گروهی ممکن است میل به عقب‌نشینی داشته باشند. آنچه مهم است این است که همه فرماندهای یک تصمیم واحد بگیرند چون در صورت حمله بخشی از فرماندهان گروه حمله کنندگان شکست خواهند خورد و از بین خواهند رفت. خطر ایجاد شده برای ارتش از یک حمله مشترک یا یک عقب‌نشینی سازمان یافته بیشتر خواهد بود.

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

پیاده سازی[ویرایش]

یکی از نمونه های پیاده‌سازی شده عیب‌تابی‌بیزانسی BFT بیت‌کوین است. در بیت کوین شبکه همتا به همتا تلاش دارد که یک زنجیره توافق شده را در تمامی نود هایش داشته باشد. گواه انجام کار proof of work این وظیفه را بر عهده دارد تا از پس خرابی بیزانسی برآید و یک سیستم همنواخت و هماهنگ ایجاد کند که در آن همه گره های درستکار هم نظرند.

منابع[ویرایش]

مشارکت‌کنندگان ویکی‌پدیا. «Byzantine fault tolerance». در دانشنامهٔ ویکی‌پدیای انگلیسی .