Долгожданное обновление Ethereumдо Pectra столкнулось с проблемами в тестовой сети Sepolia после уязвимости, приведшей к майнингу пустых блоков. Обновление, развернутое 5 марта, столкнулось с проблемами несколько часов спустя, когда разработчики заметили сообщения об ошибках на своем узле geth.
Согласно подробному отчету разработчика Ethereum Мариуса ван дер Вийдена, команда обнаружила неожиданное поведение в контракте на trac , которое произошло в тестовой сети около 7:30 UTC в прошлую среду. Вместо ожидаемого события внесения депозита контракт trac некорректное событие перевода.
« Вскоре после активации хардфорка мы попросили Джима Макдональда отправить депозит для тестирования функции вывода средств, запускаемой исполнением транзакции, которая была добавлена в Pectra. Затем мы увидели сообщения об ошибках на нашем узле geth и начали замечать, что добывается много пустых блоков », — объяснил ван дер Вийден.
Сообщение об ошибке, как сообщается, гласило: «Невозможно разобрать данные депозита: неверная длина депозита: требуется 576, имеется 32». Это означало, что был выполнен неожиданный перевод токенов ERC-20, защищенный токенамиtracдепозита, что нарушило ожидаемое поведение блокчейна.
Неизвестный злоумышленник использует упущенный крайний случай
Вийден заявил, что разработчики оперативно внедрили исправление, но упущенный из виду частный случай позволил неизвестному злоумышленнику воспользоваться системой. Злоумышленник отправил перевод в нулевом количестве токенов на адрес депозита и сумел снова вызвать ту же ошибку, что привело к продолжению майнинга пустых блоков.
« trac о внесении депозита и убедились, что никто не может активировать функцию внесения депозита (поскольку она защищена токенами, и мы выдавали токены только доверенным лицам для Sepolia). Однако мы упустили один частный случай в спецификации ERC20 », — отметил разработчик.
Первоначально разработчики подозревали, что ошибка произошла из-за доверенного валидатора , но позже поняли, что транзакция была совершена с нового счета, пополненного через кран. Ethereum приступила к координации внедрения исправления без разделения цепочки.
Вийден заявил, что поспешный релиз мог привести к фрагментации сети, поскольку узлы, которые не были обновлены, не смогли бы подключиться к исправленной цепочке. После предотвращения кризиса они запланировали совместное развертывание на 14:00 UTC, что дало командам время подготовиться.
Разработчики обнаружили уязвимость после дополнительного расследования: стандарт ERC-20 не запрещает переводы нулевых токенов. Это означает, что любой, независимо от количества имеющихся у него токенов, мог отправить перевод нулевых токенов. Именно это и вызвало событие пополнения счета.
За три с половиной часа до скоординированного исправления, как описал разработчик, Sepolia якобы произвела «много» пустых блоков. Чтобы временно восстановить нормальную работу, разработчики удалили транзакции, вызывавшие уязвимость, заменив их более прибыльными.
Разработчики внедрили закрытое исправление для сдерживания атаки
Команда Ethereumвнедрила закрытое исправление, которое отфильтровывало транзакции, взаимодействующие сtracдепозита. Учитывая подозрения, что злоумышленник отслеживал чаты разработчиков, они решили не публиковать исправление сразу.
« Исправление заключается только в фильтрации транзакций, которые напрямую вызывают контракт на внесение депозита trac Если бы мы обнародовали это исправление, злоумышленник смог бы обойти наши меры защиты, вызвав контракт trac другого контракта trac Эти внутренние вызовы все равно бы запускали событие, но их было бы нелегко отфильтровать во время создания блока », — сообщил .
После обновления примерно 10% узлов сети снова начали появляться полные блоки обновлений. Это позволило цепочке функционировать, пока готовилось полное обновление для развертывания.
В 14:00 UTC все узлы обновились до новой версии, содержащей окончательное исправление. Через несколько блоков транзакция злоумышленника была успешно добыта, что подтвердило внедрение патча всеми операторами узлов.dent не затронул основную сеть Ethereum, поскольку проблема касалась только контракта Sepolia сtracдоступа к токенам.
Это затронуло все узлы, поскольку возникло противоречие между спецификацией и реализациейtracо депозите на Sepolia
– МариусВанДерВейден (@vdWijden) 9 марта 2025 г.
Когда пользователь социальных сетей X спросил Вийдена, «получил ли злоумышленник что-либо взамен», воспользовавшись уязвимостью тестовой сети, тот ответил: « Нет, он ничего от этого не выиграл ».
Борьба за цену Ethereum продолжается: рыночная активность снижается
Ethereum по-прежнему демонстрирует признаки слабости, потеряв более 10% своей стоимости за последнюю неделю. Вторая по величине криптовалюта по рыночной капитализации колеблется около отметки в 2000 долларов, трехмесячного минимума уровня поддержки, и аналитики прогнозируют дальнейшее падение.
Согласно рыночным техническим индикаторам, ETH продолжает нисходящий тренд, при этом формируются более низкие максимумы и минимумы, а также медвежьи скользящие средние. Если Ethereum не сможет удержаться на уровне 2000 долларов, аналитики предупреждают, что следующие важные уровни поддержки находятся в диапазоне от 1800 до 1700 долларов.
Хотя индекс относительной силы (RSI) на уровне 30,45 указывает на потенциальный краткосрочный отскок, уровень сопротивления в 2200 долларов — это уровень, который монета не смогла преодолеть за последние 24 часа.

