В клиенте Ethereum обнаружили уязвимость перед Glamsterdam

В клиенте консенсуса Ethereum Lighthouse выявили уязвимость, позволяющую при определенных условиях нарушить проверку подписей валидаторов. Проблема связана с глобальным кэшем публичных ключей, который используется для сопоставления валидаторов с их индексами в сети. Ошибка могла проявиться при переходе на Gloas – обновление уровня консенсуса в составе Glamsterdam. Разработчики подготовили исправление в GitHub, однако на момент проверки запрос на его включение в код оставался открытым.
Как работает уязвимость в Ethereum
Для реализации описанной атаки необходимы три ожидающих обработки депозита непосредственно перед обновлением: крупное пополнение баланса существующего валидатора и два депозита с новыми публичными ключами. В основной цепочке пополнение расходует доступный лимит обработки депозитов, поэтому два других обрабатываются после перехода на Gloas. В альтернативной ветке злоумышленник может добиться иной последовательности обработки, если существующий валидатор подвергнется штрафу за нарушение правил консенсуса.
В результате один публичный ключ получает индекс, который в основной цепочке принадлежит другому валидатору. Из-за ошибки в глобальном кэше затронутые узлы могут использовать неверное соответствие ключа и индекса, отклонять действительные подписи и расходиться с основной цепочкой. По описанию разработчиков, реализация такого сценария требует точного совпадения нескольких условий, включая создание альтернативной ветки блокчейна.
Что изменит исправление перед Glamsterdam
Предложенное разработчиками исправление ограничивает добавление публичных ключей в глобальный кэш: теперь они должны попадать туда только после окончательного подтверждения соответствующего этапа допуска валидатора к активации. Дополнительная структура HeadPubkeys позволит объединять сведения из текущего состояния цепочки и глобального кэша, чтобы ключи оставались доступными даже при финализации без появления новых блоков.
Пока неизвестно, присутствует ли аналогичная ошибка в других клиентах консенсуса Ethereum. Обнаруженная проблема подчеркивает необходимость дополнительного тестирования механизмов обработки валидаторов перед активацией Glamsterdam в основной сети.
Материал подготовлен исключительно в ознакомительно-информационных целях и не является финансовым советом и рекомендацией.





