
Разработчики Ethereum устранили ошибку с депозитами валидаторов перед Glamsterdam
26 октября разработчики Ethereum приняли исправление в спецификации предстоящего обновления Glamsterdam. Ошибка в правилах обработки депозитов могла привести к зачислению ETH, предназначенных для стейкинга, на баланс сборщиков блоков вместо валидаторов после активации апдейта.
Проблему обнаружили 12 октября. Она касалась обработки депозитов в момент перехода сети на новые правила консенсуса. При определенных условиях оператор инфраструктуры получил бы возможность вывести средства, внесенные сторонним стейкинг-протоколом.
Как средства могли попасть не тому получателю
Glamsterdam предусматривает встроенное в протокол разделение ролей валидаторов и сборщиков блоков — enshrined proposer-builder separation (ePBS). При ePBS валидатор отвечает за предложение блока, а сборщик формирует его содержимое, отбирая и упорядочивая транзакции. После обновления обе роли смогут использовать отдельные механизмы регистрации и внесения депозитов.
Проблема заключалась в обработке средств, которые находились в очереди на зачисление во время перехода на новые правила. По прежней версии спецификации, если депозит сначала регистрировал сборщика блоков, последующие поступления с тем же публичным ключом зачислялись на его баланс независимо от назначения активов.
Возможный сценарий выглядел следующим образом: оператор сначала регистрировал сборщика блоков с собственным адресом вывода средств, затем стейкинг-протокол отправлял депозит для создания валидатора с тем же публичным ключом. Если оба перевода оставались в очереди на момент обновления, средства протокола могли попасть на баланс сборщика. В таком случае оператор получал возможность вывести чужие ETH.
При этом сам валидатор не создавался. Это могло нарушить работу механизмов подтверждения депозитов, учета средств и компенсации убытков.
Обнаруживший проблему разработчик под псевдонимом avsetsin указал, что потенциально затронуты схемы стейкинга, в которых один участник финансирует валидатора, а другой управляет его ключами. Однако анализ отдельных протоколов носил предварительный характер и не подтверждал наличие уязвимостей в их действующих контрактах.
Исправление сначала отклонили
Первоначальное предложение опубликовали 12 октября. Разработчик предложил разделять депозиты валидаторов и сборщиков по учетным данным для вывода средств. В таком случае поступления, предназначенные валидаторам, сохраняются в соответствующей очереди, даже если сборщик использует тот же публичный ключ. Его депозит обрабатывается отдельно.
19 октября сопровождающий спецификацию Ethereum Джастин Тралья закрыл предложение. Он объяснил решение недостаточной поддержкой изменения со стороны команд клиентского ПО. Однако позднее вопрос вернули на рассмотрение.
22 октября разработчики отложили активацию Glamsterdam в тестовой сети Hoodi из-за необходимости дополнительно проверить влияние EIP-8037 на существующие смарт-контракты. На фоне изменения графика они вернулись к обсуждению исправления депозитов.
23 октября один из разработчиков клиента Prysm, известный под псевдонимом potuz, поддержал предложенный подход, но попросил дополнить набор тестов. После их добавления разработчик под ником Lodestar подтвердил успешное прохождение испытаний и сообщил, что дополнительные проверки не выявили непредвиденных побочных эффектов.
26 октября исправление объединили с основной веткой спецификации Ethereum. Обсуждение ошибки закрыли.
Когда состоится Glamsterdam
Glamsterdam — следующее крупное обновление Ethereum, направленное на увеличение пропускной способности сети. Помимо разделения ролей валидаторов и сборщиков, оно предусматривает списки доступа к данным на уровне блоков и изменения стоимости вычислительных операций.
6 октября обновление активировали в тестовой сети Sepolia. Следующим этапом должны были стать испытания на Hoodi с увеличением лимита газа до 200 млн единиц на блок. Однако активацию, назначенную на 26 октября, отложили. Новую дату разработчики пока не объявили.
Напомним, в августе Ethereum Foundation предупреждала, что на фоне новых правил расчета газа могут произойти сбои в криптокошельках.