Уровень консенсуса Ethereum недавно испытал заметное разрушение после того, как ошибка программного обеспечения в клиенте Prysm привела к тому, что валидаторы пропустили значительные вознаграждения. По данным команды разработчиков Prysm из Offchain Labs, валидаторы в совокупности потеряли примерно 382 ETH, стоимостью более 1 миллиона долларов, после того как проблема возникла вскоре после обновления сети Fusaka.

Инцидент был подробно описан в официальном послесловии под названием “Инцидент Prysm на основной сети Fusaka”, в котором объяснялось, как событие исчерпания ресурсов повлияло на почти все узлы маяков Prysm. В результате большое количество блоков и аттестаций было пропущено в критический период активности сети.

Что вызвало сбой Prysm?

Offchain Labs объяснила, что проблема возникла 4 декабря, когда ранее введенная ошибка программного обеспечения начала влиять на производительность валидаторов. Ошибка вызвала задержки в запросах валидаторов, что, в свою очередь, помешало узлам Prysm обрабатывать аттестации и предлагать блоки вовремя.

В частности, узлы маяков Prysm начали получать аттестации от сверстников, которые, вероятно, были не синхронизированы с остальной сетью. Эти аттестации ссылались на корень блока из предыдущей эпохи, что делало их недействительными по обычным правилам консенсуса.

Как описал Prysm:

> “Узлы маяков Prysm получили аттестации от узлов, которые, возможно, были не синхронизированы с сетью. Эти аттестации ссылались на корень блока из предыдущей эпохи.”

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

Масштаб разрушений

Влияние ошибки было значительным, но контролируемым. Инцидент привел к 41 пропущенной эпохе, во время которых было пропущено 248 блоков из 1,344 доступных слотов. Это привело к 18.5% пропущенной ставки слотов во время сбоя.

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

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

Исправления и профилактические меры

Хотя была развернута временная мера для снижения немедленного воздействия, Prysm с тех пор реализовал постоянные исправления. Эти изменения сосредоточены на улучшении логики валидации аттестаций клиента, чтобы гарантировать, что несинхронизированные аттестации обрабатываются более безопасно и не приводят к широкомасштабным сбоям валидаторов.

Offchain Labs заявила, что эти изменения предназначены для предотвращения подобных сбоев в будущем, даже в условиях высокой нагрузки или редких случаев.

Разнообразие клиентов снова в центре внимания

Помимо прямых финансовых потерь, инцидент вновь разжег давние опасения по поводу концентрации клиентов Ethereum и опасностей программного монокультуры.

Offchain Labs подчеркнула, что результат мог быть гораздо хуже, если бы Prysm представлял собой большую долю набора валидаторов Ethereum. Они предупредили, что доминирование клиентов выше определенных порогов может вводить системные риски:

Клиент, контролирующий более одной трети сети, может вызвать временную потерю финальности, если он выйдет из строя.

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

К счастью, текущее разнообразие клиентов Ethereum помогло сдержать ущерб.

Текущая распределенность клиентов консенсуса Ethereum

Согласно данным Miga Labs, клиенты консенсуса Ethereum в настоящее время распределены следующим образом:

Lighthouse: 51.39%

Prysm: 19.06%

Teku: 13.71%

Nimbus: 9.25%

Хотя доля Prysm относительно умеренная, доминирование Lighthouse помещает его в пределах примерно 15 процентных пунктов от порога, который многие исследователи считают потенциальным системным риском.

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

Заключительные мысли

Инцидент с Prysm служит напоминанием о том, что даже зрелые блокчейн-системы не застрахованы от рисков программного обеспечения. Хотя разнообразие клиентов Ethereum помогло предотвратить более крупный сбой, этот случай подчеркивает важность постоянной бдительности, тестирования и децентрализации на уровне протокола.

Если вы хотите больше обновлений и углубленных материалов об Ethereum, криптоинфраструктуре и разработках на блокчейне, следите за дополнительными идеями и анализом в реальном времени 🚀

#ETH #Prysm