تحمل خطای بیزانسی (BFT) چیست؟
مفهوم BFT یک رابطه امیدوارکننده با تاکتیکهای نظامی در سناریویی دارد که در آن ژنرالهای مختلف بیزانسی قبل از حمله به شهر دشمن در اطراف آن جمع میشوند. برخی از نکات برجسته مسئله ژنرال بیزانسی میتواند به درک کار واقعی اجماع تحمل خطای بیزانس کمک کند.
معرفی فناوری بلاکچین در سال 2008 با مقالهای در مورد سیستمهای نقدی الکترونیکی همتا به همتا توسط ساتوشی ناکاموتو، درک فناوری را تغییر داد. در طول سالها، فناوری بلاکچین کاربردهای قابل توجهی در بخشهای مختلف غیر از امور مالی پیدا کرده است. جدا از استثنائات خاص، راه حلهای بلاکچین اساساً به صورت غیرمتمرکز طراحی شدهاند. نود یا گرههای مختلفی که در یک شبکه توزیع شده مرتب شدهاند، از یک دفتر کل دیجیتال مراقبت میکنند که تمام تراکنشهای شبکه را ثبت میکند.
همه شرکت کنندگان باید در مورد معاملات خاص برای اعتبار آنها توافق کنند، بنابراین نیاز به مکانیزمهای توافقی (consensus mechanisms) مانند تحمل خطای بیزانس (Byzantine Fault Tolerance) یا BFT را نشان میدهد. اگرچه معمولاً در بحثهای مختلف در مورد بلاکچین با ذکر BFT مواجه میشوید، اما عملکرد دقیق آن برای بسیاری ناشناخته است. مقاله زیر به شما کمک میکند تا اصول اولیه BFT، از جمله اصول اولیه، فواید و موارد استفاده آن را بررسی کنید.
چرا باید درباره تحمل خطای بیزانسی یاد بگیریم؟
مدلهای اجماع اجزای اصلی در سیستمهای بلاکچین توزیع شده هستند. آنها افزودنیهای مهمی به اکوسیستم بلاکچین برای ارائه یک عملکرد حیاتی هستند که با فناوری بلاکچین وعده داده شده است. اساسا، آنها به عنوان پایهای برای ارتقای تعامل بین کاربران در یک شبکه بلاکچین در یک محیط غیر قابل اعتماد (trustless) – یعنی بدون نیاز به اعتماد- عمل می کنند.
تحمل خطای بیزانسی یک نمونه برجسته از یکی از رایج ترین مکانیزمهای اجماع با مزایای امیدوار کننده است. اجرای مناسب مکانیزمهای اجماع در پلتفرمهای ارزهای دیجیتال میتواند منجر به ایجاد انواع مختلفی از شبکهها با پتانسیل استثنایی شود.
بنابراین، کاملاً واضح است که بلاکچین به افراد و رایانهها کمک میکند تا بدون نیاز به اعتماد به یکدیگر، در مورد مسائل به توافق برسند. مکانیزمهای اجماع مجموعهای از قوانین را ایجاد میکند که شبکه افراد و رایانهها به راحتی میتوانند به آنها اعتماد کنند. تحمل خطای بیزانسی یک مداخله برجسته در چشم انداز بلاکچین است که امکان ایجاد قوانین و پروتکلهای معتبر بلاکچین را فراهم میکند.
اول از همه، اجازه دهید تصور دقیقی از نحوه کار اجماع داشته باشیم. متعاقباً، میتوانیم دریابیم که چگونه تاکتیکهای نظامی در معادله فناوری بلاکچین و کاربردهای آن قرار میگیرند.
همتایان و گرهها در بلاکچین
راهحلهای بلاکچین به شکل شبکههایی اجرا میشوند که دسترسی و حقوق برابر را به همه رایانههای موجود در شبکه اختصاص میدهند. گرهها می توانند به طور مستقیم با یکدیگر ارتباط برقرار کنند. بنابراین، یک نود یا گره چیست؟ هر کامپیوتر در شبکه بلاکچین به عنوان همتا (peer) یا گره شناخته میشود. در یک راه حل کاملاً غیرمتمرکز، هیچ همتا یا گرهای قدرت بیشتری نسبت به همتاها یا گرههای دیگر ندارد.
بنابراین، یک بلاکچین هماهنگ کننده، مدیر یا مدیری برای اجرای قوانین و تعیین و مجازات رفتار غیرقابل قبول ندارد. برعکس، سیستم به واقعیتی بستگی دارد که نشان میدهد همه گرهها از قوانین یا پروتکلهای مشابهی برای ورود به توافق پیروی میکنند.
اجماع اصطلاحی است که وقتی به دنبال توافق در بین همه گرهها هستید، پیدا میکنید و به معنای واقعی کلمه به معنای “توافق عمومی” است. اجماع مهم ترین اما دشوارترین کار در یک سیستم غیرمتمرکز بدون هیچ گونه اختیاری است. بخش عمدهای از گرهها باید در مورد صحت یا اعتبار اطلاعات یا تراکنشها به توافق برسند و از این طریق عملکرد مناسب سیستم یا شبکه را تضمین کنند.
شبکه بلاکچین باید در فواصل زمانی منظم اجماع را انجام دهد. با این حال، مکانیزمهای اجماع مانند تحمل خطای بیزانسی برای مقابله با عدم قطعیت خرابی یا عمل نادرست برخی گرهها الزامی است. علاوه بر این، برخی از گرهها میتوانند با اجماع گرههای دیگر مخالف باشند. بنابراین، مهم است که اطمینان حاصل شود که طراحی سیستم میتواند به راحتی بر چنین آسیب پذیریهایی غلبه کند.
توضیح تحمل گسل بیزانس
باربارا لیسکوف (Barbara Liskov) و میگل کاسترو (Miguel Castro) الگوریتم BFT را در اواخر دهه 90 معرفی کردند. این مورد برای کارکرد موثر به عنوان تحمل خطای بیزانسی ناهمزمان بدون هیچ گونه محدودیتی در زمان دریافت پاسخ به درخواست مربوطه طراحی شده است. برنامه کاربردی BFT برای پرداختن به مسائل قابل توجه در مدل BFT موجود توسعه یافته است. با این حال، دانستن مدل BFT ضروری است زیرا در ابتدا برای درک BFT عملی یا ناهمزمان ایجاد شده است.
خاستگاه الگوریتم تحمل خطای بیزانسی به سال 1982 و با پایهگذاری مسئله ژنرال بیزانسی باز میگردد. لزلی لمپورت (Leslie Lamport)، مارشال پیز (Marshall Pease) و رابرت شوستاک (Robert Shostak) مشکل ژنرال بیزانسی را ایجاد کردند و متعاقباً باعث ایجاد BFT شدند. مفهوم BFT یک رابطه امیدوارکننده با تاکتیکهای نظامی در سناریویی دارد که در آن ژنرالهای مختلف بیزانسی قبل از حمله به شهر دشمن در اطراف آن جمع میشوند. برخی از نکات برجسته مسئله ژنرال بیزانسی میتواند به درک کار واقعی اجماع تحمل خطای بیزانس کمک کند.
ژنرالهای مختلف بیزانسی واحدهای مربوطه خود را در مواضع مختلف خارج از شهری که قرار است به آن حمله کنند، فرماندهی میکنند.
ژنرالها میتوانند از طریق پیام رسانها با یکدیگر ارتباط برقرار کنند و هر بار یک پیام ارسال کنند.
ژنرالهای بیزانسی برای حمله یا عقب نشینی موفقیت آمیز باید هماهنگی و توافق بر سر یک برنامه اقدام خاص داشته باشند.
اگر همه ژنرالها در یک زمان حمله کنند یا همه آنها همزمان عقب نشینی کنند، اشکالی ندارد. با این حال، اگر یک ژنرال عقب نشینی کند در حالی که دیگران حمله کنند یا دیگران عقب نشینی کنند، ژنرال در نهایت شکست میخورد. بنابراین، نتیجه برای همه ژنرالها و واحدهای آنها بد خواهد بود.
نکته مهم دیگر در مسئله ژنرال بیزانسی این است که برخی از ژنرال ها وفادار نیستند. این ژنرالها میتوانند اطلاعات اشتباه یا دستکاری شده را برای ژنرالهای دیگر ارسال کنند تا آنها را گیج کنند.
بنابراین، مدل تحمل خطای بیزانس میتواند به حل این مشکل کمک کند. کلیات به الگوریتمی نیاز دارند که بتواند شرایط زیر را تضمین کند.
-همه ژنرالهای وفادار بر روی یک برنامه عمل به توافق میرسیدند.
-ژنرالهای وفادار ارتش بیزانس تحت تأثیر ژنرالهای خائن نقشه بدی را دنبال نمیکنند.
-ژنرالهای وفادار از تمام قوانین مشخص شده در الگوریتم پیروی میکنند.
-همه ژنرالهای وفادار ارتش بیزانس باید بدون توجه به اقدامات خائنان به اجماع برسند.
-مهمتر از همه، ژنرالهای وفادار نیز باید بر سر یک برنامه مشخص و معقول به توافق برسند.
چگونه BFT در بلاکچین اعمال میشود؟
اکنون، مهم است که بفهمیم مسئله ژنرال بیزانس چگونه در مورد بلاکچین قابل اجرا است. در مورد یک شبکه همتا به همتا، توافق یکپارچه بین گرههای وفادار و غیر معیوب میتواند به دستیابی به اجماع کمک کند. اساس تحمل خطای بیزانسی در سناریویی قابل مشاهده است که در آن همه گرهها یک پیام دریافتی را تکرار میکنند.
اگر یک گره پیام دریافتی را تکرار کند، به وضوح نشان میدهد که هیچ مشکل یا نقصی ندارد. از سوی دیگر، اگر گیرندگان پیام دریافتی را تکرار کنند، شبکه میتواند به راحتی امکان گرههای بیزانسی را رد کند، اما گره بیزانسی (Byzantine Node) چیست؟
گره بیزانسی به گره خائن اطلاق میشود که میتواند به طور عمدی گرههای دیگر را در شبکه گمراه کند. گره بیزانسی همچنین میتواند گرههایی را که در پروتکل اجماع دخیل هستند گمراه کند یا به آنها دروغ بگوید. یک شبکه بلاکچین کاملاً عملیاتی تضمین میکند که تحمل خطا در بلاکچین به آن در غلبه بر شکست کمک میکند. گرههای بیزانسی یا گرههای مخرب میتوانند منجر به مشکلات خاصی شوند که به نام شکستهای بیزانسی (Byzantine failures) شناخته میشوند.
کاربران میتوانند با دو نوع متمایز از شکستهای بیزانسی مواجه شوند که اولین مورد کاملاً فنی است. یک خطای فنی جزئی در گره میتواند بر عملکرد آن تأثیر بگذارد و در برخی موارد ممکن است به طور کلی پاسخ یا کار را متوقف کند. نوع دیگر شکست بیزانسی به شکست دلخواه گره اشاره دارد. در مورد شکست دلخواه گره، یک گره ممکن است ویژگیهای زیر را نشان دهد:
-عدم بازگشت نتیجه
-ارائه پاسخ هایی با نتایج نادرست
-پاسخ دادن با نتایج گمراه کننده برای پرس و جوها
-ارائه پاسخ به یک پرس و جو با نتایج متفاوت به اجزای مختلف سیستم
Bizantine Fault Tolerance یا BFT با کاهش تأثیر گرههای مخرب به غلبه بر همه این چالشها کمک میکند. میتواند شبکه را از خرابیهای خطرناک سیستم محافظت کند و عملکرد ایده آل شبکه را تضمین کند. اساساً، به گرههای صادق و گرههای مخرب اجازه میدهد کار خود را بدون تأثیر بر عملکرد شبکه انجام دهند. در طول سالهای متمادی، تحقیقات گسترده در مورد مسئله ژنرال بیزانس و بهینهسازی با مجموعهای از راهحلهای عملی متنوع، منجر به معرفی بسیاری از پیشرفتها نسبت به BFT معمولی شده است.
اجماع عملی BFT چیست؟
تحمل خطای عملی بیزانس به عنوان یکی از بهینه سازیهای برجسته BFT در سال 1999 توسط باربارا لیسکوف و میگل کاسترو در مقاله آکادمیک خود با عنوان “تحمل خطای عملی بیزانسی” پدیدار شد. هدف اولیه BFT عملی حل اختلافات مشهود در مکانیزم اجماع اصلی BFT بود.
مکانیزم اجماع pBFT یا همان تحمل خطای عملی بیزانس میخواهد از تکرار عملی ماشین حالت بیزانسی برای تحمل گرهها یا شکستهای بیزانسی اطمینان حاصل کند. مفهوم اولیه زیربنای مکانیزم عملی BFT به این فرض در مورد وجود خرابی گره مستقل اشاره دارد. همچنین BFT عملی فرض میکند که گرههای مستقل خاص مسئول انتشار پیام های دستکاری شده هستند.
برجستهترین مکانیزم عملی BFT به این واقعیت اشاره دارد که برای سیستمهای ناهمزمان ایده آل است. علاوه بر این، همچنین قادر به ارائه عملکرد بالا در کنار زمان اجرا استثنایی است. کاربران با استفاده از BFT عملی باید با تاخیر جزئی مواجه شوند.
نکات برجسته BFT عملی
اگر میخواهید در مورد تحمل خطای عملی یا ناهمزمان بیزانس بیشتر بدانید، باید ویژگیهای آن را درک کنید. در اینجا برخی از جنبههای مهم وجود دارد که به وضوح مکانیزم اجماع BFT ناهمزمان را بیان میکند.
اساساً، تمام گرهها در مدل ناهمزمان یا عملی BFT در یک دنباله مرتب شدهاند. یک گره در شبکه به عنوان گره اصلی یا گره رهبر عمل میکند و گرههای دیگر به عنوان گرههای پشتیبان شناخته میشوند.
تمام گرههای سیستم امکان ارتباط بین گرهها را فراهم میکنند. هدف اصلی این ارتباط بر حصول اطمینان از اینکه گرههای صادق در شبکه میتوانند به توافق خاصی در مورد وضعیت سیستم بلاکچین بر اساس اکثریت برسند، تمرکز دارد.
گرهها این قابلیت را دارند که به طور یکپارچه و پیوسته با یکدیگر ارتباط برقرار کنند. BFT عملی تضمین میکند که گرهها نه تنها پیام را تأیید میکنند، بلکه اطمینان میدهند که پیام در طول انتقال دستخوش هیچ گونه تغییری نشده است.
کار pBFT
عملکرد مدل عملی تحمل خطای بیزانسی عمیقاً بر فرضیات خاصی متکی است. برجسته ترین فرض در مورد BFT عملی به این واقعیت اشاره دارد که تعداد گرههای مخرب در شبکه نمیتواند برابر یا بیشتر از یک سوم کل گرهها در سیستم برای یک بخش آسیب پذیری خاص باشد.
گرههای اضافی در سیستم احتمال ریاضی را برای تعدادی از گرهها کاهش میدهند که تقریباً یک سوم کل گرههای سیستم را مخرب میکنند. الگوریتم عملی BFT تسهیلات ایمنی و همچنین آنلاین بودن تعدادی از گرهها را تا (n-1)/1/3 تضمین میکند. در این مورد، n تعداد کل گرههایی را نشان میدهد که به طور همزمان مخرب یا معیوب هستند. نتیجه زیر در نهایت به صحت پاسخهایی اشاره میکند که مشتریان برای درخواستهای خود بر اساس خطی سازی دریافت میکنند.
مراحل اجماع در BFT عملی
برای درک نوع عملی الگوریتم تحمل خطا بیزانس، باید مراحل توافق آن را درک کنید. همه راندها در اجماع عملی BFT معمولاً تقریباً 4 مرحله را شامل میشوند. این مدل با اتخاذ رویکرد “فرمانده و ستوان” اندکی از مشکل ژنرال بیزانسی خالص منحرف میشود. مراحل مهم برای درک نحوه عملکرد BFT به شرح زیر است:
-کلاینتها درخواستهایی را برای فراخوانی یک عملیات سرویس خاص به گره رهبر ارسال میکنند.
-سپس گره رهبر میتواند درخواست را به گرههای پشتیبان در شبکه ارسال کند.
-همچنین گرهها میتوانند از اجرای درخواستهای اختصاصیافته و سپس ارسال یک پاسخ مربوط به مشتری اطمینان حاصل کنند.
سپس مشتری منتظر پاسخهای (f+1) از گرههای مختلف با نتیجه مشابه میماند. در این حالت، «f» نشاندهنده حداکثر تعداد گرهها با احتمال خطا است و نتیجه اساساً منعکس کننده نتیجه عملیات است.
همچنین مهم است که اطمینان حاصل شود که گرهها الزامات مهم برای تحمل خطای بیزانسی در بلاکچین را برآورده میکنند. گرهها باید قطعی باشند و برای BFT عملی با همان حالت شروع شوند. نتیجه نهایی به این معنی است که همه گرههای صادق میتوانند در مورد ترتیب رکورد به توافق برسند. گرهها میتوانند رکورد را در نتیجه نهایی بپذیرند یا رد کنند. جالب توجه است، BFT عملی از یک فرمت خاص برای اصلاح گره رهبر در هر نما استفاده میکند.
علاوه بر این، امکان جایگزینی گره رهبر با پروتکلی به نام تغییر view نیز وجود دارد. چنین پروتکلی در مواردی مناسب است که گره رهبر درخواست را برای مدت زمان خاصی تبدیل نکرده باشد. علاوه بر این، تحمل خطای بیزانسی عملی یا ناهمزمان تضمین میکند که اکثریت گرههای صادق میتوانند با هم در مورد ماهیت معیوب یک رهبر تصمیم بگیرند. همچنین گرههای صادق میتوانند به عنوان جایگزین، رهبر را با گره رهبر بعدی جایگزین کنند.
مزایا و معایب BFT عملی
مدل عملی BFT برای اجماع بلاکچین برای کاربردهای عملی طراحی شده است. مقاله آکادمیک اصلی زیربنایی BFT عملی همچنین کاستیهای خاص را در حالی که پیشرفتهای کلیدی را برای اجرای الگوریتم در سیستمهای دنیای واقعی نشان میدهد، تشریح کرده است. تحمل خطای بیزانسی عملی میتواند به اطمینان از مزایای زیر کمک کند.
1.انعطاف پذیری و سرعت معاملات
اول از همه، میتواند بدون نیاز به تاییدیههایی مانند اثبات کار، تضمین نهایی بودن معامله را ارائه دهد. شما میتوانید تفاوت قابل توجهی با مدل اثبات کار بکار گرفته شده توسط بیت کوین با BFT عملی پیدا کنید. هنگامی که گرهها در یک مدل BFT عملی بر روی یک بلوک مربوطه توافق دارند، بلوک نهایی در نظر گرفته میشود. نهایی بودن به این واقعیت متکی است که همه گرههای صادق در مورد وضعیت سیستم در یک زمان خاص توافق دارند. ارتباط بین گرههای صادق به حصول اطمینان از توافق معتبر در مورد وضعیت سیستم کمک میکند.
- مصرف کم انرژی
مزیت مهم بعدی با این الگوریتم تحمل خطا بیزانسی در مقایسه با اجماع اثبات کار کاهش مصرف انرژی است. مدل اثبات کار به کار رفته در بیت کوین مستلزم نیاز یک دور اثبات کار برای هر بلوک است. به تدریج، ماینرها در شبکه بیت کوین مصرف برق را افزایش میدهند که میتواند از مصرف برق سالانه کشورهای کوچک بهتر عمل کند.
BFT عملی شامل تلاشهای محاسباتی فشرده نیست، در نتیجه منجر به کاهش شدید مصرف انرژی الکتریکی میشود. با BFT عملی، ماینرها مجبور نیستند الگوریتمهای هش اثبات کار را برای هر بلوک با نیاز به منابع محاسباتی فشرده حل کنند.
با این حال، BFT عملی نیز معایبی دارد. به عنوان مثال، مدل عملی BFT فقط در شکل کلاسیک آن قابل اجرا است. بنابراین، شما محدود به اندازههای گروه اجماع کوچک هستید تا از حجم زیاد ارتباطات مورد نیاز بین گرهها جلوگیری کنید. علاوه بر این، استفاده از امضای دیجیتال و کدهای احراز هویت میتواند نگرانیهای ناکارآمدی را ایجاد کند.
نکته پایانی
در نکته پایانی، کاملاً واضح است که تحمل خطای بیزانسی نقش مهمی در تغییر رویکردهای اجماع دارد. برنامههای بلاکچین به آرامی در بخشهای مختلف شتاب بیشتری به دست میآورند. با این حال، نگرانیهای زیادی در شبکههای بلاکچین مدرن در حال ظهور است.
بنابراین، مهم است که به BFT به عنوان ابزاری حیاتی برای اطمینان از عملکرد عادی شبکه با وجود عوامل مخرب نگاه کنیم. بلاکچین در دسترس و شفاف است و بنابراین میتواند بسیاری از شرکتکنندگان ناخواسته را که میخواهند منافع خصوصی خود را دنبال کنند، دعوت کند. بنابراین، درک روشنی از مکانیزمهای اجماع مانند BFT و مواردی مانند BFT عملی ضروری میشود.