Уязвимость временной искажения атак в протоколе Биткойн и ее исправление
26 марта 2025 года разработчики Биткойн предложили мягкую форк-инициативу под названием "Большой консенсус очистки", направленную на исправление нескольких долгосрочных уязвимостей и слабых мест в протоколе Биткойн. Одна из самых серьезных уязвимостей называется "атака на искажение времени"; в этой статье мы подробно рассмотрим этот вопрос.
Защита временных меток блока Биткойн
Перед обсуждением атаки с искажением времени нам необходимо понять текущие правила защиты от манипуляций временем:
Медианное прошедшее время (MPT) правило: временная метка блока должна быть позже медианного времени предыдущих 11 блоков.
Правила времени блока в будущем: временная метка блока не может опережать медианное время узлов-партнеров более чем на 2 часа. Допустимое максимальное расхождение между временем, предоставленным узлами, и локальными системными часами составляет 90 минут.
Эти правила предназначены для обеспечения того, чтобы временные метки блока не были слишком запоздалыми и не были слишком преждевременными. Однако атака временного искажения именно реализуется путем подделки временных меток, возвращая их далеко в прошлое.
Ошибка "на один" Сатоши Накамото
Цикл регулировки сложности Биткойна включает 2016 блоков, что составляет около двух недель при целевом времени блока в 10 минут. При вычислении регулировки сложности майнинга Протокол рассчитывает разницу временных меток между первым и последним блоками в соответствующем окне из 2016 блоков. Однако Сатоши Накамото допустил небольшую ошибку при вычислении целевого времени: он использовал 2016 вместо 2015 в качестве множителя.
Эта ошибка привела к тому, что целевое время оказалось на 0,05% длиннее, чем должно быть, что сделало фактический целевой интервал времени для Биткойн равным 10 минутам и 0,3 секунды. Хотя эта ошибка кажется незначительной, она закладывает основу для более серьезных уязвимостей.
Принцип атаки временного искажения
Атака на искажение времени использует ошибку Сатоши Накамото в расчете сложности. Злоумышленник манипулирует временными метками блоков, заставляя блокчейн медленно продвигаться во времени, соблюдая правила MTP. В частности, злоумышленник может:
Для большинства блоков временная метка устанавливается на одну секунду раньше, чем у предыдущего блока.
Каждые шесть блоков временная метка продвигается вперед на одну секунду.
В последнем блоке каждого периода корректировки сложности установить временную метку на реальное мировое время.
Время штампа первого блока следующего периода корректировки сложности снова вернулось в прошлое.
Такая операция приводит к тому, что время блокчейна все больше отстает от реального времени, при этом сложность постоянно возрастает. Однако после второго периода корректировки сложность начнет снижаться, и злоумышленники смогут с очень высокой скоростью создавать блоки, потенциально создавая большое количество Биткойн.
Жизнеспособность и ограничения атаки
Хотя такая атака теоретически имеет разрушительный потенциал, на практике ее реализация сталкивается с множеством проблем:
Необходимо контролировать большую часть вычислительной мощности.
Правила MTP и временные метки честных майнеров ограничивают степень ретроактивности злонамеренных временных меток.
Процесс атаки может быть открыто наблюдаем, что дает сообществу время для экстренного исправления.
Решение
Чтобы предотвратить атаки временного искажения, предложение предлагает ввести простое правило в начале нового периода сложности: время первого блока нового периода не должно быть раньше, чем определенный временной интервал перед последним блоком предыдущего периода. В настоящее время обсуждаемый временной интервал составляет от 10 минут до 2 часов.
В последнем предложении по очистке общего консенсуса этот период времени установлен на 2 часа. Это ограничение составляет лишь 0,6% от целевого времени цикла регулировки сложности, эффективно ограничивая возможность манипулирования сложностью вниз.
Этот метод проще, чем прямое изменение алгоритма регулировки сложности, и не требует жесткого форка. Он эффективно предотвращает атаки временного искажения и минимизирует риск случайных недействительных блоков, при этом оставаясь совместимым с существующими правилами временных меток будущих блоков.
С помощью реализации этого исправления сеть Биткойн сможет лучше противостоять потенциальным атакам на манипуляцию временем, что further усилит ее безопасность и стабильность.
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
17 Лайков
Награда
17
5
Поделиться
комментарий
0/400
JustHodlIt
· 07-11 01:42
Чувствую, что безопасность стала еще сильнее, всё стабильно, всё стабильно~
Посмотреть ОригиналОтветить0
SchrodingerWallet
· 07-10 02:19
Уязвимость снова исправлена, просто и грубо.
Посмотреть ОригиналОтветить0
DefiEngineerJack
· 07-10 02:19
*на самом деле* еще один нетривиальный патч безопасности, который доказывает превосходство PoW... на самом деле видел более серьезные уязвимости в PoS
Посмотреть ОригиналОтветить0
ProbablyNothing
· 07-10 01:57
btc исправляет уязвимость, теперь все будет в порядке.
Посмотреть ОригиналОтветить0
MemecoinResearcher
· 07-10 01:53
на основе протокола исправление, но можем ли мы получить статистическую значимость?
Исправление уязвимости атаки временного искажения в протоколе Биткойн: анализ предложения по очистке Соглашения
Уязвимость временной искажения атак в протоколе Биткойн и ее исправление
26 марта 2025 года разработчики Биткойн предложили мягкую форк-инициативу под названием "Большой консенсус очистки", направленную на исправление нескольких долгосрочных уязвимостей и слабых мест в протоколе Биткойн. Одна из самых серьезных уязвимостей называется "атака на искажение времени"; в этой статье мы подробно рассмотрим этот вопрос.
Защита временных меток блока Биткойн
Перед обсуждением атаки с искажением времени нам необходимо понять текущие правила защиты от манипуляций временем:
Медианное прошедшее время (MPT) правило: временная метка блока должна быть позже медианного времени предыдущих 11 блоков.
Правила времени блока в будущем: временная метка блока не может опережать медианное время узлов-партнеров более чем на 2 часа. Допустимое максимальное расхождение между временем, предоставленным узлами, и локальными системными часами составляет 90 минут.
Эти правила предназначены для обеспечения того, чтобы временные метки блока не были слишком запоздалыми и не были слишком преждевременными. Однако атака временного искажения именно реализуется путем подделки временных меток, возвращая их далеко в прошлое.
Ошибка "на один" Сатоши Накамото
Цикл регулировки сложности Биткойна включает 2016 блоков, что составляет около двух недель при целевом времени блока в 10 минут. При вычислении регулировки сложности майнинга Протокол рассчитывает разницу временных меток между первым и последним блоками в соответствующем окне из 2016 блоков. Однако Сатоши Накамото допустил небольшую ошибку при вычислении целевого времени: он использовал 2016 вместо 2015 в качестве множителя.
Эта ошибка привела к тому, что целевое время оказалось на 0,05% длиннее, чем должно быть, что сделало фактический целевой интервал времени для Биткойн равным 10 минутам и 0,3 секунды. Хотя эта ошибка кажется незначительной, она закладывает основу для более серьезных уязвимостей.
Принцип атаки временного искажения
Атака на искажение времени использует ошибку Сатоши Накамото в расчете сложности. Злоумышленник манипулирует временными метками блоков, заставляя блокчейн медленно продвигаться во времени, соблюдая правила MTP. В частности, злоумышленник может:
Такая операция приводит к тому, что время блокчейна все больше отстает от реального времени, при этом сложность постоянно возрастает. Однако после второго периода корректировки сложность начнет снижаться, и злоумышленники смогут с очень высокой скоростью создавать блоки, потенциально создавая большое количество Биткойн.
Жизнеспособность и ограничения атаки
Хотя такая атака теоретически имеет разрушительный потенциал, на практике ее реализация сталкивается с множеством проблем:
Решение
Чтобы предотвратить атаки временного искажения, предложение предлагает ввести простое правило в начале нового периода сложности: время первого блока нового периода не должно быть раньше, чем определенный временной интервал перед последним блоком предыдущего периода. В настоящее время обсуждаемый временной интервал составляет от 10 минут до 2 часов.
В последнем предложении по очистке общего консенсуса этот период времени установлен на 2 часа. Это ограничение составляет лишь 0,6% от целевого времени цикла регулировки сложности, эффективно ограничивая возможность манипулирования сложностью вниз.
Этот метод проще, чем прямое изменение алгоритма регулировки сложности, и не требует жесткого форка. Он эффективно предотвращает атаки временного искажения и минимизирует риск случайных недействительных блоков, при этом оставаясь совместимым с существующими правилами временных меток будущих блоков.
С помощью реализации этого исправления сеть Биткойн сможет лучше противостоять потенциальным атакам на манипуляцию временем, что further усилит ее безопасность и стабильность.