بروز رسانی Pectra اتریوم در شبکه آزمایشی Sepolia هدف حمله یک فرد ناشناس قرار گرفت: گزارش

یک حملهکننده ناشناخته باعث شد تا توسعهدهندگان اتریوم یک "رفع خصوصی" ارائه دهند در حالی که شبکه با مشکلات فنی در طول بروزرسانی Pectra در شبکه آزمایشی Sepolia مواجه بود.
در گزارشی پس از وقوع حادثه، توسعهدهنده اتریوم، ماریوس وان در ویدن، فاش کرد که حملهکننده از یک "حالت خاص" نادیدهگرفته شده سوءاستفاده کرده و با ارسال انتقالهای صفر توکن به قرارداد واریز، خطاها را به طور مکرر تحریک کرده است که طرح از پیش آسیبدیده را پیچیدهتر کرد.
چه اتفاقی افتاد؟
در ۵ مارس، بروزرسانی Pectra در Sepolia به صورت زنده انجام شد، اما به محض اینکه این اتفاق افتاد، توسعهدهندگان شروع به دیدن پیامهای خطا بر روی گرههای geth خود کردند و در کنار آن، افزایش بلوکهای خالی که استخراج میشدند نیز وجود داشت.
به گفته وان در ویدن، مشکل از آنجا ناشی میشد که قرارداد واریز یک رویداد غیرمنتظره ایجاد کرد—یک رویداد انتقال به جای رویداد واریز مورد نیاز—که منجر به رد تراکنشها و تولید فقط بلوکهای خالی شد.
این باگ به EIP-6110 مربوط میشد که نیاز داشت تا تمام لاگهای قرارداد واریز به صورت یکنواخت پردازش شوند.
تیم geth یک رفع منتشر کرد که "تمام لاگهای اشتباه آمده از قرارداد واریز را نادیده میگرفت"، اما توسعهدهندگان ظاهراً یک حالت خاص در استاندارد ERC-20 را نادیده گرفتند.
وان در ویدن توضیح داد: "استاندارد ERC20 انتقال صفر توکن را منع نمیکند، این به هر کسی اجازه میدهد (حتی اگر هیچ توکنی نداشته باشد) ۰ توکن را به آدرس دیگری منتقل کند که یک رویداد را ایجاد خواهد کرد." او اضافه کرد که یک "حملهکننده" از این سوءاستفاده کرده و به طور مکرر انتقالهای صفر توکن را به قرارداد واریز ارسال کرده است.
این باعث شد که همان خطا تحریک شود و شبکه به استخراج بلوکهای خالی ادامه دهد.
در ابتدا، توسعهدهندگان به یک اعتبارسنج معتبر مشکوک شدند که اشتباهی کرده است، اما در تحقیقات، مساله را به یک حساب جدید تأمین مالی شده از یک faucet عمومی ردیابی کردند.
برای متوقف کردن حمله، توسعهدهندگان نیاز به فیلتر کردن تراکنشهایی داشتند که با قرارداد واریز تعامل داشتند. با این حال، آنها مشکوک بودند که حملهکننده聊天های آنها را زیر نظر دارد، که باعث شد آنها یک "رفع خصوصی" برای انتخاب گرههای DevOps که حدود ۱۰٪ از شبکه را کنترل میکنند، منتشر کنند.
پس از اینکه رفع منتشر شد، گرهها دوباره شروع به تولید بلوکهای کامل کردند و به زنجیره اجازه دادند تا به طور عادی عمل کند تا ساعت ۱۴:۰۰ UTC. چند بلوک بعد، تراکنش حملهکننده به طور موفقیتآمیز استخراج شد و تأیید کرد که تمام اپراتورهای گره بهروزرسانی شدهاند.
علیرغم اختلالات، اتریوم "هرگز نهاییسازی را از دست نداد" و مشکل محدود به Sepolia بود، زیرا قرارداد واریز محدود شده به توکن آن با قرارداد واریز شبکه اصلی اتریوم متفاوت بود، به گفته وان در ویدن.
با این حال، توسعهدهندگان تصمیم گرفتند که بروزرسانی Pectra را برای تست و اشکالزدایی بیشتر به تعویق بیندازند.
بروزرسانی Pectra اتریوم چیست؟
شاخه Pectra برای ارتقاء استیکینگ ETH، بهبود مقیاسپذیری لایه ۲ و گسترش ظرفیت شبکه طراحی شده است. این نشاندهنده معرفی ۱۱ پیشنهاد بهبود اتریوم (EIP) است و اولین بروزرسانی بزرگ از زمان Dencun است که در مارس ۲۰۲۴ انجام شد.
همانطور که پیشتر توسط crypto.news گزارش شده بود، توسعهدهندگان برنامهریزی کرده بودند که Pectra را تا ۸ آوریل بر روی شبکه اصلی منتشر کنند، مشروط به اینکه هر دو شبکه آزمایشی Holesky و Sepolia بهطور موفقیتآمیز بروزرسانیهای خود را تکمیل کنند.
بروزرسانی ابتدا در شبکه آزمایشی Holesky در ۲۴ فوریه پیادهسازی شد، جایی که آن نیز با مشکلات فنی مواجه شد که مانع از نهاییسازی شد.