Ethereum исправил уязвимость в правилах депозитов Glamsterdam
Разработчики Ethereum изменили правила депозитов Glamsterdam, чтобы средства, отправленные протоколами стейкинга новым валидаторам, не попадали на счета операторов узлов.
Спецификация изменилась 26 октября — спустя две недели после того, как уязвимость обнаружили и сообщили о ней на GitHub.
Проблема была в том, что при определённых условиях оператор узла мог перенаправить депозит, предназначенный для валидатора, на свой счёт строителя (builder). Это стало возможным из-за особенности конвертации депозитов в счета строителей при форке.
По старым правилам, если ожидающий регистрации депозит регистрировал строителя для ключа, все последующие депозиты для этого ключа пополняли счёт строителя, независимо от учётных данных для вывода средств. Оператор мог поставить в очередь депозит строителя для нового ключа с адреса, который контролировал. Если потом протокол стейкинга финансировал депозит валидатора для того же ключа и оба депозита оставались в ожидании на момент форка, ETH протокола зачислялись на баланс строителя оператора, который затем мог их вывести.
Исправление использует логику разделения депозитов строителей и валидаторов из EIP-8282 для очереди на момент форка. Теперь направление каждого ожидающего депозита определяют учётные данные для вывода, а не публичный ключ.
Перед форком клиентские команды должны внедрить это правило. Изменения в Teku и Lodestar пока рассматривают. Если клиенты достигнут форка и будут применять разные правила к одной очереди, они вычислят разные балансы и не смогут согласовать состояние цепочки.
Уязвимость была обнаружена 12 октября, что на 14 дней раньше, чем указано в первоначальных сообщениях.
Собрано из 2 источников
- coindoo.comEthereum Nearly Let Node Operators Grab Staked ETH (Coindoo)
- ForkLogРазработчики Ethereum устранили ошибку с депозитами валидаторов перед Glamsterdam