اغلب بلاک چین ها فعالیت خود را در قالب یک دفتر کل غیر متمرکز دیجیتالی، که توسط شبکه ای از کامپیوترهای توضیع شده پشتیبانی میشوند انجام میدهند.
وجود چنین تکنولوژیهایی میتوانند منجر به شکل گیری سیستمهای اقتصادی بدون نیاز به اعتماد شوند که بر خلاف سیستمهای مالی سنتی، عوامل واسطه را از تراکنشهای مالی حذف کرده است. از آنجایی که سسیستمهای بانکداری و پرداختی سنتی تا حد زیادی بر پایه اعتماد ساخته شدهاند، « ارزهای دیجیتال » به لطف بهرهگیری از فناوری بلاک چین، به عنوان یک جایگزین ابدی برای سیستمهای مالی سنتی به دنیا معرفی شده و مورد پذیرش قرار گرفتهاند.
اعضای موجود در شبکه ارزهای دیجیتال باید به طور منظم خود را با حالت فعلی بلاک چین تطبیق دهند. محققین بلاک چین این پدیده را « دستاورد اجماع » نامیدهاند. البته در نظر داشته باشید که به دست آوردن اجماع کاربردی و امن در سیستمهای غیر متمرکز کار آسانی نیست. شاید این سوال در ذهن ما نقش بندد که اگر چند گره ( نود ) در یک شبکه توضیع شده از نودهای کامپیوتری کارکرد درستی نداشته باشند یا از بین بروند، در این صورت کل شبکه چگونه بر سر یک تصمیم به توافق میرسند؟
مسئله ژنرال بیزانس در ارزهای دیجیتال
این موضوع اساسیترین سوال در مسئله ژنرال بیزانس (Byzantine Generals’ Problem ) است که منجر به تشکیل مفهوم تحمل خطای بیزانس (byzantine fault tolerance ) که به اختصار آن را BFT مینامند شد. مسئله ژنرال بیزانس در سال 1982 میلادی به یک معظل استدلالی تبدیل شده بود. این مسئله طی مشکلات ارتباطی احتمالی بین گروههای مختلف فرماندهان برای تصمیمگیری و توافق درباره حرکت بعدی، شکل جدیتری به خود گرفت.
تصور کنید فرماندهان مختلفی قصد حمله به یک شهر را دارند. هر فرمانده ارتش خود را در اختیار داشته و در موقعیت متفاوتی نسبت به شهر هدف قرار دارد. طبیعی است که فرماندهان مختلف باید برای تصمیمگیری درباره قدم بعدی و شروع حمله یا صلح با هم به تفاهم برسند. در این مرحله، اتخاذ یک تصمیم واحد توسط فرماندهان مختلف از اهمیت ویژهای برخوردار است. برای تحقق این مسئله، ابتدا هر فرمانده اقدام به رای گیری بر سر حمله یا صلح در منطقهی خود میکند. رای نهایی غیر قابل تغییر بوده و فرمانده نیز پس از رای گیری تصمیم خود را میگیرد. به این ترتیب تمام فرماندهان باید درباره تصمیمِ گرفته شده به توافق برسند و با هماهنگی کامل آن را اجرا کنند.
این را بخاطر داشته باشید که این فرماندهان تنها میتوانند از طریق پیغام با یکدیگر ارتباط برقرار کنند. در این صورت چالش اصلی در مسئله ژنرال بیزانس تاخیر، از بین رفتن یا گم شدن پیامها است. حتی اگر یک پیغام با موفقیت به مقصد رسیده باشد، ممکن است یک یا چند فرمانده به هر دلیلی اقدامات بدخواهانه انجام داده و برای گیج کردن سایر ژنرالها پیغامهای نادرست ارسال کنند. در این صورت همه چیز نابود خواهد شد.
اگر بخواهیم چنین چیزی را در فناوری بلاک چین شبیه سازی کنیم، هر گره ( نود ) در شبکه مانند یک ژنرال خواهد بود که این گرهها باید بر سر وضعیت کنونی سیستم به اتفاق نظر برسند. به عبارتی برای جلوگیری از نابودی در شبکه بلاک چین، بیشتر اعضای شبکه توضیع شده باید بر سر یک اقدام مشترک به توافق رسیده و آن را انجام دهند.
تحمل خطای بیزانس چیست؟
در حقیقت تحمل خطای بیزانس به ویژگی سیستمی گفته میشود که قادر است در برابر تمامی خرابیهایی که در مورد ژنرالهای بیزانسی رخ میدهد مقاومت کند. به عبارت دیگر تحمل خطای بیزانس، یک سیستم را قادر میسازد که با وجود کاستیها در عملکرد برخی گرههای موجود در شبکه، به راه خود ادامه داده و عملیات خود را انجام دهد. با توجه با الگوریتمهای اجماع مختلف، راههای مختلفی هم برای ساخت بلاک چینی با تحمل خطای بیزانس وجود دارد.
الگوریتمهای اجماع در واقع همان چیزی است که یک شبکه بلاک چین به واسطه آن به اجماع میرسد. الگوریتم اجماع موجود در شبکه ارز دیجیتال بیت کوین، گواهی اثبات کار ( Proof of work ) نامیده میشود که یکی از رایجترین الگوریتمهای اجماع در شبکههای مختلف بلاک چین میباشد.
با اینکه پروتکل بیت کوین قوانین اصلی بیت کوین را تعیین میکند، ولی با این حال این الگوریتم اجماع است که مشخص میکند این قوانین چگونه برای دستیابی به اجماع رعایت شوند. گواهی اثبات کار قبل از پیدایش بیت کوین هم وجود داشت، ولی ساتوشی ناکاموتو، خالق نابغه بیت کوین از نسخه اصلاح شده آن، در جهت خلق بیت کوین به عنوان سیستمی با تحمل خطای بیزانس بهره گرفت.