26 марта 2025 года один из разработчиков Биткойн предложил новую инициативу по улучшению, известную как "мягкий форк Большого консенсуса". Это обновление направлено на исправление нескольких уязвимостей и слабостей, которые долгое время существовали в протоколе Биткойн. Одна из наиболее серьезных уязвимостей называется "атака временного искажения", что и будет основным предметом обсуждения в данной статье.
Механизм защиты временной метки блока Биткойна
Перед тем как обсудить атаку на искажение времени, давайте сначала вспомним текущие правила защиты от манипуляции временем:
Медианное прошедшее время ( MPT ) правило: временная метка блока должна быть позже медианного времени последних одиннадцати блоков.
Правила времени будущего блока: на основе константы MAX_FUTURE_BLOCK_TIME, временная метка блока не может опережать медианное время узлов-соседей более чем на 2 часа. Максимальное допустимое расхождение между временем, предоставленным узлом, и локальными системными часами составляет 90 минут в качестве дополнительной меры безопасности.
Правила MPT обеспечивают, что блоки не возвращаются слишком далеко в прошлое, в то время как правила будущих блоков предотвращают их чрезмерное продвижение в будущее. Стоит отметить, что нельзя внедрить механизм, аналогичный правилам будущих блоков, чтобы предотвратить наличие у блоков временных меток из прошлого, так как это может повлиять на первоначальную синхронизацию блокчейна. Атака временного искажения включает в себя подделку временных меток, чтобы они были далеки в прошлом.
Ошибка вычислений в исходном коде
В протоколе Биткойна есть небольшая, но заметная вычислительная ошибка. При расчете корректировки сложности майнинга протокол использует 2016 блоков в качестве расчетной базы, тогда как на самом деле следовало бы использовать интервал в 2015 блоков. Это приводит к тому, что целевое время больше положенного на 0,05%, в результате чего фактический целевой интервал создания блока Биткойна составляет 10 минут и 0,3 секунды, а не ровно 10 минут.
Хотя эта ошибка в 0,3 секунды в целом не имеет большого влияния, она связана с другой более серьезной проблемой. Расчет сложности основан на первом и последнем блоке в каждом окне из 2016 блоков, и этот метод имеет недостатки. Более разумным подходом было бы вычислить разницу во времени между последним блоком предыдущего окна из 2016 блоков и последним блоком текущего окна.
Принцип атаки с искажением времени
Атака с искажением времени использует вышеупомянутое вычислительное отклонение. В идеальном случае, предположим, что майнинг полностью централизован, злоумышленник может манипулировать временными метками блоков следующим образом:
Большинство временных меток блоков опережают временные метки предыдущего блока всего на одну секунду.
Каждые шесть блоков временная метка перемещается вперед на одну секунду, чтобы соответствовать правилам MTP.
В последнем блоке каждого периода корректировки сложности установить временную метку на реальное время.
Время метки первого блока нового периода сложности снова вернулось в прошлое, на секунду раньше, чем предпоследний блок предыдущего периода.
Такая операция приведет к тому, что время блокчейна постепенно отстает от реального времени, в то время как сложность постоянно растет. Однако в конце каждого периода корректировки сложности, поскольку последний блок использует реальную метку времени, это приведет к снижению сложности. По мере продолжения атаки сложность значительно снизится, позволяя злоумышленнику создавать блоки с очень высокой скоростью и потенциально получать большое количество Биткойн.
Жизнеспособность и вызовы атак
Несмотря на то, что эта атака теоретически имеет разрушительный эффект, ее реализация сталкивается с множеством проблем:
Возможно, потребуется контролировать большую часть сетевой мощности.
Существование честных майнеров увеличивает сложность атак.
Правила MTP и честная временная метка ограничат степень отката злонамеренных временных меток.
Если честный майнер сгенерирует первый блок любого окна регулировки сложности, атака этого цикла будет неэффективна.
Атакующие действия на блокчейне видны публично и могут вызвать экстренное мягкое форк-исправление.
Потенциальные решения
Чтобы исправить эту уязвимость, существует несколько возможных решений:
Измените алгоритм настройки сложности, вычислите временной интервал между разными окнами блоков 2016 и исправьте вычислительную ошибку.
Отменить правила MTP, требующие, чтобы время каждого блока должно двигаться вперед.
Установить новые ограничения: требуется, чтобы время первого блока нового трудного периода не было раньше определенного времени перед последним блоком предыдущего периода (например, 10 минут или 2 часа).
В последнем предложении "Большого консенсуса по очистке" предлагается установить лимит времени в 2 часа. Этот лимит составляет примерно 0,6% от целевого времени цикла корректировки сложности, что может эффективно ограничить степень манипуляции сложностью.
С помощью внедрения этих улучшений сеть Биткойн сможет лучше противостоять атакам временного искажения, что дополнительно усилит ее безопасность и стабильность.
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
8 Лайков
Награда
8
6
Поделиться
комментарий
0/400
LuckyBearDrawer
· 5ч назад
Этот баг на самом деле сложнее, чем сложность майнинга.
Посмотреть ОригиналОтветить0
MetaverseVagabond
· 5ч назад
Ай ми-ми! Снова возникла проблема.
Посмотреть ОригиналОтветить0
DataBartender
· 5ч назад
Похоже, это снова божественный баг. Я сначала принесу табуретку.
Посмотреть ОригиналОтветить0
EyeOfTheTokenStorm
· 5ч назад
Ай, снова кто-то играет с Меткой времени. Открыть лонг или Шорт? Не паникуйте, ребята.
Посмотреть ОригиналОтветить0
airdrop_huntress
· 5ч назад
Что еще происходит? Почему речь зашла о машине времени??
Посмотреть ОригиналОтветить0
just_another_wallet
· 6ч назад
Ай, разрабатываю уже столько лет, уязвимости одна за другой.
Биткойн сталкивается с риском атак временной искажения. Новое предложение может решить проблемы безопасности.
Биткойн безопасность: атака искажения времени
Обзор
26 марта 2025 года один из разработчиков Биткойн предложил новую инициативу по улучшению, известную как "мягкий форк Большого консенсуса". Это обновление направлено на исправление нескольких уязвимостей и слабостей, которые долгое время существовали в протоколе Биткойн. Одна из наиболее серьезных уязвимостей называется "атака временного искажения", что и будет основным предметом обсуждения в данной статье.
Механизм защиты временной метки блока Биткойна
Перед тем как обсудить атаку на искажение времени, давайте сначала вспомним текущие правила защиты от манипуляции временем:
Медианное прошедшее время ( MPT ) правило: временная метка блока должна быть позже медианного времени последних одиннадцати блоков.
Правила времени будущего блока: на основе константы MAX_FUTURE_BLOCK_TIME, временная метка блока не может опережать медианное время узлов-соседей более чем на 2 часа. Максимальное допустимое расхождение между временем, предоставленным узлом, и локальными системными часами составляет 90 минут в качестве дополнительной меры безопасности.
Правила MPT обеспечивают, что блоки не возвращаются слишком далеко в прошлое, в то время как правила будущих блоков предотвращают их чрезмерное продвижение в будущее. Стоит отметить, что нельзя внедрить механизм, аналогичный правилам будущих блоков, чтобы предотвратить наличие у блоков временных меток из прошлого, так как это может повлиять на первоначальную синхронизацию блокчейна. Атака временного искажения включает в себя подделку временных меток, чтобы они были далеки в прошлом.
Ошибка вычислений в исходном коде
В протоколе Биткойна есть небольшая, но заметная вычислительная ошибка. При расчете корректировки сложности майнинга протокол использует 2016 блоков в качестве расчетной базы, тогда как на самом деле следовало бы использовать интервал в 2015 блоков. Это приводит к тому, что целевое время больше положенного на 0,05%, в результате чего фактический целевой интервал создания блока Биткойна составляет 10 минут и 0,3 секунды, а не ровно 10 минут.
Хотя эта ошибка в 0,3 секунды в целом не имеет большого влияния, она связана с другой более серьезной проблемой. Расчет сложности основан на первом и последнем блоке в каждом окне из 2016 блоков, и этот метод имеет недостатки. Более разумным подходом было бы вычислить разницу во времени между последним блоком предыдущего окна из 2016 блоков и последним блоком текущего окна.
Принцип атаки с искажением времени
Атака с искажением времени использует вышеупомянутое вычислительное отклонение. В идеальном случае, предположим, что майнинг полностью централизован, злоумышленник может манипулировать временными метками блоков следующим образом:
Такая операция приведет к тому, что время блокчейна постепенно отстает от реального времени, в то время как сложность постоянно растет. Однако в конце каждого периода корректировки сложности, поскольку последний блок использует реальную метку времени, это приведет к снижению сложности. По мере продолжения атаки сложность значительно снизится, позволяя злоумышленнику создавать блоки с очень высокой скоростью и потенциально получать большое количество Биткойн.
Жизнеспособность и вызовы атак
Несмотря на то, что эта атака теоретически имеет разрушительный эффект, ее реализация сталкивается с множеством проблем:
Потенциальные решения
Чтобы исправить эту уязвимость, существует несколько возможных решений:
В последнем предложении "Большого консенсуса по очистке" предлагается установить лимит времени в 2 часа. Этот лимит составляет примерно 0,6% от целевого времени цикла корректировки сложности, что может эффективно ограничить степень манипуляции сложностью.
С помощью внедрения этих улучшений сеть Биткойн сможет лучше противостоять атакам временного искажения, что дополнительно усилит ее безопасность и стабильность.