Уязвимость атаки временного искажения протокола BTC: разработчики предложили меры защиты

robot
Генерация тезисов в процессе

Уязвимость атаки временного искажения в Протоколе Биткойн

Разработчик Биткойн Антуан Пуансо предложил новое предложение по улучшению 26 марта 2025 года, целью которого является устранение нескольких уязвимостей и слабых мест, существовавших в Протоколе Биткойн на протяжении долгого времени. Это предложение о мягком форке, называемое "Большая очистка консенсуса", не только решает проблему повторных транзакций, о которой мы уже говорили, но также предлагает решение для более серьезной уязвимости — "атаки с искажением времени".

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

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

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

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

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

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

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

Ошибка вычисления Сатоши Накамото

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

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

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

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

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

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

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

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

Влияние и осуществимость атаки

Теоретически, такая атака может привести к серьезным последствиям, но ее реализация сталкивается с множеством проблем:

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

Решение

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

Это решение проще и более консервативно по сравнению с другими возможными методами (такими как полное изменение алгоритма регулирования сложности или отмена правил MTP), оно эффективно предотвращает атаки с искажением времени, минимизируя риск случайных недействительных блоков.

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

Посмотреть Оригинал
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Награда
  • 7
  • Поделиться
комментарий
0/400
CryptoComedianvip
· 20ч назад
Чем больше я меняю код, тем он лучше, а багов становится все больше, снова начинаю忙活啦
Посмотреть ОригиналОтветить0
NftDeepBreathervip
· 20ч назад
Этот уязвимость обнаружили слишком поздно!
Посмотреть ОригиналОтветить0
liquidation_watchervip
· 20ч назад
Майнинг так просто не бывает.
Посмотреть ОригиналОтветить0
AirdropSweaterFanvip
· 20ч назад
Ремонт безопасен, это самое главное
Посмотреть ОригиналОтветить0
alpha_leakervip
· 20ч назад
Наконец-то кто-то обратил внимание на Метку времени.
Посмотреть ОригиналОтветить0
DuckFluffvip
· 20ч назад
Метка времени тоже может быть использована хитро?
Посмотреть ОригиналОтветить0
Anon4461vip
· 20ч назад
Наконец-то исправили этот баг
Посмотреть ОригиналОтветить0
  • Закрепить