Обсуждение анализа и решения проблемы искажения времени в Протоколе Биткойн

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

Биткойн Протокол中的时间漏洞:深入解析时间扭曲攻击

Обзор

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. Для большинства блоков майнеры устанавливают временную метку на 1 секунду раньше, чем у предыдущего блока.

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

  3. В последнем блоке каждого периода корректировки сложности майнеры устанавливают временную метку на реальное время.

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

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

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

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

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

  1. Необходимо контролировать большую часть сети вычислительной мощности.

  2. Наличие честных майнеров увеличивает сложность атаки.

  3. Если честный майнер создаст первый блок в окне изменения сложности, атака в этом цикле станет неэффективной.

  4. Процесс атаки является открытым и видимым, что может привести к экстренному мягкому форку для исправления.

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

Решение

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

  1. Изменить алгоритм регулировки сложности, вычислить временной интервал между разными окнами в 2016 блоков.

  2. Отменить правила MPT, требуя строгого увеличения временных меток каждого блока.

  3. Установить новые ограничения: время первого блока нового периода сложности не должно быть раньше определенного количества минут последнего блока предыдущего периода (, например, 2 часа ).

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

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

Заключение

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

BTC1.44%
Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
  • Награда
  • 4
  • Поделиться
комментарий
0/400
SocialAnxietyStakervip
· 11ч назад
Стоит глубоко изучить исправление уязвимостей
Посмотреть ОригиналОтветить0
ser_we_are_ngmivip
· 16ч назад
BTC также может быть атакован
Посмотреть ОригиналОтветить0
GateUser-1a2ed0b9vip
· 16ч назад
Ключевая уязвимость действительно сложная
Посмотреть ОригиналОтветить0
InscriptionGrillervip
· 16ч назад
Поменять не помогло.
Посмотреть ОригиналОтветить0
  • Закрепить