У Биткойн-протокола существует уязвимость атаки врем扭曲. Новое предложение предполагает исправление через Софтфорк.

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

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

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

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

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

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

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

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

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

Маленькая ошибка Сатоши Накамото

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

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

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

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

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

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

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

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

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

Осуществимость и вызовы атаки

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

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

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

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

Преимущества этого 2-часового ограничения включают:

  • Минимизировать риск случайных недействительных блоков
  • Соответствовать правилам временных меток блоков в будущем
  • Относительно консервативные изменения могут быть более гибкими, чем правила MTP в нормальных условиях.

Тем не менее, этот метод по-прежнему позволяет злоумышленникам манипулировать сложностью на 0,6% за каждый цикл, но это будет единичное изменение, которое не может накапливаться.

В целом, атака с искажением времени, хотя и представляет собой теоретическую угрозу, на практике трудно осуществима. С помощью соответствующих обновлений протокола мы можем进一步 усилить безопасность и стабильность сети Биткойн.

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

BTC1.96%
Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
  • Награда
  • 5
  • Поделиться
комментарий
0/400
LiquidationKingvip
· 07-13 07:37
Время нужно защищать с помощью кода
Посмотреть ОригиналОтветить0
DegenWhisperervip
· 07-10 09:13
Софтфорк действительно надежен?
Посмотреть ОригиналОтветить0
DarkPoolWatchervip
· 07-10 09:09
Исправление уязвимостей нужно делать заранее
Посмотреть ОригиналОтветить0
TokenVelocityTraumavip
· 07-10 09:06
Уязвимости необходимо устранить как можно скорее.
Посмотреть ОригиналОтветить0
DegenWhisperervip
· 07-10 08:55
Я слишком долго ждал этого исправления.
Посмотреть ОригиналОтветить0
  • Закрепить