توقف 25 ساعته شبکه کازموس هاب (Cosmos Hub) به وضوح نشان داد که غیرمتمرکز بودن یک بلاکچین به معنای در دسترس بودن و آنلاین بودن دائمی آن نیست. در 22 سپتامبر، کاربران متوجه شدند که تراکنشهای انتقال توکن ATOM به طور ناگهانی در وضعیت «در انتظار تأیید» گیر کردهاند؛ نه به دلیل از دست رفتن کلیدهای خصوصی، بلکه به دلیل توقف کامل تولید بلاک در ارتفاع 33,086,740. این رویداد پرده از مکانیزمهای پنهان اجماع در شبکههای عمومی برداشت و نشان داد که چگونه ولیدیتورها میتوانند برای جلوگیری از یک فاجعه، کل شبکه را متوقف کنند.
آنچه در این مطلب میخوانید
Toggle
حمله به نوترون و واکنش کازموس
چگونه 67 درصد شبکه، قوانین را تغییر دادند؟
امنیت (Safety) در برابر پویایی (Liveness)
درسهای تاریخ از بیتکوین تا سولانا
حمله به نوترون و واکنش کازموس
برای درک این رویداد، ابتدا باید یک سوتفاهم بزرگ را برطرف کنیم. شبکه کازموس هاب هرگز به طور مستقیم هک نشد. بحران در شبکهای دیگر به نام نوترون (Neutron) متولد شد.
در روز 22 سپتامبر، یک پروپوزال حاکمیتی مخرب به نام «AIATO» در شبکه نوترون به تصویب رسید. مهاجم باهوش این سناریو، از یک روزنه در اختیارات حاکمیتی سطح شبکه استفاده کرد. او با بهرهگیری از دستورات ممتازی که در چارچوب نرمافزاری wasmd وجود داشت، توانست مدیریت (Admin) قراردادهای هوشمند برنامههایی مانند Astroport و Drop را به آدرسهای تحت کنترل خود تغییر دهد.
این یک باگ کدی یا نقص در پروتکل نبود. به زبان ساده، قراردادهای هوشمند قفلهای امنیتی خود را داشتند، اما سیستم حاکمیتی نوترون حکم یک «شاهکلید» را داشت. مهاجم با در دست گرفتن کنترل نتایج حاکمیتی، این شاهکلید را تصاحب کرد و توانست داراییها را تخلیه کند. در ادامه، او حدود 1.7 میلیون توکن ATOM سرقتی را به شبکه کازموس هاب منتقل کرد تا از طریق نقدینگی بینزنجیرهای آنها را به فروش برساند. اینجا بود که پای کازموس به این بحران باز شد.
قدرت بازدارنده یکسومِ شبکه
برای جلوگیری از خروج بیشتر این توکنهای مسروقه، ولیدیتورهای (اعتبارسنجهای) کازموس هاب تصمیم به مداخله گرفتند. در حوالی ساعت 19:18، ولیدیتورهایی که در مجموع بیش از یکسوم (1/3) از کل قدرت رأی شبکه را در اختیار داشتند، فعالیت گرههای (Nodes) خود را متوقف کردند.
نتیجه این اقدام فوری و حیاتی بود: کازموس هاب دیگر نتوانست بلاک جدیدی بسازد. این اتفاق نشان داد که برای توقف یک بلاکچین، نیازی به فشردن یک دکمه توسط یک شرکت یا حتی برگزاری یک رأیگیری طولانیمدت روی زنجیره نیست. وقتی بخش کافی و موثری از ولیدیتورها تصمیم بگیرند از مشارکت در ایجاد اجماع دست بکشند، شبکه به طور خودکار از حرکت میایستد.
چگونه 67 درصد شبکه، قوانین را تغییر دادند؟
بخش شگفتانگیزتر این ماجرا، روند بازیابی شبکه بود. حدود 4 ساعت پس از توقف، ولیدیتورها به یک طرح جامع برای نجات رسیدند. مقرر شد یک «تغییر وضعیت یکباره» دقیقاً در همان ارتفاع بلاکی که شبکه متوقف شده بود، اعمال شود.
آزمایشگاه کازموس نسخه نرمافزاری جدیدی به نام Gaia v28.3.0 را بر اساس این توافق توسعه داد. وظیفه این آپدیت این بود که 1,227,121 توکن ATOM را از آدرس مهاجم کسر کرده و به یک کیف پول چندامضایی (متشکل از 6 عضو معتمد جامعه نظیر Nansen و Keplr) منتقل کند.
بامداد روز بعد، زمانی که ولیدیتورهای نصبکننده این آپدیت از مرز 67 درصد (دو سوم کل قدرت رأی) عبور کردند، شبکه هماهنگی لازم برای شروع مجدد را به دست آورد. در ساعت 12:00 روز 23 سپتامبر، شبکه ریاستارت شد و 6 دقیقه بعد، این تغییر وضعیت مستقیماً در بلاک 33,086,741 اعمال گردید. شبکه با قوانین جدید به زندگی بازگشت و این قوانین جدید، به عنوان تاریخچه رسمی و غیرقابلانکار کازموس هاب پذیرفته شد.
امنیت (Safety) در برابر پویایی (Liveness)
توقف کازموس ریشه در معماری اجماع تحمل خطای بیزانس (BFT) دارد. در این سیستم، برای تأیید نهایی یک بلاک به رأی موافقِ بیش از دوسوم ولیدیتورها نیاز است. وقتی این حد نصاب به دلیل خروج یکسوم از ولیدیتورها به دست نیاید، شبکه با یک انتخاب سیستماتیک روبرو میشود:
امنیت (Safety): شبکه ترجیح میدهد متوقف شود تا از ثبت دو تاریخچه متفاوت و متناقض توسط گرههای باقیمانده جلوگیری کند.
پویایی (Liveness): توانایی شبکه برای ادامه پردازش تراکنشهای جدید.
کازموس هاب در این رویداد، پویایی خود را فدای امنیت کرد. از دیدگاه سیستمهای توزیعشده، این یک باگ یا خرابی نیست؛ بلکه واکنشی دفاعی است. شبکه ترجیح میدهد تولید بلاک را متوقف کند تا اینکه بدون اجماع کافی، تراکنشهای جدید را با خطر ایجاد تناقض در دفتر کل به ثبت برساند.
درسهای تاریخ از بیتکوین تا سولانا
چالشهای مربوط به اجماع و توقف شبکهها رویدادهای بیسابقهای نیستند و هر شبکه رویکرد متفاوتی در برابر بحرانها داشته است:
بیتکوین (2013): به دلیل ناسازگاری پایگاههای داده در نسخههای مختلف کلاینت (LevelDB در برابر Berkeley DB)، شبکه دچار انشعاب شد و دو زنجیره موازی شکل گرفت. در نهایت، استخرهای استخراج بزرگ هماهنگ شدند تا به نسخه قدیمیتر بازگردند و شبکه را یکپارچه کنند.
اتریوم (2016): در جریان هک معروف The DAO، جامعه اتریوم تصمیم به مداخله مستقیم گرفت و با اجرای یک هاردفورک (Hard Fork) و تغییر وضعیت شبکه، داراییها را بازگرداند. مخالفت بخشی از شبکه با این تغییر قوانین، منجر به تولد اتریوم کلاسیک (ETC) شد.
سولانا (2021): هجوم گسترده تراکنشهای رباتیک باعث پر شدن حافظه ولیدیتورها شد. در این حالت، شبکه به دلیل ناتوانی گرهها در رسیدن به اجماع، پویایی (Liveness) خود را به مدت 17 ساعت از دست داد تا اینکه ولیدیتورها برای راهاندازی مجدد هماهنگ شدند.
قانون طلایی «کلیدهای شما نیست، پس دارایی شما نیست» برای حفظ امنیت شخصی صادق است و تضمین میکند که بدون امضای شما، کسی نمیتواند داراییتان را جابهجا کند. با این حال، حادثه کازموس مرز مهمی را روشن کرد: حاکمیت بر کلید خصوصی با قدرت اجماع شبکه تفاوت دارد. حتی اگر کلیدهای خود را در اختیار داشته باشید، توانایی شبکه برای پردازش تراکنشها و تعیین وضعیت نهایی داراییها، در گرو توافق جمعی ولیدیتورها و قوانینی است که اکثریت آنها میپذیرند. شبکههای عمومی ماشینهای غیرقابل توقفی نیستند، بلکه سیستمهای زنده و مبتنی بر قوانینی هستند که در زمان بحران نشان میدهند قدرت واقعی در دست کسانی است که ماشین اجماع را روشن نگه میدارند