تصور کنید گروهی از ژنرالهای ارتش بیزانس، شهری قدرتمند را محاصره کردهاند. آنها در اردوگاههای مختلف در اطراف شهر مستقر شدهاند و برای پیروزی، باید یک تصمیم حیاتی بگیرند و آن را همزمان اجرا کنند: حمله یا عقبنشینی. اگر همه با هم حمله کنند، پیروز میشوند. اگر برخی حمله کنند و برخی دیگر نه، شکست آنها حتمی است.
اما یک مشکل بزرگ وجود دارد: تنها راه ارتباطی آنها از طریق پیامرسانهایی است که باید از قلمرو دشمن عبور کنند. چگونه میتوانند روی یک نقشه مشترک توافق کنند در حالی که نمیتوانند به پیامهای یکدیگر اعتماد کنند؟ شاید برخی از ژنرالها خائن باشند و عمداً پیامهای متناقضی بفرستند (به عدهای بگویند «حمله» و به عدهای دیگر «عقبنشینی»). یا بدتر از آن، پیامها ممکن است توسط دشمن دستکاری یا جعل شوند.
این داستان، بیان سادهای از «مسئله ژنرالهای بیزانس» است؛ یک معمای کلاسیک در علوم کامپیوتر. در این راهنما، با هم خواهیم دید که این مشکل دقیقاً چیست و چگونه فناوریهای نوآورانهای مانند بلاکچین، راهحلی هوشمندانه برای آن ارائه میدهند.
بیایید سناریوی ژنرالها را با دقت بیشتری بررسی کنیم. آنها برای تصمیمگیری بین «حمله» یا «عقبنشینی» باید به توافق برسند، اما در میانشان، یک یا چند «خائن» وجود دارد. یک ژنرال خائن فقط پیام اشتباه نمیفرستد؛ او ممکن است رفتاری کاملاً دلخواه و مخرب داشته باشد تا ژنرالهای وفادار را از رسیدن به توافق باز دارد. برای مثال، ممکن است به نیمی از ژنرالها پیام حمله و به نیمی دیگر پیام عقبنشینی بفرستد تا آشوب ایجاد کند.
شاید برایتان جالب باشد که بدانید این معما اولین بار در یک مقاله تحقیقاتی در سال ۱۹۸۲ توسط سه دانشمند کامپیوتر به نامهای لمپورت، شوستاک و پیز معرفی شد و اهمیت آن به قدری بود که ناسا از تحقیقاتشان حمایت مالی کرد. این نشان میدهد که ما با یک مشکل جدی و قدیمی در دنیای محاسبات روبرو هستیم.
در این شرایط، ژنرالهای وفادار دو هدف اصلی دارند:
این داستان فقط یک افسانه نظامی قدیمی نیست، بلکه نمایانگر یک مشکل اساسی در دنیای سیستمهای کامپیوتری مدرن است.
حالا بیایید این ایده را یک قدم جلوتر ببریم و داستان ژنرالها را به دنیای کامپیوترها و شبکههای توزیعشده بیاوریم. در این دنیا، هر ژنرال معادل یک کامپیوتر (که به آن گره یا node میگویند) در یک شبکه است. این گرهها باید بر سر یک وضعیت مشترک به توافق برسند، مثلاً صحت یک تراکنش مالی در یک شبکه ارز دیجیتال.
اینجاست که با مفهوم «خطای بیزانسی» (Byzantine Fault) روبرو میشویم. این خطا فقط یک نقص ساده نیست. خطای بیزانسی به هر نوع خرابی در سیستم اشاره دارد که در آن یک جزء معیوب میتواند رفتاری کاملاً دلخواه، غیرقابل پیشبینی و مخرب از خود نشان دهد و در عین حال وانمود کند که یک عضو صادق است. درست مانند ژنرال خائنی که میتواند هر دادهای را جعل کند، یک گره کامپیوتری خراب میتواند اطلاعات کاملاً متناقضی به سایر گرههای شبکه ارسال کند تا آنها را به اشتباه بیندازد.
دلایل بروز این خطاها در دنیای واقعی عبارتند از:
توانایی یک سیستم برای ادامه کار صحیح حتی در صورت وجود چنین خطاهای پیچیدهای، «تحمل خطای بیزانسی» (Byzantine Fault Tolerance – BFT) نامیده میشود. اهمیت این ویژگی آنقدر زیاد است که در سیستمهای حیاتی مانند نیروگاههای هستهای، سیستمهای کنترل موتور هواپیما و هر سیستمی که عملکردش به اطلاعات دریافتی از سنسورهای متعدد بستگی دارد، یک ضرورت مطلق به شمار میرود.
اما شاید بپرسید چرا همه سیستمها با این مشکل مواجه نیستند؟ پاسخ در نحوه طراحی آنها نهفته است.
مسئله ژنرالهای بیزانس فقط برای سیستمهای غیرمتمرکز به وجود میآید؛ سیستمهایی که مانند گروه ژنرالها، فاقد یک مرجع مرکزی قابل اعتماد برای تصمیمگیری نهایی هستند.
این وضعیت را با یک سیستم متمرکز مقایسه کنید. برای مثال، سیستم بانکی سنتی را در نظر بگیرید. بانک شما به عنوان یک مرجع مرکزی و قابل اعتماد عمل میکند. اگر شما پولی را انتقال دهید، بانک این تراکنش را ثبت کرده و «حقیقت» را (مثلاً موجودی جدید حساب شما) تعیین و اعلام میکند. بانک از انتشار اطلاعات نادرست جلوگیری کرده و همه به تصمیمات آن اعتماد میکنند.
در جدول زیر، این دو نوع سیستم با هم مقایسه شدهاند:
| ویژگی | سیستم متمرکز (مانند بانک) | سیستم غیرمتمرکز (مانند ژنرالها) |
| تصمیمگیری | یک مرجع واحد تصمیم میگیرد. | اعضا باید به توافق برسند. |
| اعتماد | اعتماد به مرجع مرکزی ضروری است. | نیازی به اعتماد به هیچ یک از اعضا نیست. |
| آسیبپذیری | در برابر فساد یا خرابی مرجع مرکزی آسیبپذیر است. | در برابر خطاهای بیزانسی (خیانت اعضا) آسیبپذیر است. |
مهم است بدانیم که سیستمهای متمرکز این معما را حل نمیکنند، بلکه با ایجاد یک مرجع واحد، به طور کلی از روبرو شدن با آن اجتناب میکنند. آنها کارایی را به بهای ایجاد یک نقطه شکست واحد به دست میآورند.
بنابراین، سیستمهای غیرمتمرکز برای جلوگیری از نقاط شکست واحد عالی هستند، اما به راهی هوشمندانه برای حل معمای ژنرالها نیاز دارند. اینجاست که بلاکچین وارد میشود.
بلاکچین یک راه حل درخشان برای مسئله ژنرالهای بیزانس است. اما چگونه به ژنرالهای ما کمک میکند؟ تصور کنید به جای پیامرسانهای نامطمئن، یک دفتر وقایع جنگی وجود دارد که هر دستوری در آن ثبت میشود و نسخهای از آن در دست هر ژنرال وفادار است. این دفتر عمومی و شفاف، فریبکاری را تقریباً غیرممکن میکند.
بیتکوین، به عنوان اولین کاربرد موفق بلاکچین، با استفاده از الگوریتمی به نام «اثبات کار» (Proof-of-Work) این مشکل را حل کرد. بیایید ببینیم این مکانیزم چگونه کار میکند:
اثبات کار یک راه حل قدرتمند بود، اما تنها راه حل ممکن نیست. روشهای دیگری نیز برای رسیدن به توافق در دنیای دیجیتال ابداع شدهاند.
دو جایگزین مهم، «اثبات سهام» (Proof-of-Stake – PoS) و «اثبات سهام وکالتی» (Delegated Proof-of-Stake – DPoS) هستند. در سیستم PoS، به جای رقابت برای حل معما، کاربرانی که مقداری از ارز آن شبکه را «سپردهگذاری» یا «استیک» کردهاند، برای تأیید تراکنشها انتخاب میشوند. اگر کاربری سعی در تقلب کند، سپرده خود را از دست میدهد که این نیز یک بازدارنده اقتصادی قوی است. DPoS این ایده را یک قدم فراتر میبرد و به کاربران اجازه میدهد به تعداد محدودی «نماینده» رأی دهند تا به جای آنها بلوکها را تأیید کنند. این روشها معمولاً انرژی بسیار کمتری مصرف میکنند و سرعت بالاتری دارند.
مسئله ژنرالهای بیزانس، چالش دستیابی به توافق در یک محیط غیرمتمرکز و غیرقابل اعتماد بود. ژنرالهای وفادار چگونه میتوانستند با وجود خائنهایی که میتوانستند هر دروغی بگویند، به یک استراتژی واحد و هماهنگ برسند؟
بلاکچین با طراحی یک سیستم هوشمندانه این معما را حل کرد. این فناوری به گروهی از افراد که به یکدیگر اعتماد ندارند، اجازه میدهد تا بر سر یک حقیقت واحد و مشترک به توافق برسند، بدون آنکه نیازی به یک فرمانده کل یا مرجع مرکزی (مانند بانک یا دولت) داشته باشند. خائنها بیاثر میشوند، زیرا دروغ گفتن و تقلب کردن در این سیستم به شدت پرهزینه و عملاً غیرممکن است. در نهایت، ژنرالهای وفادار میتوانند با اطمینان به دفتر وقایع مشترک خود نگاه کنند، دستور «حمله» را ببینند و با هماهنگی کامل، شهر را فتح کنند.
اهمیت این راهحل در کاربردهایی مانند پول دیجیتال (بیتکوین) به اوج خود میرسد. بیتکوین یک سیستم پولی قابل اعتماد و جهانی ایجاد کرده است که توسط هیچ نهاد مرکزی کنترل نمیشود و این موفقیت شگفتانگیز، مدیون حل زیبای معمای چند ده ساله ژنرالهای بیزانس است.
منبع: CoinTelegraph
مطالب هفت صبح کریپتو صرفاً با هدف اطلاعرسانی و آموزش در حوزه رمزارزها منتشر میشود و به هیچوجه توصیهای برای خرید، فروش یا سرمایهگذاری نیست. فعالیت در بازار ارزهای دیجیتال با ریسک همراه است و هر فرد باید پس از تحقیق و با پذیرش کامل مسئولیت تصمیمگیری کند.
بدون دیدگاه