Satoshi BrotherСвой человек на крипторынке
RU

Важная ошибка Ethereum (ETH) может быть наконец исправлена - U.Today

Последнее исправление Ethereum устраняет критическую ошибку кэша публичных ключей валидаторов, повышая безопасность перед обновлением Glamsterdam и снижая риск потенциальных атак.

Важная ошибка Ethereum (ETH) может быть наконец исправлена - U.Today

Исправление уязвимости в Ethereum

Один из клиентов консенсуса Ethereum внедрил исправление для уязвимости, связанной с кэшем публичных ключей валидаторов, согласно запросу на слияние на GitHub. Патч устраняет проблему, возникающую в результате форка Gloas, который может привести к тому, что некоторые узлы будут отклонять действительные подписи из-за ошибки в глобальном кэше публичных ключей. Gloas является частью уровня консенсуса предстоящего обновления Glamsterdam.

Описание проблемы

Проблема заключается в механизме, в котором клиент хранит публичные ключи валидаторов и их индексы в глобальном кэше. Технически, депозиты, которые уже были завершены, должны обеспечивать одних и тех же валидаторов на каждой цепочке, хотя на границе форка это может быть иначе. Нападающему необходимо иметь три ожидающих депозита непосредственно перед форком:

  • Первый — это крупное пополнение для существующего валидатора.
  • Другие два — новые ключи: A с правами строителя и B с обычными правами валидатора.

На канонической цепочке пополнение уменьшает баланс, поэтому A и B обрабатываются после форка. A становится строителем, а B получает следующий индекс валидатора.

Механизм атаки

На побочной цепочке нападающего валидатор с пополнением получает штраф до форка, и его депозит пропускается. Это приводит к тому, что A обрабатывается раньше, фактически занимая индекс B. Ошибочный кэш предполагал, что обе цепочки будут производить одних и тех же валидаторов и импортировал ключ A глобально. В результате на форке затронутые узлы отклонят все действительные подписи от B на канонической цепочке и отделятся.

Реалистично, атака несколько сложна, так как требует штрафа в нужный момент и побочной цепочки, поэтому маловероятно, что она произойдет случайно.

Решение проблемы

Согласно PR, исправление заключается в том, чтобы добавлять ключи в глобальный кэш публичных ключей только после завершения их эпохи активации. Новая структура HeadPubkeys также объединяет ключи из состояния головы и глобального кэша, чтобы узлы не пропускали ключи, если цепочка завершается без новых блоков.

Подтверждение того, имели ли другие клиенты консенсуса аналогичную проблему, еще предстоит получить. Другими словами, чем ближе обновление Glamsterdam, тем больше крайних случаев вокруг границы форка разработчики должны учесть.

На других языках: EnglishDeutschFrançaisItalianoEspañol

Редакционная политика и ИИ · Контакты