5 марта активация хардфорка Pectra на тестнете Sepolia столкнулась с серьезной проблемой, когда один из злоумышленников использовал уязвимость в обновлении, усугубив инцидент. Мариус ван дер Вейден, разработчик Ethereum, сообщил, что после развертывания обновления клиент Geth начал генерировать пустые блоки из-за сбоя в генерировании события депозитным контрактом. Это произошло из-за отправленной тестовой транзакции для проверки функции снятия средств.
Разработчики быстро создали патч и развернули его, но вскоре снова начались проблемы с пустыми блоками. Исследования показали, что причина кроется в проблемной транзакции, отправленной с нового счета. Атакующий использовал пограничный случай, связанный с нулевыми переводами в стандарте ERC-20, что привело к сбою.
Ван дер Вейден отметил, что изначально было решено, что ошибка вызвана действием доверенного валидатора. Однако позже оказалось, что транзакция была проведена с недавно пополненного счета. Злоумышленник использовал уязвимость для того, чтобы снова вызвать сбой.
Чтобы предотвратить дальнейшую атаку, команда Ethereum приняла решение развернуть частное исправление, отфильтровав все транзакции, взаимодействующие с депозитным контрактом. Исправление было внедрено на 10% нод сети, что позволило стабилизировать ситуацию и продолжить работу тестнета.
По словам ван дер Вейдена, эта проблема возникла только на тестнете Sepolia из-за использования депозитного контракта с токен-замком, в отличие от основной сети Ethereum. Важно, что финализация не была потеряна, и разработчики продолжат работу над исправлением. Ожидается, что хардфорк Pectra будет активирован в мейннете Ethereum в начале апреля.
Добавить комментарий