از زمان آغاز به کار بیت کوین در سال 2009 به عنوان سیستم انتقال الکترونیکی پول همتا به همتا، بسیاری از رمزارز ها نیز به میان آمدند که هر کدام ساز و کار خاص خود را داشتند. اما المانی کلیدی در معماری بلاک چین تمامی رمزارز ها وجود دارد. در ادامه قرار است درباره مفهوم تحمل خطای بیزانس در این فضا توضیح دهیم.
فقط با چند استثنا، بلاک چین ها به طور کلی به گونه ای طراحی می شوند که نامتمرکز باشند و به شکل یک دفترکل دیجیتالی کار کنند که امکان استفاده از آن ها در یک شبکه ای توزیع شده از گره های کامپیوتری وجود داشته باشد.
با همین مفهوم، فناوری بلاک چین امکان ساخت سیستمی اقتصادی بدون نیاز به اعتماد سازی را فراهم کرد که در آن بدون نیاز به واسطه ها امکان انجام تراکنش های مالی قابل اعتماد و شفاف وجود دارد.
رمزارز ها به عنوان جایگزینی با ارزش برای سیستم های پرداخت و بانکداری سنتی شناخته می شوند که به شدت وابسته به اعتماد هستند.
درست مانند هر سیستم کامپیوتری توزیع شده دیگری، شرکت کنندگان یک شبکه رمزارز نیازمند این هستند که بر روی وضعیت کنونی بلاک چین به توافق برسند و این همان چیزی است که از آن با عنوان دستیابی به توافق یاد می کنیم. اما رسیدن به یک توافق در یک شبکه توزیع شده به شیوه ای که امن و موثر باشد، کار ساده ای نیست.
بنابراین چطور می شود شبکه ای توزیع شده از گره های کامپیوتری روی یک تصمیم مشخص توافق کنند؛ اگر برخی از گره ها در این شبکه تبعیت نکنند، چه می شود؟
این سوالی اساسی است که به آن مشکل ژنرال های بیزانس نیز می گویند و باعث شد تا مفهومی به نام تحمل خطای بیزانس به میان بیاید.
مشکل ژانرال های بیزانس چیست؟
در چند کلمه، مشکل ژانرال های بیزانس در سال 1982 به وجود آمد که در طی آن دو راهی منطقی به وجود می آید که بیانگر این است که چگونه گروهی از ژانرال های بیزانس ممکن است در هنگام تلاش برای هماهنگی برای حرکت بعدی، مشکلات ارتباطی داشته باشند.
در این دوراهی فرض می شود که هر ژنرال ارتش خود را داراست و هر گروه در موقعیت های مختلفی دور شهری که می خواهند به آن حمله کنند، واقع شده اند. ژنرال ها می بایست روی عقب نشینی یا حمله توافق کنند.
در صورتی که ژنرال ها به یک توافق برسند، این که تصمیم حمله یا عقب نشینی باشد، مهم نیست.
بنابراین، احتمالا موارد زیر نیاز است:
- هر ژنرال می بایست تصمیم بگیرد که حمله کند یا عقب نشینی کند (بله یا خیر)
- پس از این که تصمیم گرفته شد، نمی تواند تغییر کند.
- همه ژنرال ها روی یک تصمیم توافق کرده اند و آن را به طور همزمان اجرا می کنند.
مشکل ارتباطی گفته شده به این واقعیت مربوط می شوند که فقط یک ژنرال می تواند از طریق پیام رسانی با سایر ژنرال ها ارتباطی برقرار کند که از طریق پیک انجام می شود. اما چالش اصلی مشکل ژانرال های بیزانس این است که پیام ارسالی ممکن است با تاخیر برسد، از بین برود یا گم شود.
علاوه بر این، حتی اگر پیام با موفقیت برسد، یک یا چند ژنرال ممکن است به هر دلیلی مخرب عمل کنند و پیامی فریب دهنده برای دیگر ژنرال ها بفرستند که باعث شکست کامل می شود.
اگر این دوراهی را در فضای بلاک چین ها قرار دهیم، هر ژنرال در این شبکه یک گره است و گره ها می بایست روی وضعیت فعلی سیستم به توافق برسند. یا اگر بخواهیم به عبارت دیگری بگوییم، بخش عمده ای از اعضای شبکه می بایست روی یک موضوع واحد به توافق برسند تا مشکل در سیستم به وجود نیاید.
بنابراین، تنها راه دستیابی به توافق در این دسته از سیستم های توزیع شده این است که حداقل دو سوم یا بیشتر گره مورد اعتماد و راستگو در این شبکه داشته باشیم. این به این معناست که اگر اکثریت شبکه تصمیم بگیرد که مخرب عمل کند، سیستم در برابر شکست ها و حملات بدون قدرت می شود، مانند چیزی که حمله 51 درصد شاهد هستیم.
تحمل خطای بیزانس (BFT)
در چند کلمه، تحمل خطای بیزانس (Byzantine fault tolerance) بخشی از یک سیستم است که می تواند در برابر یک سری از شکست هایی که به دلیل مشکل ژنرال های بیزانس ممکن است به وجود بیاید، مقاومت کند. این به این معناست که سیستم تحمل خطای بیزانس می تواند در صورتی که برخی از گره ها مخرب عمل کنند یا دچار مشکل شوند، به کار خود ادامه دهد.
بیش از یک راهکار امکان پذیر برای مشکل ژنرال های بیزانس وجود دارد و بنابراین چمد روش هم برای ساخت سیستم های تحمل خطای بیزانس وجود دارد. به همین ترتیب روش های مختلف هم برای بلاک چین ها وجود دارد تا بتوانند به تحمل خطای بیزانس دست یابند و این ما را به سمت می برد که به آن الگوریتم های توافق می گویند.
الگوریتم های توافق بلاک چین
ما می توانیم الگوریتم توافقی به عنوان ساز و کار تعیین کنیم که شبکه بلاک چین از طریق آن به توافق دست یابد. رایج ترین الگوریتم، اثبات کار و اثبات سهام است. اما بگذارید با مثال بیت کوین پیش برویم.
در حالی که پروتکل بیت کوین از همان قوانین اصلی سیستم تبعیت می کند، الگوریتم توافق اثبات کار، الگوریتمی است که مشخص می کند که این قوانین چگونه اجرا شوند تا به توافق برسیم، برای مثال در روند احراز هویت و اعتبار سنجی تراکنش.
اگر چه مفهوم اثبات کار قدیمی تر از رمزارز هاست، ساتوشی ناکاموتو نسخه ای ویرایش شده از آن را به عنوان یک الگوریتم که امکان ساخت بیت کوین را به عنوان یک سیستم BFT فعالیت می کند، ساخت.
به یاد داشته باشید که الگوریتم اثبات کار 100 درصد امکان تحمل خطای بیزانس را ندارد ولی به خاطر پر هزینه بودن استخراج، خود را به عنوان یکی از ایمن ترین و قابل اعتماد ترین روش پیاده سازی شبکه های بلاک چین به اثبات رسانده است.
به همین خاطر، الگوریتم توافق اثبات کاری که توسط ساتوشی ناکاموتو ساخته شد به عنوان خلاقانه ترین راهکار برای خطای بیزانس به حساب می آید.
برای آگاهی از آخرین نوشته ها، خبر ها و تحلیل های کوتاه به کانال تلگرام پی98 بپیوندید.