Блокчейн-сеть Ethereum столкнулась с серьезными техническими проблемами во время внедрения масштабного обновления Pectra, которое должно было состояться в тестовой сети Sepolia 5 марта 2025 года. Неизвестный злоумышленник обнаружил уязвимость, что заставило разработчиков срочно принять «приватное исправление» для стабилизации работы сети.
Об этом сообщает ProIT
Сразу после запуска в сети возникли ошибки в geth-узлах – нодах, которые используют один из самых популярных клиентов Geth (Go Ethereum). Это привело к увеличению количества пустых блоков, добываемых майнерами.
Причины ошибок в обновлении
По словам одного из разработчиков Ethereum, Мариуса ван дер Вейдена, проблема возникла из-за того, что контракт депозита отправлял непредсказуемое событие — перевод вместо депозита. Это приводило к отклонению транзакций узлами и генерации лишь пустых блоков. Обнаруженная ошибка была связана с EIP-6110 (Ethereum Improvement Proposal 6110), который упрощает процедуру депозитов валидаторов Ethereum, и требовал унифицированной обработки всех логов контракта депозита.
Команда geth выпустила исправление, которое игнорировало все ошибочные логи, но не учла особый случай, связанный со стандартом ERC-20. Этот стандарт не запрещает переводы нулевого количества токенов, что позволяет пользователям без токенов отправлять транзакции. Неизвестный злоумышленник воспользовался этим, многократно отправляя нулевые переводы на контракт депозита, что привело к повторяющимся ошибкам и добыче пустых блоков.
Исправление проблемы и дальнейшие шаги
Добыча пустых блоков негативно сказывается на эффективности сети, поскольку эти блоки не содержат полезных транзакций, а лишь заголовок и служебную информацию. Это приводит к затратам ресурсов на их обработку без фактического прогресса в выполнении транзакций, а также увеличивает задержку подтверждения. Кроме того, майнеры и валидаторы теряют комиссионные сборы.
Разработчики выяснили, что источником проблемы стал новый аккаунт, пополненный через публичный кран. Для остановки атаки было развернуто «приватное исправление» для выбранных DevOps-узлов, которые контролировали около 10% сети. После внедрения исправления узлы восстановили производство нормальных заполненных блоков, и цепочка начала функционировать без ошибок. Проблема затронула лишь тестовую сеть Sepolia.
В связи с обнаруженной уязвимостью обновление Pectra было отложено для дальнейшего тестирования и устранения возможных недостатков. Pectra нацелено на улучшение стейкинга ETH, масштабируемости проектов второго уровня и общую пропускную способность сети. Обновление включает 11 предложений по улучшению сети Ethereum (EIP) и является первым крупным обновлением после Dencun, которое было запущено в марте 2024 года.
Изначально разработчики планировали запустить Pectra в основной сети Ethereum 8 апреля, при условии успешного обновления тестовых сетей Holesky и Sepolia. Однако первый запуск Holesky 24 февраля также столкнулся с техническими проблемами.