• Reth внесла исправление корня состояния через pull request #28264 3 ноября в 21:00 UTC.

• Reth выпустила исправление в версии v2.10.0 и присвоила ему высокий приоритет для узлов, формирующих payload, и узлов, которые этого не делают.

• Base выпустила версию узла v1.5.3, устранив риск остановки валидаторов из-за некорректного корня состояния.

Reth v2.10.0 содержит исправление высокого приоритета

Reth выпустила исправление высокого приоритета для ошибки, из-за которой в некоторых случаях узел блокчейна мог получить неверный корень состояния — единственный хеш, суммирующий всё состояние цепочки. К четвергу Base предоставила операторам собственный исправленный выпуск узла. Корень состояния позволяет цепочке на базе Ethereum подтвердить корректность своих данных: если клиент вычисляет его неверно, он расходится с другими узлами, а работающий на нём валидатор может предложить или подтвердить блоки, которые остальная сеть отвергнет. Клиенты исполнения — это программный слой, который обрабатывает транзакции и отслеживает балансы, поэтому ошибка вычислений в нём затрагивает самый нижний уровень всего стека. Исправление вошло в версию v2.10.0, и сопровождающие оценили обновление как имеющее высокий приоритет для всех типов узлов — как создающих блоки, так и только проверяющих их. Поэтому операторам любого типа не предлагали ждать планового обновления. Изменение было внесено через pull request #28264, принятый 3 ноября в 21:00 UTC; отметки времени слияния и уведомления Base указывают, что между исправлением и публичным оповещением прошло около 43 часов. Base обнаружила ошибку 4 ноября и в тот же день исправила все свои узлы-сборщики блоков — машины, которые формируют новые блоки. Затем она направила операторов к собственному выпуску узла v1.5.3, который исключает остановку валидаторов Base из-за некорректного корня состояния, и сообщила, что для его установки синхронизация заново не требуется. Base работает на OP Stack и использует op-reth — сборку Reth для OP Stack, где и проявился описанный инцидент. Важны обе части этой инструкции: обновление устраняет неисправность, а отсутствие необходимости в повторной синхронизации сводит затраты на установку почти к нулю даже для операторов с высокой нагрузкой.

Base подтверждает корень состояния, DeFi принимает меры предосторожности

В уведомлении о статусе Base, опубликованном в четверг, содержались сразу два послания: заверения для пользователей и инструкции для операторов. Сначала сеть сообщила, что пересчитала корень состояния и подтвердила его корректность. «Мы проверили, что текущий корень состояния корректен и пользователи не пострадали», — говорилось в уведомлении. Эта фраза была призвана пресечь распространение FUD вокруг инцидента. В подтверждение своих слов Base сослалась на архитектуру: система доказательств Base сверяет каждый корень состояния с отдельной реализацией. Поэтому реальное несоответствие было бы обнаружено, а именно эта независимая проверка служит ключевым основанием для заверений, что всё в порядке. Далее Base вновь призвала перейти на версию v1.5.3 и подтвердила, что повторная синхронизация не требуется. Реакция распространилась за пределы самой сети. Frax Finance сообщила, что LayerZero «в качестве меры предосторожности временно приостановила некоторые маршруты между сетями и вскоре должна возобновить их работу», связав этот шаг с сообщениями об инциденте в op-reth и заявив, что ни её активы, ни смарт-контракты не пострадали. LayerZero перемещает активы между сетями, поэтому пауза ненадолго остановила перевод токенов по этим маршрутам. Gauntlet, управляющая рисками, ограничила новые депозиты в своих хранилищах V1, оставив вывод средств открытым, приостановила размещение средств и начала сокращать вложения в активы, связанные мостом LayerZero. Компания заявила, что ей неизвестно о каких-либо сообщениях об эксплойте; публикация о принятых мерах позднее была удалена. Ограничение депозитов при сохранении возможности вывода средств — стандартная мера для риск-менеджеров, которые пока не могут полностью смоделировать работу системы. В пересказе публикаций Blockaid, размещённом в новостной ленте криптобиржи, ошибка была описана как ошибка вычислений внутри нод, а не атака; сообщалось, что об убытках пользователей ничего неизвестно, и предупреждалось, что клиенты, всё ещё использующие старый код, могут зависнуть или выдавать некорректные доказательства состояния. Меры предосторожности были приняты спустя более шести месяцев после эксплойта моста rsETH на сумму 292 миллиона долларов в Kelp DAO — атаки, которую LayerZero приписала северокорейской группе Lazarus. Ничто не связывает ошибку Reth с каким-либо эксплойтом.

Этот эпизод стал испытанием на прочность для системы, зависящей от единственного клиента. Base, одна из самых загруженных сетей второго уровня, полагается на один клиент на Rust для выполнения транзакций, и ошибка на этом уровне всего за несколько часов создала риски для операторов мостов и риск-менеджеров, хотя подтверждённых эксплойтов не было. Архитектура выдержала испытание: независимый пересчёт системой доказательств объясняет, почему пользователи не пострадали. А поскольку исправление вышло в виде новой версии клиента, а не форка сети, для применения v1.5.3 повторная синхронизация не потребовалась. Остальное делают примечания к выпуску: в них указано, что именно изменилось, а приоритет обновления для всех типов операторов обозначен как высокий. Главная цифра в этой истории — 43 часа: столько прошло между включением исправления в вышестоящий код и публикацией уведомления, призывавшего операторов перейти на новую версию.