Анализ уязвимости атаки временного искажения Биткойна
26 марта 2025 года разработчики Биткойн предложили предложение о мягком форке "Большая консенсусная очистка", целью которого является исправление нескольких долго существующих уязвимостей и слабых мест в протоколе Биткойн. Среди них наиболее заметной является уязвимость "атака временного искажения".
Защита временной метки блока Биткойн
Биткойн в настоящее время использует два механизма для предотвращения манипуляций с временными метками:
Правило среднего времени (MPT): временная метка нового блока должна быть позже среднего времени 11 предыдущих блоков.
Правила времени будущих блоков: временная метка нового блока не может опережать медианное время сетевых узлов более чем на 2 часа.
Эти два правила предотвращают как слишком отстающие, так и слишком опережающие временные метки блоков. Однако атаки временного искажения используют именно эти уязвимости правил, значительно откатывая время блока путем подделки временных меток.
Ошибка Сатоши Накамото "на один"
Цикл настройки сложности Биткойна составляет 2016 блоков, примерно 14 дней. При расчете настройки сложности протокол сравнивает временные метки первых и последних блоков в окне из 2016 блоков. Теоретически следует использовать интервал в 2015 блоков (2016-1), то есть 1,209,000 секунд в качестве целевого времени. Однако в реальном коде использовалось 2016 в качестве множителя, что привело к увеличению целевого времени на 600 секунд.
Эта небольшая ошибка привела к тому, что фактическое целевое время создания блока Биткойна составляет 10 минут и 0,3 секунды. Хотя эта погрешность кажется незначительной, она создала возможность для атак на искажение времени.
Принцип атаки с искажением времени
Атака на искажение времени была обнаружена примерно в 2011 году. Злоумышленники манипулируют временными метками блоков, что приводит к тому, что время блокчейна постепенно отстает от реального времени, тем самым влияя на механизм регулировки сложности.
Конкретные шаги следующие:
Для большинства блоков устанавливайте временную метку на 1 секунду вперед по сравнению с предыдущим блоком.
Каждые 6 блоков временная метка продвигается на 1 секунду, чтобы соответствовать правилам MPT.
В последнем блоке каждого трудностного цикла установить временную метку на реальное время.
Первый блок нового цикла снова откатил временную метку на 1 секунду назад от предпоследнего блока предыдущего цикла.
Эта операция может привести к искусственному сокращению периода расчета сложности, что вызовет снижение сложности. После нескольких циклов атаки сложность может значительно снизиться, что приведет к аномально быстрому увеличению скорости генерации блоков.
Влияние атак и осуществимость
В теории, такая атака может снизить сложность почти в 2,8 раза за каждый цикл. После продолжительной атаки скорость генерации блоков может достигать более 10 в секунду.
Однако реализация такой атаки сталкивается со многими проблемами:
Необходимо контролировать большую часть вычислительной мощности.
Существование честных майнеров будет мешать манипуляциям с временными метками.
Процесс атаки полностью открыт и виден, что может привести к экстренному исправлению.
Решение
Чтобы предотвратить атаки временной искажения, самым простым методом является установка нижнего предела временной метки первого блока нового сложностного периода. Последнее предложение предлагает установить это ограничение на 2 часа, то есть временная метка первого блока нового периода не должна быть раньше, чем на 2 часа от последнего блока предыдущего периода.
Это исправление простое и эффективное, а также позволяет минимизировать риск случайного создания невалидных блоков. Двухчасовой временной интервал составляет всего около 0,6% от цикла изменения сложности, что может эффективно сдерживать возможность манипуляций с трудностью.
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
16 Лайков
Награда
16
4
Репост
Поделиться
комментарий
0/400
TooScaredToSell
· 20ч назад
Биткойн еще нужно исправить так много уязвимостей, это не очень хорошо.
Посмотреть ОригиналОтветить0
BearMarketSurvivor
· 20ч назад
Ветеран поля битвы десять лет Метка времени эта линия обороны слишком слаба
Посмотреть ОригиналОтветить0
WealthCoffee
· 20ч назад
Наконец-то кто-то исправил эту уязвимость. Её давно следовало исправить.
Посмотреть ОригиналОтветить0
MEVHunter
· 20ч назад
meh... еще один эксплуатируемый гэп протокола. типичное упущение Сатоши, честно говоря
Биткойн намерен исправить проблему временного искажения, чтобы предотвратить манипуляции с трудностями с перенацеливанием.
Анализ уязвимости атаки временного искажения Биткойна
26 марта 2025 года разработчики Биткойн предложили предложение о мягком форке "Большая консенсусная очистка", целью которого является исправление нескольких долго существующих уязвимостей и слабых мест в протоколе Биткойн. Среди них наиболее заметной является уязвимость "атака временного искажения".
Защита временной метки блока Биткойн
Биткойн в настоящее время использует два механизма для предотвращения манипуляций с временными метками:
Правило среднего времени (MPT): временная метка нового блока должна быть позже среднего времени 11 предыдущих блоков.
Правила времени будущих блоков: временная метка нового блока не может опережать медианное время сетевых узлов более чем на 2 часа.
Эти два правила предотвращают как слишком отстающие, так и слишком опережающие временные метки блоков. Однако атаки временного искажения используют именно эти уязвимости правил, значительно откатывая время блока путем подделки временных меток.
Ошибка Сатоши Накамото "на один"
Цикл настройки сложности Биткойна составляет 2016 блоков, примерно 14 дней. При расчете настройки сложности протокол сравнивает временные метки первых и последних блоков в окне из 2016 блоков. Теоретически следует использовать интервал в 2015 блоков (2016-1), то есть 1,209,000 секунд в качестве целевого времени. Однако в реальном коде использовалось 2016 в качестве множителя, что привело к увеличению целевого времени на 600 секунд.
Эта небольшая ошибка привела к тому, что фактическое целевое время создания блока Биткойна составляет 10 минут и 0,3 секунды. Хотя эта погрешность кажется незначительной, она создала возможность для атак на искажение времени.
Принцип атаки с искажением времени
Атака на искажение времени была обнаружена примерно в 2011 году. Злоумышленники манипулируют временными метками блоков, что приводит к тому, что время блокчейна постепенно отстает от реального времени, тем самым влияя на механизм регулировки сложности.
Конкретные шаги следующие:
Эта операция может привести к искусственному сокращению периода расчета сложности, что вызовет снижение сложности. После нескольких циклов атаки сложность может значительно снизиться, что приведет к аномально быстрому увеличению скорости генерации блоков.
Влияние атак и осуществимость
В теории, такая атака может снизить сложность почти в 2,8 раза за каждый цикл. После продолжительной атаки скорость генерации блоков может достигать более 10 в секунду.
Однако реализация такой атаки сталкивается со многими проблемами:
Решение
Чтобы предотвратить атаки временной искажения, самым простым методом является установка нижнего предела временной метки первого блока нового сложностного периода. Последнее предложение предлагает установить это ограничение на 2 часа, то есть временная метка первого блока нового периода не должна быть раньше, чем на 2 часа от последнего блока предыдущего периода.
Это исправление простое и эффективное, а также позволяет минимизировать риск случайного создания невалидных блоков. Двухчасовой временной интервал составляет всего около 0,6% от цикла изменения сложности, что может эффективно сдерживать возможность манипуляций с трудностью.