Биткойн сталкивается с атакой времевого искажения, уязвимость протокола вызывает проблемы безопасности

Биткойн уязвимость безопасности: атака временного искажения

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

Биткойн безопасность уязвимость: атака временного искажения

Механизм защиты временных меток блоков Биткойн

Перед обсуждением атаки на временные искажения давайте сначала рассмотрим текущие правила защиты от манипуляций с временем:

  1. Правило среднего времени в прошлом (MPT): временная метка блока должна быть позже средней временной метки последних одиннадцати блоков.

  2. Правила времени блока в будущем: временная метка блока не может опережать медианное время пиров узлов более чем на 2 часа. Допустимое максимальное расхождение между временем узла и локальными системными часами составляет 90 минут.

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

Биткойн безопасность уязвимости: атака временного искажения

Проблема расчета периода настройки сложности

Цикл настройки сложности Биткойна включает 2016 блоков, что составляет около двух недель при целевом времени блока в 10 минут. При расчете изменения сложности майнинга протокол вычисляет разницу между временными метками первого и последнего блоков в соответствующем окне из 2016 блоков. Это окно из 2016 блоков фактически содержит 2015 интервалов блоков, поэтому теоретически целевое время должно составлять 60 секунд * 10 минут * 2015 интервалов, что равно 1,209,000 секунд.

Однако, протокол Биткойн использует число 2016 для вычисления цели. 60 секунд * 10 минут * 2016 = 1,209,600 секунд. Это ошибка "на один меньше", возможно, вызванная путаницей между интервалами блоков.

Эта ошибка привела к тому, что целевое время стало на 0,05% дольше, чем должно быть. Таким образом, фактический целевой интервал времени для Биткойн составляет 10 минут и 0,3 секунды, а не ровно 10 минут. Хотя эта ошибка кажется незначительной, она связана с другой, более серьезной проблемой.

Принцип атаки с временным искажением

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

  1. Для большинства блоков временная метка устанавливается на одну секунду вперёд по сравнению с предыдущим блоком.
  2. Чтобы максимально замедлить продвижение времени, майнеры могут поддерживать одинаковую метку времени в течение шести последовательных блоков, а затем увеличить время на одну секунду в следующем блоке.
  3. В последнем блоке каждого периода корректировки сложности установить временную метку на реальное мировое время.
  4. Временная метка первого блока следующего периода снова возвращается в прошлое, на секунду раньше, чем предпоследний блок предыдущего периода.

Эта операция соответствует правилам MTP, поскольку одиночный сбой не влияет на медиану 11 блоков. Таким образом, блокчейн будет постепенно отставать от реального времени, и сложность будет постоянно увеличиваться. Однако, начиная со второго периода корректировки, сложность начнет снижаться, позволяя майнерам создавать блоки с очень высокой скоростью, потенциально создавая большое количество Биткойн.

Биткойн безопасность уязвимость: атака на временные искажения

Жизнеспособность и вызовы атаки

Хотя теоретически такая атака может быть разрушительной, на практике она сталкивается с некоторыми вызовами:

  1. Возможно, потребуется контролировать большую часть вычислительной мощности.
  2. Наличие честных майнеров увеличивает сложность атак.
  3. Правила MTP и честная метка времени могут ограничить степень ретроактивного злонамеренного временного штампа.
  4. Если честный майнер создаст первый блок в любом окне корректировки сложности, атака в этом цикле станет неэффективной.
  5. Процесс атаки является открытым и видимым, что может дать сообществу время для выпуска срочного исправления.

Биткойн безопасность уязвимость: атака временного искажения

Потенциальные решения

Существует несколько возможных способов исправления этой уязвимости:

  1. Изменить алгоритм настройки сложности, рассчитывая временной интервал между блоками в разных окнах 2016.
  2. Отменить правило MTP, требуя, чтобы время в каждом блоке всегда двигалось вперед.
  3. Установить новые ограничения: время первого блока нового периода сложности не должно быть раньше определенного количества минут перед последним блоком предыдущего периода.

В настоящее время в предложении по очистке большого консенсуса предлагается использовать третий метод, установив временное ограничение в 2 часа. Этот период составляет примерно 0,6% целевого времени цикла изменения сложности, что может эффективно ограничить возможность манипуляций со снижением сложности.

Существуют разные мнения о том, какой именно срок льготы следует использовать. Ограничение в 10 минут и ограничение в 2 часа имеют свои плюсы и минусы, которые необходимо взвесить. Независимо от того, какой вариант будет выбран в конечном итоге, устранение этого уязвимости значительно повысит безопасность и стабильность сети Биткойн.

Биткойн безопасность уязвимости: атака временного искажения

BTC2.06%
Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
  • Награда
  • 6
  • Репост
  • Поделиться
комментарий
0/400
liquidation_surfervip
· 08-09 19:16
Снова нужно платить за исправление уязвимостей, тьфу-тьфу.
Посмотреть ОригиналОтветить0
MeaninglessApevip
· 08-09 17:34
Снова снова снова ошибка. Не знаю, что и сказать, семья.
Посмотреть ОригиналОтветить0
GhostAddressHuntervip
· 08-09 17:34
Нашел уязвимость, есть кто-нибудь? Скажи, что черный, так и будет.
Посмотреть ОригиналОтветить0
GasWastervip
· 08-09 17:31
Атака есть атака, в любом случае я просто не понимаю и все.
Посмотреть ОригиналОтветить0
MEVHuntervip
· 08-09 17:11
хех, нашел еще одну вкусную уязвимость... время - это просто еще одна переменная для манипуляции, если честно. наблюдаю за этой уязвимостью с дней тестнета
Посмотреть ОригиналОтветить0
ApeWithNoFearvip
· 08-09 17:10
Риг для майнинга только пугает
Посмотреть ОригиналОтветить0
  • Закрепить