تحمل خطای بیزانس (به اختصار BFT) یکی از مهمترین ویژگیهای پروتکلها یا قوانین قابل اطمینان بلاکچین است.
بلاکچینها به کامپیوترها و کاربران امکان میدهند که بدون نیاز به اطمینان به یکدیگر، با هم بر سر مسائل مختلف توافق کنند. این شبکه متشکل از اشخاص و کامپیوترها فقط باید به قابل اطمینان بودن قوانینی که از آن تبعیت میکند، مطمئن باشد. تحمل خطای بیزانس یکی از مهمترین ویژگیها برای ساختن پروتکلها یا قوانین قابل اطمینان برای بلاکچین است.
اما برای درک اینکه تحمل خطای بیزانس چیست، باید یک مرحله به عقب برگردیم و با مفهوم همتایان، نودها و توافق نظر آشنا شویم.
آشنایی با مفهوم همتایان و نودها
بیشتر بلاکچینها یا ارزهای دیجیتال در قالب شبکههایی کار میکنند که در آن همه کامپیوترها دسترسی و حقوق برابری دارند و مستقیماً یا یکدیگر در تعامل هستند. به هر کامپیوتر در این شبکه یک همتا یا نود گفته میشود. در یک سیستم واقعاً غیرمتمرکز، هیچ نود یا همتایی نسبت به دیگران قدرت یا برتری بیشتری ندارند. این یعنی هیچ مدیر،هماهنگ کننده یا کارگردانی برای اعمال قوانین، تعیین رفتار درست یا تنبیه در صورت ارتکاب رفتار نامناسب وجود ندارد بلکه سیستم متکی بر این واقعیت است که همه نودها باید از قوانین یا پروتکلهایی مشابه تبعیت کنند تا بتوانند با هم به توافق برسند.
اجماع نظر چیست؟
اجماع نظر به بیان ساده یعنی یک توافق عمومی. در سیستمی غیرمتمرکز که هیچ مقام متمرکزی در آن وجود ندارد، دسترسی به اجماع نظر یکی از مهمترین و سختترین کارهاست. برای اینکه سیستم یا شبکه درست کار کند، باید اکثریت اعضای شبکه درباره اینکه چه چیزی درست است توافق داشته باشند و در فواصل زمانی منظم به اجماع نظر برسند. مشکل اینجاست که بعضی از نودها به ناچار شکست میخورند، اشتباه رفتار میکنند یا با سایر نودها توافق ندارند بنابراین سیستم باید طوری طراحی شود که بتواند با این شرایط مقابله کند.
تحمل خطای بیزانس چیست؟
سیستمی تحمل خطای بیزانس (به اختصار BFT) دارد که بتواند تا وقتی دو سوم از اعضای شبکه با هم توافق نظر دارند درست کار کند. BFT یکی از خصوصیات سیستمی است که میتواند در صورت عدم رفتار درست یک سوم از اعضاء، باز هم درست کار کند.
همه بلاکچینهای غیرمتمرکز با قوانین یا پروتکلهای اجماع نظری کار میکنند که همه نودهای شبکه باید از آن تبعیت کنند. پروتکلهای اجماع نظری مثل اثبات کار و اثبات سهام تحمل خطای بیزانس دارد و بنابراین میتوانند در صورت عدم توافق یک سوم از اعضای شبکه، مقاومت کرده و به کار ادامه دهند.
چه کسی تحمل خطای بیزانس را ابداع کرد؟
مسئله فرماندهان بیزانسی در سال 1982 توسط Leslie Lamport، Robert Shostak و Marshall Pease ابداع شد و الهام بخش مفهوم تحمل خطای بیزانس شد.
مسئله فرماندهان بیزانسی
مفهوم BFT از روی مسئله فرماندهان بیزانسی ابداع شد که یک نوع آزمایش فکری منطقی است و در آن 7 ژنرال باید به یک شهر حمله کنند.
- ژنرالها همگی در مناطقی متفاوت هستند و تنها قادر به برقراری ارتباط از طریق یک پیام رسان و در هر زمان یک پیام هستند.
- همه فرماندهان باید برای حمله یا عقب نشینی موفقیت آمیز، با هم هماهنگ باشند.
- اگر همه با هم حمله کنند، مشکلی نخواهد بود. اگر همه با هم عقب نشینی کنند، مشکلی نخواهد بود.
- مشکل وقتی ایجاد میشود که بعضی از ژنرالها در حالی که دیگران در حالت عقب نشینی هستند، حمله میکنند که این شرایط برای همه پیامدهای بدی خواهد داشت.
- پیچیدگی مسئله اینجاست که بعضی از فرماندهان وفادار نیستند و سعی میکنند سایر فرماندهان را دچار اشتباه کنند.
مسئله این است که چطور حتی با وجود خیانت و نیرنگ، همه ژنرالها میتوانند با هم درباره یک اقدام به توافق برسند؟
ویژگی خاص تحمل خطای بیزانس
یک پروتکل اجماع نظر که دارای تحمل خطای بیزانس باشد، میتواند با وجود مقداری عدم توافق بین نودها باز هم هماهنگی و دستیابی به اجماع نظر را انجام دهد. این موضوع برای بلاکچینهای غیرمتمرکزی مثل بیتکوین یا اتریوم بسیار مهم و حیاتی است. یکی از ابتکارات مهم ساتوشی ناکاموتو هنگام ایجاد بیتکوین، حل کردن مسئله ژنرالهای بیزانسی با استفاده از الگوریتم اثبات کار بود. شبکه بیتکوین با داشتن ویژگی BFT در برابر اقدام مخرب (تا) یک سوم از اعضای شبکه محافظت شده است.
آیا میدانستید؟
از سیستمهای دارای BFT در صنایعی به غیر از بلاک چین از جمله صنایع هواپیمایی، فضایی و انرژی هستهای هم استفاده میشود. در همه این صنایع بحث امنیت، ایمنی و کار با تعداد زیادی حسگر یا کامپیوتر به هم پیوسته که به عنوان نود عمل میکنند، اهمیت ویژهای دارد. این نودها باید به روشی قابل اطمینان با هم ارتباط برقرار کنند و وقتی قرار باشد در صورت بروز نقص در تعداد زیادی از این نودها باز هم سیستم به نحوی که لازم است، عمل کند بحث BFT وارد عمل میشود.
کارهای قابل انجام با BFT
متداولترین پروتکلهای اجماع مورد استفاده در شبکههای بلاکچین مثل اثبات کار، اثبات سهام و اثبات اعتبار همگی ویژگی BFT را دارند. با اعمال BFT، میتوان سیستمهایی طراحی کرد که تحت کنترل یک نهاد واحد و متکی بر اعتماد به طرفهای خاصی نیستند. این ویژگی اهمیت بسزایی در ساختن شبکههایی غیرمتمرکز دارد.
آینده
مفهوم BFT همچنان نقشی مهم در شبکههای بلاک چین دارد. با ملحق شدن کاربران و سازمانهای بیشتری به سیستمهای توزیع شده و غیرمتمرکز، طرحهای مبتکرانه تری برای طراحی سیستمهای BFT شناسایی و پیاده سازی میشود.