В последнее время один из разработчиков Биткойна предложил новую улучшенную версию, целью которой является исправление нескольких уязвимостей и слабых мест, существующих в протоколе Биткойна на протяжении многих лет. Одной из более серьезных уязвимостей является "атака искажения времени", которую мы подробно рассмотрим в этой статье.
Механизм защиты временной метки блока Биткойн
Перед обсуждением атаки с искажением времени давайте сначала рассмотрим два основных правила, которые в настоящее время Биткойн использует для предотвращения манипуляций с временем:
Медианное прошлое время (MPT) правило: временная метка блока должна быть позже медианного времени предыдущих 11 блоков.
Правила времени блоков в будущем: временная метка блока не может опережать медианное время узлов-партнёров более чем на 2 часа.
Эти два правила предотвращают слишком ранние или поздние временные метки блока. Однако атака на искажение времени как раз использует уязвимости этих правил, подделывая временные метки, чтобы вернуться далеко в прошлое.
Период настройки сложности Биткойна включает 2016 блоков, что составляет примерно две недели. При расчете настройки сложности майнинга протокол рассчитывает разницу временных меток между первым и последним блоками в окне из 2016 блоков. Однако, когда Сатоши Накамото разрабатывал, он допустил небольшую ошибку: он использовал 2016 вместо 2015 для расчета целевого времени. Это привело к тому, что целевое время оказалось на 0.05% дольше, чем должно быть, что сделало фактический целевой интервал между блоками Биткойна 10 минут и 0.3 секунды, а не ровно 10 минут.
Хотя эта ошибка в 0,3 секунды сама по себе не имеет большого значения, она привела к более серьезной уязвимости. Расчет сложности основывается только на первых и последних двух блоках каждого окна из 2016 блоков, что создает возможность для атак с искажением времени.
Принцип атаки временного искажения
Суть атаки на искажение времени заключается в манипуляции временными метками блоков. Злоумышленник может установить временные метки большинства блоков так, чтобы они были только на 1 секунду позже временной метки предыдущего блока, в то время как каждые 6 блоков временная метка продвигается вперед на 1 секунду, чтобы соответствовать правилам MPT. В последнем блоке каждого периода изменения сложности злоумышленник устанавливает временную метку на реальное время, а первая временная метка следующего периода снова устанавливается на прошлое.
Такое действие приведет к тому, что время блокчейна будет все больше отставать от реального времени, что, в свою очередь, повлияет на корректировку сложности. Начиная со второго цикла корректировки, сложность значительно снизится, что позволит злоумышленникам с огромной скоростью создавать блоки и получать большое количество Биткойн.
Влияние и осуществимость атаки
Теоретически, такая атака может привести к катастрофическим последствиям. В экстремальных случаях сложность может быть снижена до более чем 10 блоков в секунду. Тем не менее, реализация такой атаки также сталкивается с множеством проблем:
Необходимо контролировать большую часть вычислительной мощности.
Процесс атаки полностью виден, возможно, потребуется экстренное исправление.
Решение
Чтобы исправить этот недостаток, разработчики предложили относительно простое решение: требовать, чтобы время первого блока нового периода сложности не было раньше определенного времени последнего блока предыдущего периода. В настоящее время предлагаемый временной интервал составляет 2 часа, что составляет лишь 0,6% от целевого времени периода корректировки сложности и может эффективно ограничить степень манипуляции сложностью.
Это решение эффективно защищает от атак временной искажения и минимизирует риск случайного создания недействительных токенов. Оно соответствует существующим правилам времени будущих блоков, позволяя майнерам исправлять максимальную допустимую временную ошибку в одном блоке.
В целом, это решение сохраняет безопасность сети Биткойн, одновременно минимизируя изменения в существующих правилах, что делает его относительно консервативным и эффективным решением.
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
8 Лайков
Награда
8
4
Поделиться
комментарий
0/400
DataPickledFish
· 23ч назад
Давно следовало бы отремонтировать. В мире криптовалют говорят, что безопасность — это просто шутка.
Посмотреть ОригиналОтветить0
NftRegretMachine
· 23ч назад
Ну и дела, теперь Биткойн даже может путешествовать.
Посмотреть ОригиналОтветить0
New_Ser_Ngmi
· 08-03 02:11
А, это спешите починить, пока старый Накмото еще жив.
Посмотреть ОригиналОтветить0
SerumDegen
· 08-03 02:00
ngmi если ты все еще думаешь, что btc без ошибок... был rekt из-за проблем с временными метками прежде, честно говоря
Биткойн исправил уязвимость временного искажения, алгоритм трудностей с перенацеливанием был улучшен.
Биткойн исправление уязвимости временного искажения
В последнее время один из разработчиков Биткойна предложил новую улучшенную версию, целью которой является исправление нескольких уязвимостей и слабых мест, существующих в протоколе Биткойна на протяжении многих лет. Одной из более серьезных уязвимостей является "атака искажения времени", которую мы подробно рассмотрим в этой статье.
Механизм защиты временной метки блока Биткойн
Перед обсуждением атаки с искажением времени давайте сначала рассмотрим два основных правила, которые в настоящее время Биткойн использует для предотвращения манипуляций с временем:
Медианное прошлое время (MPT) правило: временная метка блока должна быть позже медианного времени предыдущих 11 блоков.
Правила времени блоков в будущем: временная метка блока не может опережать медианное время узлов-партнёров более чем на 2 часа.
Эти два правила предотвращают слишком ранние или поздние временные метки блока. Однако атака на искажение времени как раз использует уязвимости этих правил, подделывая временные метки, чтобы вернуться далеко в прошлое.
! Нарушение безопасности биткоина: атака с искажением времени
Ошибка вычислений Сатоши Накамото
Период настройки сложности Биткойна включает 2016 блоков, что составляет примерно две недели. При расчете настройки сложности майнинга протокол рассчитывает разницу временных меток между первым и последним блоками в окне из 2016 блоков. Однако, когда Сатоши Накамото разрабатывал, он допустил небольшую ошибку: он использовал 2016 вместо 2015 для расчета целевого времени. Это привело к тому, что целевое время оказалось на 0.05% дольше, чем должно быть, что сделало фактический целевой интервал между блоками Биткойна 10 минут и 0.3 секунды, а не ровно 10 минут.
Хотя эта ошибка в 0,3 секунды сама по себе не имеет большого значения, она привела к более серьезной уязвимости. Расчет сложности основывается только на первых и последних двух блоках каждого окна из 2016 блоков, что создает возможность для атак с искажением времени.
Принцип атаки временного искажения
Суть атаки на искажение времени заключается в манипуляции временными метками блоков. Злоумышленник может установить временные метки большинства блоков так, чтобы они были только на 1 секунду позже временной метки предыдущего блока, в то время как каждые 6 блоков временная метка продвигается вперед на 1 секунду, чтобы соответствовать правилам MPT. В последнем блоке каждого периода изменения сложности злоумышленник устанавливает временную метку на реальное время, а первая временная метка следующего периода снова устанавливается на прошлое.
Такое действие приведет к тому, что время блокчейна будет все больше отставать от реального времени, что, в свою очередь, повлияет на корректировку сложности. Начиная со второго цикла корректировки, сложность значительно снизится, что позволит злоумышленникам с огромной скоростью создавать блоки и получать большое количество Биткойн.
Влияние и осуществимость атаки
Теоретически, такая атака может привести к катастрофическим последствиям. В экстремальных случаях сложность может быть снижена до более чем 10 блоков в секунду. Тем не менее, реализация такой атаки также сталкивается с множеством проблем:
Решение
Чтобы исправить этот недостаток, разработчики предложили относительно простое решение: требовать, чтобы время первого блока нового периода сложности не было раньше определенного времени последнего блока предыдущего периода. В настоящее время предлагаемый временной интервал составляет 2 часа, что составляет лишь 0,6% от целевого времени периода корректировки сложности и может эффективно ограничить степень манипуляции сложностью.
Это решение эффективно защищает от атак временной искажения и минимизирует риск случайного создания недействительных токенов. Оно соответствует существующим правилам времени будущих блоков, позволяя майнерам исправлять максимальную допустимую временную ошибку в одном блоке.
В целом, это решение сохраняет безопасность сети Биткойн, одновременно минимизируя изменения в существующих правилах, что делает его относительно консервативным и эффективным решением.