Уязвимость атаки временного искажения в протоколе Биткойн
Разработчик Биткойн Антуан Пуансо предложил новую инициативу 26 марта 2025 года, направленную на исправление нескольких долгосрочных уязвимостей и слабых мест в протоколе Биткойн с помощью мягкого форка. Эта инициатива, известная как "Большая очистка консенсуса", не только решает проблему повторных транзакций, ранее обсуждавшуюся, но и предлагает решение для более серьезной уязвимости — "атаки искажения времени".
Защитный механизм временной метки Биткойна
Перед тем как обсудить атаку на искажение времени, давайте сначала вспомним о существующих правилах защиты Биткойна от манипуляций со временем:
Медианное время за прошлый период (MPT) правило: временная метка блока должна быть позже медианного времени предыдущих 11 блоков.
Правила времени блоков в будущем: временная метка блока не должна превышать медианное время узловых однотипных тел более чем на 2 часа. Кроме того, максимальное допустимое отклонение времени узла от локальных системных часов составляет 90 минут.
Цель этих правил заключается в предотвращении слишком большого отклонения временных меток блока от реального времени, как в прошлое, так и в будущее. Однако атака на искажение времени осуществляется именно путем подделки временных меток, которые значительно раньше реального времени.
Ошибка Сатоши Накамото "на один раз"
Период корректировки сложности Биткойна включает 2016 блоков, что теоретически составляет около двух недель. При расчете корректировки сложности майнинга протокол вычисляет разницу временных меток между первым и последним блоками из этих 2016 блоков. Однако на самом деле эти 2016 блоков содержат только 2015 промежутков между блоками. Правильное целевое время должно составлять 60 секунд × 10 минут × 2015 = 1,209,000 секунд, но протокол Биткойна использует число 2016, что приводит к результату в 1,209,600 секунд. Эта небольшая ошибка приводит к тому, что целевое время длиннее, чем должно быть, на 0.05%.
Хотя эта ошибка кажется незначительной, она вызывает более серьезную проблему. Расчет сложности основан на первом и последнем блоках в каждом окне из 2016 блоков, а не на разнице между последним блоком предыдущего окна и последним блоком текущего окна. Такой способ расчетов создает возможности для атак с искажением времени.
Принцип атаки временного искажения
Атака с искажением времени была впервые обнаружена примерно в 2011 году. В этой атаке предполагается, что майнинг полностью централизован, и майнеры могут устанавливать временные метки по своему усмотрению в рамках, разрешенных протоколом. Злоумышленник будет устанавливать временные метки большинства блоков на одну секунду раньше, чем у предыдущего блока, или сдвигать их вперед на одну секунду только каждые шесть блоков, чтобы как можно медленнее продвигать время.
Такое действие приведет к тому, что время блокчейна будет постепенно отставать от реального времени, одновременно усложняя задачу. Чтобы усилить эффект атаки, в последнем блоке каждого периода корректировки сложности злоумышленник устанавливает временную метку на реальное время. А временная метка первого блока следующего периода будет установлена на одну секунду раньше, чем у предпоследнего блока предыдущего периода.
Таким образом, злоумышленники могут значительно снизить сложность майнинга после второго цикла корректировки, что позволяет им создавать блоки с очень высокой скоростью и получать большое количество Биткойн.
Возможность и вызовы атаки
Хотя теоретически такая атака может иметь серьезные последствия, на практике её реализация сталкивается с множеством трудностей:
Необходимо контролировать большую часть вычислительной мощности.
Правила MTP и честная метка времени ограничат степень ретроспективного вредоносного временного штампа.
Если честный майнер создаст первый блок в любом окне корректировки сложности, атака в этом цикле будет неэффективной.
Процесс атаки виден всем, что может вызвать экстренное мягкое разветвление для исправления.
Решение
Существует несколько возможных способов исправить этот уязвимость:
Изменить алгоритм регулировки сложности, вычислить временной промежуток между блоками разных окон 2016 и исправить ошибку "недостаток один".
Отменить правила MTP, требуя, чтобы время каждого блока должно двигаться вперед.
Установите новые ограничения, требующие, чтобы время первого блока нового периода сложности не было раньше определенного количества минут последнего блока предыдущего периода.
Предложение Poinsot о "Большом консенсусном очищении" использует третий метод и предлагает установить временное ограничение в 2 часа. Этот план эффективно смягчает временные искажения атак и минимизирует риск случайного создания недействительных токенов.
В целом, сообщество Биткойна активно реагирует на эту потенциальную угрозу, постоянно совершенствуя Протокол с помощью таких методов, как мягкие форки, чтобы обеспечить долгосрочную безопасность и стабильную работу сети.
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
14 Лайков
Награда
14
5
Поделиться
комментарий
0/400
SatoshiSherpa
· 07-14 18:42
Исправление ошибок действительно похоже на исправление ошибок.
Посмотреть ОригиналОтветить0
FUD_Whisperer
· 07-14 18:38
Исправили баги? Давно следовало их исправить.
Посмотреть ОригиналОтветить0
OldLeekConfession
· 07-14 18:38
Этот баг уже исправляют 4 года?
Посмотреть ОригиналОтветить0
GweiWatcher
· 07-14 18:35
Этот баг давно нужно было исправить, невозможно на это смотреть.
Посмотреть ОригиналОтветить0
PumpingCroissant
· 07-14 18:34
Этот баг будет исправлен только в 2025 году, придется ждать довольно долго.
Биткойн планирует исправить уязвимость атаки временного искажения,方案 софтфорка уже на подходе.
Уязвимость атаки временного искажения в протоколе Биткойн
Разработчик Биткойн Антуан Пуансо предложил новую инициативу 26 марта 2025 года, направленную на исправление нескольких долгосрочных уязвимостей и слабых мест в протоколе Биткойн с помощью мягкого форка. Эта инициатива, известная как "Большая очистка консенсуса", не только решает проблему повторных транзакций, ранее обсуждавшуюся, но и предлагает решение для более серьезной уязвимости — "атаки искажения времени".
Защитный механизм временной метки Биткойна
Перед тем как обсудить атаку на искажение времени, давайте сначала вспомним о существующих правилах защиты Биткойна от манипуляций со временем:
Медианное время за прошлый период (MPT) правило: временная метка блока должна быть позже медианного времени предыдущих 11 блоков.
Правила времени блоков в будущем: временная метка блока не должна превышать медианное время узловых однотипных тел более чем на 2 часа. Кроме того, максимальное допустимое отклонение времени узла от локальных системных часов составляет 90 минут.
Цель этих правил заключается в предотвращении слишком большого отклонения временных меток блока от реального времени, как в прошлое, так и в будущее. Однако атака на искажение времени осуществляется именно путем подделки временных меток, которые значительно раньше реального времени.
Ошибка Сатоши Накамото "на один раз"
Период корректировки сложности Биткойна включает 2016 блоков, что теоретически составляет около двух недель. При расчете корректировки сложности майнинга протокол вычисляет разницу временных меток между первым и последним блоками из этих 2016 блоков. Однако на самом деле эти 2016 блоков содержат только 2015 промежутков между блоками. Правильное целевое время должно составлять 60 секунд × 10 минут × 2015 = 1,209,000 секунд, но протокол Биткойна использует число 2016, что приводит к результату в 1,209,600 секунд. Эта небольшая ошибка приводит к тому, что целевое время длиннее, чем должно быть, на 0.05%.
Хотя эта ошибка кажется незначительной, она вызывает более серьезную проблему. Расчет сложности основан на первом и последнем блоках в каждом окне из 2016 блоков, а не на разнице между последним блоком предыдущего окна и последним блоком текущего окна. Такой способ расчетов создает возможности для атак с искажением времени.
Принцип атаки временного искажения
Атака с искажением времени была впервые обнаружена примерно в 2011 году. В этой атаке предполагается, что майнинг полностью централизован, и майнеры могут устанавливать временные метки по своему усмотрению в рамках, разрешенных протоколом. Злоумышленник будет устанавливать временные метки большинства блоков на одну секунду раньше, чем у предыдущего блока, или сдвигать их вперед на одну секунду только каждые шесть блоков, чтобы как можно медленнее продвигать время.
Такое действие приведет к тому, что время блокчейна будет постепенно отставать от реального времени, одновременно усложняя задачу. Чтобы усилить эффект атаки, в последнем блоке каждого периода корректировки сложности злоумышленник устанавливает временную метку на реальное время. А временная метка первого блока следующего периода будет установлена на одну секунду раньше, чем у предпоследнего блока предыдущего периода.
Таким образом, злоумышленники могут значительно снизить сложность майнинга после второго цикла корректировки, что позволяет им создавать блоки с очень высокой скоростью и получать большое количество Биткойн.
Возможность и вызовы атаки
Хотя теоретически такая атака может иметь серьезные последствия, на практике её реализация сталкивается с множеством трудностей:
Решение
Существует несколько возможных способов исправить этот уязвимость:
Предложение Poinsot о "Большом консенсусном очищении" использует третий метод и предлагает установить временное ограничение в 2 часа. Этот план эффективно смягчает временные искажения атак и минимизирует риск случайного создания недействительных токенов.
В целом, сообщество Биткойна активно реагирует на эту потенциальную угрозу, постоянно совершенствуя Протокол с помощью таких методов, как мягкие форки, чтобы обеспечить долгосрочную безопасность и стабильную работу сети.