بلاکچین به کامپیوترها و افراد اجازه میدهد بدون نیاز به اعتماد به یکدیگر در مورد همه چیز توافق کنند. این شبکه از افراد و رایانهها فقط بایستی قبول کنند که قوانینی که همه از آن پیروی میکنند قابل اعتماد هستند. تحمل خطای بیزانس (BFT) یکی از ویژگیهای اساسی ایجاد قوانین یا پروتکلهای قابل اعتماد بلاکچین است. اما قبل از اینکه بفهمیم تحمل خطای بیزانس چیست، باید یک قدم به عقب برگردیم و بررسی کنیم معنی همتاها، گرهها و اجماع چیست و تاکتیکهای نظامی چه ارتباطی با همه اینها دارند.
اجماع چیست؟
اجماع به معنای توافق کلی است. در یک سیستم غیرمتمرکز که هیچ مرجعی وجود ندارد، دستیابی به اجماع یکی از مهمترین و دشوارترین کارهاست. برای عملکرد صحیح سیستم یا شبکه، اکثر گرهها باید در مورد واقعیت توافق کنند و در فواصل منظم به توافق برسند. مشکل این است که برخی از گرهها به طور حتم خراب میشوند، بد رفتاری میکنند یا با اجماع سایر گرهها مخالف هستند، بنابراین سیستم باید به گونهای طراحی شود تا بتواند این موارد را حل کند.
تحمل خطای بیزانس چیست؟
یک سیستم دارای تحمل خطای بیزانس (BFT) به سیستمی گفته میشود که تا زمانی که دو سوم شبکه به توافق برسند، میتواند به درستی کار کند. BFT خاصیت یا مشخصه سیستمی است که میتواند تا یک سوم گرهها در برابر خرابی یا سوء عملکرد مقاومت کند.
همه زنجیرههای بلوک غیرمتمرکز بر اساس پروتکلها یا قوانینی اجماعی اجرا میشوند که تمام گرههای بلاکچین برای مشارکت باید از آنها پیروی کنند. پروتکلهای اجماع مانند اثبات کار و اثبات سهام دارای تحمل خطای بیزانس هستند و بنابراین میتوانند تا یک سوم گرههای مخالف مقاومت کنند.
چه کسی تحمل خطای بیزانس را ابداع کرد؟
مشکل بیزانس ژنرال در سال 1982 توسط لسلی لمپورت،رابرت شوستاک و مارشال پی اختراع شد و الهام بخش مفهوم تحمل خطای بیزانس است. هر فناوری دفتر توزیع شده یا فناوری بلاکچین بر این فرض اساسی استوار است که سیستم مورد نظر دارای نقص است و حتی در صورت انحراف گرهها از رفتار طبیعی خود، باید زنده بماند.
انحراف میتواند غیر مخرب باشد، مانند خراب شدن گره یا عدم پاسخ از گره، که در صورتی اتفاق میافتد که گره پیام را به دلیل نقص در پروتکل ارتباطی یا آفلاین بودن دریافت نکرده باشد. بنابراین، از نظر تحمل خطا، هر فناوری دفتر توزیع شده میتواند شامل:
- یک سیستم تحمل خطای ساده یا تحمل خرابی (CFT) باشد. این نوع مکانیسم از خرابی سیستم در هنگام خراب شدن گرهها یا آفلاین شدن آنها جلوگیری میکند. یک سیستم تحمل خطای ساده در یک محیط کنترل نشده خیلی کاربردی نیست.
-در یک سیستم توزیع غیرمتمرکز مانند بلاکچین، شرکت کنندگان غالباً در یک سیستم کنترل نشده، باز و بدون مجوز با یکدیگر ارتباط برقرار میکنند. عملکرد آنها ممکن است براساس علایق فردی آنها متفاوت باشد و ممکن است مخرب باشد. سیستم خطای BFT تضمین میکند که در مواردی که گرهها خراب یا مخرب باشد، به کار خود ادامه خواهد داد.
مشکل بیزانس
مسئله بیزانس در مقالهای که توسط لسلی لمپورت، رابرت شوتاك و مارشال پی در سال 1982 منتشر شد، تعریف شده است. این مقاله به نام مشكلات عمومی بیزانس نامگذاری شد که یک تمثیل را برای مشکلات دستیابی به اجماع در یک سیستم غیرمتمرکز بیان کرد. این تمثیل به این ترتیب پیش میرود: «قبل از نبرد، ژنرالهای بیزانس، با فرماندهی گردانهای مختلف ارتش، سعی میکنند در مورد حمله یا عقب نشینی تصمیم بگیرند. این امر باید با انتقال پیامها از طریق پیام رسانها بین آنها و توافق حاصل شود. با این حال، یک مشکل وجود دارد. این احتمال وجود دارد که برخی از ژنرالها و یا برخی از پیام رسانها خائن به هدف باشند. این ژنرالها و پیام رسانهای خیانتکار ممکن است پیام را تغییر داده و پاسخ خرابکارانهای را برای تخریب برنامههای ژنرالهای وفادار به تصویب برسانند. بنابراین، ژنرالهای وفادار باید با در دست داشتن اطلاعات فوق راهی برای دستیابی به اتفاق نظر پیدا کنند.
برای فناوری بلاکچین یا همان فناوری دفاتر توزیع شده، تمثیل فوق را میتوان به محیطی ترجمه کرد که در آن میتوان ژنرالها را با گرهها، پروتکلهای پیام رسانی و پیام رسانها جایگزین کرد.
تحمل عملی خطای بیزانس (PBFT)، اثبات کار (PoW) و اثبات سهام (PoS) برخی از الگوریتمهای اجماع عمده در حال حاضر مورد استفاده هستند که به BFT میرسند و عملاً در سیستمهای بلاکچین امروزی مورد استفاده قرار میگیرند.