مسئله خطای بیزانسی

۱۲ آبان ۱۳۹۷ | کاوه مشتاق

مسئله‌ خطای بیزانسی، یک نوع حمله کامپیوتری در شبکه‌های غیرمتمرکز است. حفاظت در برابر این حمله در تکنولوژی بلاکچین بسیار مهم می‌باشد. برای توضیح این حمله، ابتدا یک حالت ساده‌تر به نام مسئله‌ دو ژنرال را بررسی می‌کنیم.

 

مسئله‌ دو ژنرال

مسئله‌ دو ژنرال، یک مسئله‌ی ذهنی در علوم کامپیوتر است. به این شکل که دو ژنرال با ارتش‌هایشان، دو طرف یک شهر در نظر گرفته می‌شوند. اگر فقط یک ژنرال به شهر حمله کند، قطعاً شکست خواهد خورد و تنها در صورت حمله‌ همزمان این دو ژنرال، پیروزی به دست می‌آید.

آن‌ها فقط یک راه برای برقراری ارتباط با یکدیگر دارند: «قاصد». قاصد باید از زمین‌های تحت تسلط دشمن که احتمال دستگیریش هم وجود دارد، عبور کند. حالا سؤال این است که ژنرال اول از چه راهیی می تواند از رسیدن پیغامش به ژنرال دوم و توافق برای زمان حمله اطمینان حاصل کند؟

به عنوان مثال ژنرال اول یک قاصد برای ژنرال دوم می‌فرستد و قاصد به مقصد می‌رسد. ژنرال دوم به عنوان تأیید قاصدی به ژنرال اول می‌فرستد و این قاصد دستگیر می‌شود. حتی اگر قاصد دستگیر هم نشود، ژنرال دوم، برای فهمیدن این موضوع که ژنرال اول موضوع را می‌داند یا نه راهی ندارد.

برای درک دقیق‌تر این موضوع ویدئوی دو فرمانده را مشاهده کنید.

مسئله‌ خطای بیزانس

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

چگونه عده‌ای که به یکدیگر اعتماد ندارند می‌توانند بر سر یک موضوع توافق کنند.

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

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

چگونه عده‌ای که به یکدیگر اعتماد ندارند می‌توانند بر سر یک موضوع توافق کنند.

ویدئوی مسئله ژنرال‌های بیزانسی را مشاهده کنید.

 

جواب‌های مسئله

این مسئله‌ در چند حالت جواب دارد:

  • اگر کمتر از یک سوم ژنرال‌ها خائن باشند حتی در حالتی که فرستادن پیغام غیرواقعی ممکن باشد، امکان پیروزی وجود دارد.
  • در صورتی که بیش از نیمی از ژنرال‌ها خائن باشند، حمله قطعاً شکست می‌خورد (حمله‌ ۵۱ درصد).
  • در صورتی که کمتر از نصف ژنرال‌ها خائن باشند و امکان فرستادن پیغام غیرواقعی وجود نداشته باشد، حمله موفقیت‌آمیز خواهد بود.

راه‌حل بلاکچین

در بلاکچین، نخست با زنجیر کردن پیام‌ها به یکدیگر، امکان فرستادن پیغام غیرواقعی تقریباً غیرممکن می‌شود و سپس با استفاده از یک الگوریتم اجماع (مثل اثبات کار POW) مشکل کاملاً حل خواهد شد.


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