وبلاگ

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

tahamol-khataye-bizans-chist-ak-1

تحمل خطا بیزانس چیست؟ اعتماد و امنیت برای فناوری بلاک چین حیاتی است و مکانیسم اجماع تحمل خطا بیزانس (BFT) هسته اصلی ایمنی یک بلاک چین است.BFT تضمین می کند که بلاک چین ها به کار خود ادامه می دهند، حتی اگر برخی از شرکت کنندگان شبکه غیرقابل اعتماد یا مخرب باشند. بنابراین BFT چیست، چگونه کار می‌کند و چرا برای فناوری بلاک چین بسیار مهم است؟ تحمل خطا بیزانسی به توانایی یک شبکه یا سیستم برای ادامه عملکرد حتی زمانی که برخی از اجزاء معیوب هستند یا از کار افتاده اند اشاره دارد.

با سیستم BFT، شبکه‌های بلاک چین تا زمانی که اکثر شرکت‌کنندگان شبکه قابل اعتماد و واقعی باشند، به عملکرد یا اجرای اقدامات برنامه‌ریزی‌شده ادامه می‌دهند. این بدان معناست که بیش از نیمی یا دو سوم از گره‌های شبکه بلاک چین باید با تایید یک تراکنش و اضافه کردن آن به بلوک موافقت کنند.

برای اینکه گره های در معرض خطر باعث ایجاد سوء نیت در یک بلاک چین مقاوم به خطای بیزانسی شوند، باید در اکثریت باشند. این بدخواهی می تواند به صورت خرج مضاعف، حمله 51 درصدی، حمله Sybil و غیره باشد.

تحمل خطای بیزانسی در فناوری بلاک چین از مشکل عمومی بیزانسی که توسط لزلی لامپورت، مارشال پیز و رابرت شوستاک پیشگام بود، سرچشمه می گیرد. این مفهوم زمانی برجسته شد که در سال 1982 مقاله ای را با نسخه ای به میزبانی مایکروسافت به نام «مشکل ژنرال های بیزانس (PDF) » منتشر کردند.

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

مشکل انجام یک اقدام مشترک در میان برخی ژنرال های سازشکار بود. این معضل گسل بیزانسی نامیده می شد و هنگامی که سیستمی با موفقیت به این مشکل رسیدگی می کند، گفته می شود که بیزانسی خطاپذیراست. سپس مفهوم تحمل خطای بیزانسی در شبکه بلاک چین ارز دیجیتال اعمال شد. در فضای رمزنگاری، کلیات گره هایی هستند که تراکنش های کریپتو را تایید می کنند.

تحمل خطا بیزانسی (BFT) قابلیت اطمینان یک سیستم کامپیوتری مقاوم به خطا، به ویژه سیستم های محاسباتی توزیع شده است، که در آن ممکن است اجزاء از کار بیفتند و اطلاعات ناقصی در مورد اینکه آیا یک جزء از کار افتاده است وجود دارد. در یک «شکست بیزانسی»، مؤلفه‌ای مانند سرور می‌تواند به طور متناقض به نظر می‌رسد که هم شکست خورده و هم در حال کارکرد برای سیستم‌های تشخیص خرابی است و علائم متفاوتی را برای ناظران مختلف نشان می‌دهد.

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

1. پس زمینه

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

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

شکست‌های بیزانسی عمومی‌ترین و سخت‌ترین کلاس شکست در میان حالت‌های شکست در نظر گرفته می‌شوند. به اصطلاح حالت خرابی fail-stop ساده ترین انتهای طیف را اشغال می کند. در حالی که حالت شکست Fail-stop به سادگی به این معنی است که تنها راه برای شکست، خرابی گره است که توسط گره‌های دیگر شناسایی می‌شود، خرابی‌های بیزانسی مستلزم هیچ محدودیتی نیست، به این معنی که گره شکست‌خورده می‌تواند داده‌های دلخواه را تولید کند و وانمود کند که یک گره صحیح است.

 بنابراین، خرابی‌های بیزانسی می‌توانند سیستم‌های تشخیص شکست را گیج کنند، که تحمل خطا را دشوار می‌کند. علیرغم این تشبیه، خرابی بیزانس لزوماً یک مشکل امنیتی شامل دخالت خصمانه انسانی نیست: می تواند صرفاً از خطاهای الکتریکی ناشی شود.

اصطلاحات خطا و شکست در اینجا بر اساس تعاریف استاندارد استفاده می‌شوند که در ابتدا توسط کمیته مشترکی درباره «مفاهیم و اصطلاحات بنیادی» که توسط کمیته فنی انجمن رایانه‌ای IEEE در زمینه محاسبات قابل اعتماد و تحمل خطا و گروه کاری IFIP 10.4 تشکیل شده بود، استفاده می‌شود. محاسبات قابل اعتماد و تحمل خطا.

2. مشکل ژنرال های بیزانس

بیزانتین به مشکل ژنرال های بیزانسی اشاره می کند، یک مشکل توافقی (که توسط لزلی لامپورت، رابرت شوستاک و مارشال پیز در مقاله 1982 خود، “مشکل ژنرال های بیزانسی” توضیح داده شده است. که در آن گروهی از ژنرال ها، هر کدام بخشی از ارتش بیزانس، شهری را محاصره کرد. این ژنرال ها می خواهند برنامه ای برای حمله به شهر تدوین کنند.

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

مشکل با حضور ژنرال های خیانتکار پیچیده می شود که نه تنها ممکن است به یک استراتژی غیربهینه رأی بدهند، بلکه ممکن است این کار را انتخابی انجام دهند. به عنوان مثال، اگر 9 ژنرال در حال رای دادن باشند که چهار نفر از آنها از حمله حمایت می کنند و چهار نفر دیگر موافق عقب نشینی هستند، ژنرال نهم ممکن است رای عقب نشینی را برای آن ژنرال ها به نفع عقب نشینی و رای حمله به بقیه ارسال کند.

کسانی که از ژنرال نهم رای عقب نشینی گرفتند عقب نشینی می کنند، در حالی که بقیه حمله می کنند.که ممکن است برای مهاجمان خوب نباشد. این مشکل به دلیل جدایی فیزیکی ژنرال ها و ارسال آرای خود از طریق پیام رسان هایی پیچیده تر می شود که ممکن است نتوانند آرا را تحویل دهند یا ممکن است آرای نادرست جعل کنند.

اگر ژنرال های وفادار (غیر خطاکار) در مورد استراتژی خود توافق اکثریت داشته باشند، می توان به تحمل خطا بیزانس دست یافت. ممکن است یک مقدار رأی پیش‌فرض به پیام‌های گمشده داده شود. به عنوان مثال، می توان به پیام های از دست رفته مقدار داد. علاوه بر این، اگر توافق این است کهآرا در اکثریت هستند، می توان از یک استراتژی پیش فرض از پیش تعیین شده استفاده کرد (به عنوان مثال، عقب نشینی).

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

3. نمونه هایی از شکست های بیزانس

خطاهای بیزانسی به ندرت و در نقاط نامنظم در طول آزمایش استقامت برای زیردریایی های کلاس ویرجینیا که به تازگی ساخته شده اند، حداقل تا سال 2005 زمانی که مسائل به طور عمومی گزارش شد مشاهده شد. مشکل مشابهی با ازدحام زنبورهای عسل مواجه است. آنها باید یک خانه جدید پیدا کنند، و بسیاری از پیشاهنگان و شرکت کنندگان گسترده تر باید در مورد اینکه به کدام یک از چندین خانه نامزد پرواز کنند به توافق برسند. و سپس همه آنها باید با ملکه خود به آنجا پرواز کنند.

تحمل خطا بیزانس چیست؟ تحمل گسل بیزانس چگونه کار می کند؟

شبکه‌های غیرمتمرکز تحمل خطای بیزانسی را از طریق قوانین یا پروتکل‌های اجماع اجرا می‌کنند. تمام گره‌های شبکه باید به این پروتکل‌ها یا الگوریتم‌ها پایبند باشند اگر بخواهند در اعتبارسنجی و پردازش تراکنش‌ها شرکت کنند.

برای اینکه یک تراکنش اعتبار سنجی، پردازش و به یک بلوک در حال رشد اضافه شود، اکثر گره ها باید توافق کنند که تراکنش از طریق الگوریتم اجماع شبکه معتبر است. بیت کوین، اتریوم و سایر بلاک چین های اثبات کار (PoW) و اثبات سهام (PoS) از الگوریتم های BFT استفاده می کنند.

در الگوریتم اجماع PoW، استخراج‌کنندگان در شبکه پازل‌های رمزنگاری را برای اعتبارسنجی و تولید بلوک‌های ثبت تراکنش‌ها حل می‌کنند. ماینری که ابتدا معماها را حل می کند، حق اضافه کردن تراکنش را به بلوک در حال رشد و کسب پاداش بلوک به دست می آورد. اما دستگاه ماینر باید مدرکی را منتشر کند که نشان دهد معما را برای اضافه کردن بلوک حل کرده است.

فرآیند ماینینگ در بلاک چین های PoW به رایانه های گران قیمت یا دستگاه های ماینینگ نیاز دارد. این هزینه بالا، ماینرها را از به اشتراک گذاری اطلاعات نادرست منع می کند، زیرا سایر شرکت کنندگان آن را رد می کنند. همچنین احتمال کنترل بیشتر گره‌های سیستم توسط عوامل مخرب را کاهش می‌دهد.

در همین حال، با مکانیسم اجماع PoS، شما باید مقدار مشخصی از توکن‌های رمزنگاری را به اشتراک بگذارید تا حق اعتبارسنجی تراکنش را به دست آورید. سپس، اگر پروتکل شبکه شما را انتخاب کرد، می توانید تراکنش را به بلوک در حال رشد اضافه کنید و پاداش بلوک را دریافت کنید.

سیستم‌های PoS با استفاده از روش‌های مختلف خطاهای بیزانسی را حل می‌کنند. به عنوان مثال، اتریوم از الگوریتم کاسپر استفاده می‌کند که حداقل به دو سوم گره‌ها برای رسیدن به یک اجماع در مورد بلوک‌ها نیاز دارد. در نهایت، سیستم‌های PoS به اکثر گره‌ها نیاز دارند تا بر روی بلوک‌ها توافق کنند تا بتوان آنها را اضافه کرد.

این بلاک چین ها از الگوریتم های اجماع BFT برای مقاومت در برابر گره های اقلیت که با اجماع موافق نیستند، استفاده می کنند. به این ترتیب، شبکه بلاک چین می تواند به عملکرد خود ادامه دهد و تراکنش های معیوب یا غیر صادقانه را رد کند.

tahammol-khataye-bizans-chist-ak-2

نقش تحمل خطای بیزانسی در فناوری بلاک چین

فناوری بلاک چین به دلایل زیر به تحمل خطای بیزانسی متکی است:

  • BFT شبکه بلاک چین را به طور مداوم فعال نگه می دارد، حتی با وجود برخی گره های مخالف.
  • این شبکه را ایمن نگه می‌دارد و از سوء استفاده‌هایی که می‌تواند به صورت حمله 51 درصدی (یا حملات Sybil) یا هزینه مضاعف باشد، جلوگیری می‌کند.

محدودیت های تحمل گسل بیزانس

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

برخی از محدودیت های pBFT شامل موارد زیر است:

  • ارتباطات بالا: برای اینکه سیستم کارایی خود را حفظ کند، به ارتباط بیشتر بین گره ها نیاز دارد. این فرآیند زمان بر است و منجر به مشکلات مقیاس پذیری می شود.
  • مسائل مقیاس پذیری: pBFT با مقیاس پذیری مشکلاتی دارد، به خصوص با شبکه هایی که بسیار گسترده هستند.
  • امنیت پایین: pBFT مستعد حملات Sybil است، جایی که یک گره در شبکه وانمود می کند که 51٪ از گره های دیگر بر شبکه تسلط دارد و باعث سوء استفاده می شود.
tahammol-khataye-bizans-chist-ak-3

در اینجا چند بلاک چین وجود دارد که مکانیسم‌های تحمل خطای بیزانسی را ادغام می‌کنند.

1. بیت کوین

بیت کوین از طریق پروتکل اجماع اثبات کار، تحمل خطای بیزانسی را در شبکه خود گنجانده است. الگوریتم اجماع PoW بلاک چین، تمام گره‌های روی بلاک چین را موظف می‌کند تا ساختار داده، اندازه بلوک، مهر زمانی بلوک، هش هدر بلوک و اولین تراکنش روی هر داده را بررسی کنند. این فرآیند که هش داده نامیده می شود، از توان محاسباتی استفاده می کند.

2. اتریوم

پیش از این با استفاده از PoW، بلاک چین اتریوم به یک سیستم PoS تبدیل شده است که مشکلات بیزانسی آن را حل می کند. اعتبار سنجی های شبکه، توکن های اتر خود را به اشتراک می گذارند، و پروتکل اعتبار سنجی های صادق را برای پردازش تراکنش ها، اعتبارسنجی بلوک ها و رای دادن به سر یک زنجیره انتخاب می کند. این پروتکل سهامداران را وادار می کند که صادق باشند و حمله به شبکه را بسیار گران می کند.

3. EOS

بلاک چین EOSIO از طریق یک لایه ناهمزمان تحمل خطا (aBFT) و یک لایه اثبات سهام (DPoS) به اجماع دست می یابد. لایه aBFT هر بلوک تراکنش را تا زمانی که آخرین بلوک برگشت ناپذیر (LIB) باشد تایید می کند. لایه DPoS سپس LIB را به عنوان بلوک نهایی و غیر قابل برگشت تأیید می کند.

4. ریپل

ریپل از هیچ یک از مکانیسم های اجماع PoW یا PoS استفاده نمی کند. در عوض، از پروتکل اجماع XRP Ledger، یک مکانیسم اجماع بیزانسی مقاوم در برابر خطا استفاده می کند. اگر اعتبار سنجی های غیرقابل اعتماد کمتر از 20 درصد کل اعتبار سنجی ها باشد، بلاک چین به طور عادی به کار خود ادامه می دهد. این سیستم از هزینه مضاعف جلوگیری می کند و یکپارچگی بلاک چین را بهبود می بخشد.

5. کادنا

Kadena از مکانیزم اجماع ScalableBFT برای تایید بلوک ها استفاده می کند. بلاک چین سیستم PoW بیت کوین را با تغییر مکانیسم های اجماع چندگانه موازی غیرمتمرکز که انرژی کارآمد، مقیاس پذیر و ایمن هستند ترکیب می کند و خروجی بسیار بهبود یافته ای را نسبت به سیستم بیت کوین ارائه می دهد. این راه‌اندازی که “Chainweb” نام دارد، به Kadena اجازه می‌دهد تا حداکثر 480000 تراکنش در ثانیه (TPS) را با 20 زنجیره در حال اجرا به طور همزمان انجام دهد.

6. حد نصاب

مکانیسم اجماع برای سیستم رمزنگاری Quorum مکانیسم اجماع تحمل خطا بیزانس استانبول (IBFT) است. QuorumChain حقوق رای دادن را به مجموعه ای از گره ها ( اعتبار سنجی) واگذار می کند. یکی از گره‌ها به عنوان پیشنهاد دهنده تنظیم می‌شود تا تأیید بلوک را آغاز کند در حالی که گره‌های دیگر بلوک را تأیید می‌کنند. اگر بیش از 1/3 گره ها در استخر رفتار نادرست داشته باشند، بلوک درج نمی شود.

tahammol-khataye-bizans-chist-ak-4

آینده تحمل گسل بیزانس روشن است

تا زمانی که ارزهای دیجیتال و فناوری بلاک چین به وجود خود ادامه دهند، تحمل خطای بیزانسی و سایر مکانیسم‌های اجماع نیز باید وجود داشته باشند. با این حال، این مکانیسم ها احتمالاً به تکامل خود ادامه خواهند داد.

در ابتدا، اتریوم BFT را با استفاده از PoW یکپارچه کرد، اما اتریوم از PoW به PoS تغییر مکان داد و الگوریتم BFT خود را به روز کرد. به همین ترتیب، با گذشت زمان همچنان شاهد سیستم های جدیدتر و بهتر خواهید بود. به یاد داشته باشید، فضای کریپتو به طور مداوم در حال تکامل است.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *