Анализ уязвимости атаки на искажение времени Биткойна: принципы, последствия и решения по исправлению

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

Анализ уязвимости атаки временного искажения Биткойна

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

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

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

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

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

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

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

! Нарушение безопасности биткоина: атака с искажением времени

Ошибка "один недостаток" Сатоши Накамото

Период корректировки сложности Биткойна содержит 2016 блоков, что составляет примерно две недели при расчете по цели выхода блока в 10 минут. При расчете корректировки сложности протокол сравнивает разницу временных меток первых и последних блоков в соответствующем окне из 2016 блоков. Это окно фактически включает 2015 интервалов блоков (то есть 2016 минус 1). Следовательно, теоретически следует использовать 60 секунд * 10 минут * 2015 интервалов = 1,209,000 секунд в качестве целевого времени. Однако протокол Биткойна использует число 2016, что приводит к 60 секунд * 10 минут * 2016 = 1,209,600 секунд. Это типичная ошибка "на один блок меньше", которая, возможно, возникла из-за путаницы Сатоши Накамото между количеством блоков и количеством интервалов блоков.

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

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

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

Этапы атаки следующие:

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

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

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

Осуществимость и ограничения атак

Хотя теоретически эта атака имеет огромные последствия, её реализация сталкивается с некоторыми проблемами:

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

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

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

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

  1. Изменить алгоритм настройки сложности, рассчитать временной интервал между разными окнами 2016 и исправить ошибку "разница в один". Но это может потребовать хард-форка.

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

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

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

Независимо от того, какое решение будет принято в конечном итоге, исправление этой уязвимости дополнительно укрепит безопасность и стабильность сети Биткойн.

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

BTC-1.5%
Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
  • Награда
  • 8
  • Поделиться
комментарий
0/400
BlockTalkvip
· 07-27 22:15
Не зря это старый биткоин, такой крепкий.
Посмотреть ОригиналОтветить0
defi_detectivevip
· 07-27 08:59
Здорово! Путешествие во времени, да?
Посмотреть ОригиналОтветить0
DecentralizeMevip
· 07-27 07:12
Кто приходит за BTC, тот и есть главный брат, правильно?
Посмотреть ОригиналОтветить0
VibesOverChartsvip
· 07-24 22:46
Целый день бездельничаю, просто трачу электричество.
Посмотреть ОригиналОтветить0
CommunityJanitorvip
· 07-24 22:44
Кто расскажет мне, что такое искаженное время?
Посмотреть ОригиналОтветить0
MetaRecktvip
· 07-24 22:33
btc стабильный как скала!
Посмотреть ОригиналОтветить0
UncleLiquidationvip
· 07-24 22:30
Мошенничество倒计时~
Посмотреть ОригиналОтветить0
failed_dev_successful_apevip
· 07-24 22:29
Майнер про666啊 玩时间还能玩出花
Посмотреть ОригиналОтветить0
  • Закрепить