اختلال اتریوم در آستانه فیوساکا باگ کلاینت پرایزم را نمایان کرد
در روزهای منتهی به ارتقای فیوساکا (Fusaka)، شبکه اتریوم با یک اختلال مواجه شد که اگرچه برای کاربران عادی چندان مشهود نبود، اما برای توسعهدهندگان و اپراتورهای نود، یک هشدار جدی بود. حالا مشخص شده که این مشکل ریشه در باگی داشت که بهطور بیسروصدا و مدتها پیشتر وارد کد یکی از کلاینتهای مهم اتریوم شده بود.
این نقص فنی ابتدا در تستنتها ظاهر شده بود و یک ماه قبل از ارتقای فیوساکا فعال شده بود. این باگ به دلیل فعال نشدن شرایط خاص شناسایی نشد و تنها در زمان بحرانی خود را نشان داد. این حادثه دوباره اهمیت تنوع کلاینتها و محدودیتهای تستنتها را یادآوری کرد.
باگی قدیمی و اختلال در عملکرد پرایزم
تیم توسعهدهنده پرایزم (Prysm) تأیید کرد که اختلالی که در اوایل دسامبر، همزمان با آمادهسازی شبکه برای ارتقای فیوساکا رخ داد، ناشی از باگی بود که حدود یک ماه قبلتر وارد نسخه تستنت این کلاینت شده بود. ترنس تسائو (Terence Tsao)، یکی از توسعهدهندگان اتریوم، در گزارشی پس از وقوع این مشکل توضیح داد که این اختلال در تاریخ ۴ دسامبر (۱۳ آذر) باعث اختلال در اعتبارسنجی نودهای پرایزم در شبکه اصلی شد.
در این گزارش آمده است که نودهای پرایزم هنگام پردازش گواهی اعتبارسنجی که از نودهای ناهماهنگ دریافت میکردند، دچار فرسایش منابع شدند. این وضعیت باعث شد که پرایزم بهجای استفاده از وضعیت فعلی زنجیره، بلاکهای قدیمی اپوکها را دوباره اجرا کرده و محاسبات سنگین انتقال وضعیت را از ابتدا انجام دهد، که فشار زیادی به نودها وارد کرد و عملکرد آنها بهشدت کاهش یافت.
تحقیقات نشان میدهد که این باگ در درخواست تغییر شماره ۱۵۹۶۵ پرایزم (Prysm PR 15965) اضافه شده بود و حدود یک ماه پیش از حادثه روی تستنتها اجرا شده بود، اما بهدلیل فعال نشدن شرایط خاص، شناسایی نشده بود. این مشکل بهوضوح نشان داد که تستنتها اگرچه ابزار مفیدی برای شناسایی خطاها هستند، اما نمیتوانند تمام سناریوهای بحرانی را پوشش دهند.
در نتیجه این مشکل، شبکه برای بیش از ۴۲ اپوک با نرخ از دست رفتن اسلات حدود ۱۸.۵٪ مواجه شد و مشارکت ولیدیتورها به حدود ۷۵٪ کاهش یافت. برآوردها نشان میدهد که اعتبارسنجها در مجموع نزدیک به ۳۸۲ ETH از پاداشهای گواهیهای اعتبارسنجی را از دست دادند.
در ساعات اولیه، به اپراتورهای نود توصیه شد یک راهحل موقت را بهکار گیرند تا فشار از روی شبکه برداشته شود. همزمان، تیم توسعه پرایزم کار روی وصله نهایی را آغاز کرد و در نهایت نسخه اصلاحشده این کلاینت منتشر شد تا مشکل بهطور کامل برطرف شود.
اهمیت تنوع کلاینتها
توسعهدهندگان اتریوم معتقدند که اگر این اختلال به کلاینت غالب شبکه برخورد میکرد، پیامدها میتوانست بسیار جدیتر باشد. پرایزم، که توسط آفچین لبز (Offchain Labs) توسعه مییابد، در حال حاضر دومین کلاینت بزرگ لایه اجماع اتریوم با سهمی معادل ۱۷.۶٪ است.
این تنوع کلاینتها بود که مانع از آن شد که کاربران نهایی اختلال محسوس یا از دست رفتن نهاییسازی بلاکها را تجربه کنند. توسعهدهندگان هشدار دادهاند که اگر کلاینتی با سهم بیش از یکسوم شبکه دچار چنین باگی میشد، اتریوم ممکن بود با از دست رفتن موقت فاینالیتی و افزایش بلاکهای از دسترفته مواجه شود.
این حادثه، هرچند با رفع سریع مشکل همراه بود، بار دیگر توجهها را به لایتهاوس (Lighthouse) جلب کرد که در حال حاضر بیش از ۵۲٪ از سهم کلاینتهای اتریوم را در اختیار دارد. این مقدار، اگرچه نسبت به زمان حادثه کاهش یافته است، هنوز به حدی است که یک باگ جدی میتواند پیامدهای سیستمی برای کل شبکه داشته باشد.
این اتفاق دوباره بهوضوح نشان داد که پایداری اتریوم نهتنها به کیفیت کد بستگی دارد، بلکه به توزیع متوازن مسئولیت میان کلاینتها نیز وابسته است. این مسئله همچنان یکی از چالشهای مهم فنی شبکه بهشمار میرود.