Анализ уязвимости временной деформации протокола Биткойн
В марте 2025 года разработчики Биткойна предложили мягкое обновление под названием "Большое согласие очистки", целью которого является исправление нескольких долгосрочных уязвимостей и слабостей в протоколе Биткойна. Одной из более серьезных уязвимостей является "атака на искажение времени", которую мы подробно рассмотрим в этой статье.
Защитный механизм временной метки Биткойна
Перед обсуждением атаки с искажением времени, давайте сначала рассмотрим текущие правила защиты от манипуляций с временем в сети Биткойн:
Среднее прошедшее время ( MPT ) правило: временная метка блока должна быть позже среднего времени предыдущих одиннадцати блоков.
Правила времени блоков в будущем: временная метка блока не может опережать медианное время сетевых узлов более чем на 2 часа, при этом максимальная допустимая разница между временем узла и локальными системными часами составляет 90 минут.
Эти правила предназначены для предотвращения чрезмерной манипуляции временными метками блока, как в прошлое, так и в будущее. Однако атаки временного искажения в основном используют уязвимость подделки временных меток в прошлое.
Ошибка "на один" основателя Биткойна
Цикл корректировки сложности Биткойна включает 2016 блоков, что теоретически составляет около двух недель. При расчете корректировки сложности добычи Протокол учитывает разницу временных меток между первым и последним блоком в окне из 2016 блоков. Однако это окно на самом деле включает только 2015 промежутков блоков.
Правильное целевое время должно составлять 60 секунд * 10 минут * 2015 интервалов = 1,209,000 секунд. Но Биткойн Протокол использует число 2016, что приводит к расчетному результату в 1,209,600 секунд. Эта ошибка в 0,05% приводит к тому, что фактический целевой интервал блоков Биткойна немного длиннее 10 минут, составляя 10 минут и 0,3 секунды.
Хотя эта ошибка кажется незначительной, она связана с другой более серьезной проблемой. Расчет сложности основывается только на первом и последнем блоках в каждом окне из 2016 блоков, а не на различии между последним блоком предыдущего окна и последним блоком текущего окна. Этот метод вычисления создает условия для атак временного искажения.
Принцип атаки временного искажения
Атака на искажение времени была впервые обнаружена в 2011 году. В этой атаке предполагается, что майнинг полностью централизован, и атакующий может манипулировать временными метками блоков. Атакующий устанавливает временные метки большинства блоков так, чтобы они были на одну секунду впереди предыдущего блока, при этом соблюдая правила MTP. Чтобы как можно медленнее продвигать время, атакующий может поддерживать одинаковую временную метку в течение шести последовательных блоков, а затем на седьмом блоке увеличить её на одну секунду, и так по кругу.
Такая операция приведет к тому, что время блокчейна будет все больше отставать от реального времени. Однако ключ к атаке заключается в последнем блоке каждого периода настройки сложности. Атакующий установит временную метку этого блока на реальное время, в то время как временная метка первого блока следующего периода снова будет установлена на прошлое время.
Таким образом, сложность после первого периода не будет затронута. Но начиная со второго периода корректировки, сложность начнет снижаться. Это позволяет злоумышленникам создавать блоки с очень высокой скоростью, потенциально генерируя большое количество Биткойн и получая от этого прибыль.
Осуществимость атак и вызовы
Хотя такая атака теоретически разрушительна, на практике ее реализация сталкивается с множеством проблем:
Необходимо контролировать большую часть вычислительной мощности сети.
Наличие честных майнеров увеличивает сложность атак.
Правила MTP и честные временные метки будут ограничивать степень ретроспекции злонамеренных временных меток.
Если честный майнер создаст первый блок в любом окне корректировки сложности, атака в этом цикле будет неэффективна.
Процесс атаки является открытым и видимым, что может вызвать экстренное мягкое разветвление для исправления.
Решение
Существует несколько возможных способов исправить эту уязвимость:
Изменить алгоритм настройки сложности, вычисляя временной интервал между разными окнами блоков 2016, одновременно исправив ошибку "не хватает одного".
Отменить правила MTP, требуя, чтобы время всегда двигалось вперед в каждом блоке.
Введение новых ограничений, требующих, чтобы время первого блока нового периода сложности не было раньше определенного времени (например, 2 часа) перед последним блоком предыдущего периода.
В настоящее время в предложении по очистке большого консенсуса используется третий метод, устанавливающий временное ограничение в 2 часа. Этот подход позволяет эффективно смягчить атаки временной искажения и минимизировать риск случайных недействительных блоков.
Путем внедрения этих улучшений сеть Биткойн сможет лучше противостоять атакам временной искажения, что дополнительно укрепит ее безопасность и стабильность.
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
14 Лайков
Награда
14
5
Репост
Поделиться
комментарий
0/400
CoffeeNFTs
· 16ч назад
Протокол уязвимость Считай, что я боюсь кого-то?
Посмотреть ОригиналОтветить0
DataOnlooker
· 16ч назад
Майнинг нужно начинать с детства
Посмотреть ОригиналОтветить0
CascadingDipBuyer
· 16ч назад
А это… у btc снова ошибка, похоже, мне придется покупать падения
Анализ уязвимости временного искажения Биткойна: как предложение по очистке Соглашения может исправить слабости Протокола
Анализ уязвимости временной деформации протокола Биткойн
В марте 2025 года разработчики Биткойна предложили мягкое обновление под названием "Большое согласие очистки", целью которого является исправление нескольких долгосрочных уязвимостей и слабостей в протоколе Биткойна. Одной из более серьезных уязвимостей является "атака на искажение времени", которую мы подробно рассмотрим в этой статье.
Защитный механизм временной метки Биткойна
Перед обсуждением атаки с искажением времени, давайте сначала рассмотрим текущие правила защиты от манипуляций с временем в сети Биткойн:
Среднее прошедшее время ( MPT ) правило: временная метка блока должна быть позже среднего времени предыдущих одиннадцати блоков.
Правила времени блоков в будущем: временная метка блока не может опережать медианное время сетевых узлов более чем на 2 часа, при этом максимальная допустимая разница между временем узла и локальными системными часами составляет 90 минут.
Эти правила предназначены для предотвращения чрезмерной манипуляции временными метками блока, как в прошлое, так и в будущее. Однако атаки временного искажения в основном используют уязвимость подделки временных меток в прошлое.
Ошибка "на один" основателя Биткойна
Цикл корректировки сложности Биткойна включает 2016 блоков, что теоретически составляет около двух недель. При расчете корректировки сложности добычи Протокол учитывает разницу временных меток между первым и последним блоком в окне из 2016 блоков. Однако это окно на самом деле включает только 2015 промежутков блоков.
Правильное целевое время должно составлять 60 секунд * 10 минут * 2015 интервалов = 1,209,000 секунд. Но Биткойн Протокол использует число 2016, что приводит к расчетному результату в 1,209,600 секунд. Эта ошибка в 0,05% приводит к тому, что фактический целевой интервал блоков Биткойна немного длиннее 10 минут, составляя 10 минут и 0,3 секунды.
Хотя эта ошибка кажется незначительной, она связана с другой более серьезной проблемой. Расчет сложности основывается только на первом и последнем блоках в каждом окне из 2016 блоков, а не на различии между последним блоком предыдущего окна и последним блоком текущего окна. Этот метод вычисления создает условия для атак временного искажения.
Принцип атаки временного искажения
Атака на искажение времени была впервые обнаружена в 2011 году. В этой атаке предполагается, что майнинг полностью централизован, и атакующий может манипулировать временными метками блоков. Атакующий устанавливает временные метки большинства блоков так, чтобы они были на одну секунду впереди предыдущего блока, при этом соблюдая правила MTP. Чтобы как можно медленнее продвигать время, атакующий может поддерживать одинаковую временную метку в течение шести последовательных блоков, а затем на седьмом блоке увеличить её на одну секунду, и так по кругу.
Такая операция приведет к тому, что время блокчейна будет все больше отставать от реального времени. Однако ключ к атаке заключается в последнем блоке каждого периода настройки сложности. Атакующий установит временную метку этого блока на реальное время, в то время как временная метка первого блока следующего периода снова будет установлена на прошлое время.
Таким образом, сложность после первого периода не будет затронута. Но начиная со второго периода корректировки, сложность начнет снижаться. Это позволяет злоумышленникам создавать блоки с очень высокой скоростью, потенциально генерируя большое количество Биткойн и получая от этого прибыль.
Осуществимость атак и вызовы
Хотя такая атака теоретически разрушительна, на практике ее реализация сталкивается с множеством проблем:
Решение
Существует несколько возможных способов исправить эту уязвимость:
В настоящее время в предложении по очистке большого консенсуса используется третий метод, устанавливающий временное ограничение в 2 часа. Этот подход позволяет эффективно смягчить атаки временной искажения и минимизировать риск случайных недействительных блоков.
Путем внедрения этих улучшений сеть Биткойн сможет лучше противостоять атакам временной искажения, что дополнительно укрепит ее безопасность и стабильность.