По сообщению PANews, команда Prysm опубликовала подробный анализ технических сбоев, произошедших 14 декабря во время работы основной сети. Основная причина инцидента заключалась в том, что узлы-беконы, не синхронизированные с сетью, получали аутентификацию, что привело к неожиданным ошибкам при вычислении корня. Это событие оказало широкое влияние на всю сеть, выходя за рамки простых ошибок клиента.
Получение аутентификации от не синхронизированных узлов, запуск цепной реакции при вычислении корня
Проблема возникла из-за того, что узлы Prysm-бекон получали аутентификацию, ссылающуюся на блоки предыдущего эпохи, от не синхронизированных узлов. Для проверки Prysm попытался реконструировать состояние бекона так, чтобы оно было совместимо с состоянием цепи, воспринимаемым не синхронизированными узлами, однако эта задача по перерасчёту корня потребовала значительно больше вычислительных ресурсов, чем ожидалось.
В результате блоки предыдущей эпохи были обработаны повторно, а операции по переключению эпох, включая вычисление корня, создали чрезмерную нагрузку. На самом деле, этот уязвимый момент уже был включён в PR Prysm 15965 и был развернут на тестовой сети за месяц до инцидента, однако тогда проблема не проявилась.
Перегрузка при вычислении корня, быстрое исчерпание ресурсов, невозможность реагировать
4 декабря, во время сессии после запуска основной сети Ethereum в Хасеке, почти все узлы Prysm одновременно столкнулись с задержками при вычислении корня. При обработке определённых доказательных данных ресурсы быстро исчерпались, и узлы оказались неспособны своевременно отвечать на запросы валидаторов.
Из-за нехватки ресурсов началась цепная потеря блоков и доказательств. Сбой продолжался с эпохи 411439 по 411480, всего 42 эпохи, из которых было пропущено 248 блоков из 1344 слотов, что составило около 18,5% серьёзных потерь.
Падение участия в сети до 75%, потеря 382 ETH валидаторами
Последствия этого инцидента вышли за рамки простых потерь блоков и поставили под угрозу стабильность всей сети. Уровень участия в сети упал до 75%, что свидетельствует о сбое в работе механизма консенсуса Ethereum.
Валидаторы потеряли примерно 382 ETH в виде вознаграждений из-за потери блоков и доказательств. Это не только экономический ущерб отдельных валидаторов, вызванный проблемами сети, но и снижение доверия к всей сети в целом.
Уроки ошибки при вычислении корня, переоценка устойчивости сети
Интересно, что Виталик Бутерин ранее отмечал, что случаи потери определённости решений в Ethereum не представляют серьёзной угрозы. Однако инцидент с ошибкой вычисления корня Prysm ещё раз ясно показал, как дефект одного клиента может повлиять на всю сеть. В будущем важность разнообразия клиентов и устойчивости таких ключевых операций, как вычисление корня, будет только расти.
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
Ошибка вычисления корня Prysm вызвала сбой цепочки основной сети Ethereum
По сообщению PANews, команда Prysm опубликовала подробный анализ технических сбоев, произошедших 14 декабря во время работы основной сети. Основная причина инцидента заключалась в том, что узлы-беконы, не синхронизированные с сетью, получали аутентификацию, что привело к неожиданным ошибкам при вычислении корня. Это событие оказало широкое влияние на всю сеть, выходя за рамки простых ошибок клиента.
Получение аутентификации от не синхронизированных узлов, запуск цепной реакции при вычислении корня
Проблема возникла из-за того, что узлы Prysm-бекон получали аутентификацию, ссылающуюся на блоки предыдущего эпохи, от не синхронизированных узлов. Для проверки Prysm попытался реконструировать состояние бекона так, чтобы оно было совместимо с состоянием цепи, воспринимаемым не синхронизированными узлами, однако эта задача по перерасчёту корня потребовала значительно больше вычислительных ресурсов, чем ожидалось.
В результате блоки предыдущей эпохи были обработаны повторно, а операции по переключению эпох, включая вычисление корня, создали чрезмерную нагрузку. На самом деле, этот уязвимый момент уже был включён в PR Prysm 15965 и был развернут на тестовой сети за месяц до инцидента, однако тогда проблема не проявилась.
Перегрузка при вычислении корня, быстрое исчерпание ресурсов, невозможность реагировать
4 декабря, во время сессии после запуска основной сети Ethereum в Хасеке, почти все узлы Prysm одновременно столкнулись с задержками при вычислении корня. При обработке определённых доказательных данных ресурсы быстро исчерпались, и узлы оказались неспособны своевременно отвечать на запросы валидаторов.
Из-за нехватки ресурсов началась цепная потеря блоков и доказательств. Сбой продолжался с эпохи 411439 по 411480, всего 42 эпохи, из которых было пропущено 248 блоков из 1344 слотов, что составило около 18,5% серьёзных потерь.
Падение участия в сети до 75%, потеря 382 ETH валидаторами
Последствия этого инцидента вышли за рамки простых потерь блоков и поставили под угрозу стабильность всей сети. Уровень участия в сети упал до 75%, что свидетельствует о сбое в работе механизма консенсуса Ethereum.
Валидаторы потеряли примерно 382 ETH в виде вознаграждений из-за потери блоков и доказательств. Это не только экономический ущерб отдельных валидаторов, вызванный проблемами сети, но и снижение доверия к всей сети в целом.
Уроки ошибки при вычислении корня, переоценка устойчивости сети
Интересно, что Виталик Бутерин ранее отмечал, что случаи потери определённости решений в Ethereum не представляют серьёзной угрозы. Однако инцидент с ошибкой вычисления корня Prysm ещё раз ясно показал, как дефект одного клиента может повлиять на всю сеть. В будущем важность разнообразия клиентов и устойчивости таких ключевых операций, как вычисление корня, будет только расти.