Биткойн безопасность: анализ атак на временные искажения
В марте 2025 года один из разработчиков Биткойн предложил мягкое форк-решение под названием "Большой консенсус очистка". Это обновление направлено на исправление нескольких уязвимостей и слабостей, которые долгое время существовали в протоколе Биткойн, включая проблему повторных транзакций, о которой мы говорили ранее. В этой статье будет подробно рассмотрена другая, более серьезная уязвимость — "атака на искажение времени".
Перед тем как углубиться в обсуждение атак с искажением времени, нам нужно понять текущие правила защиты от манипуляций с временем:
Среднее прошедшее время ( MPT ) правило: временная метка блока должна быть позже среднего времени последних одиннадцати блоков.
Правила времени блоков в будущем: временная метка блока не должна превышать медианное время узловых пиров более чем на 2 часа. Разрешено максимальное отклонение времени узла от локальных системных часов в 90 минут.
Правила MPT предотвращают чрезмерное ретроактивное назначение временных меток блоков, в то время как правила будущих блоков ограничивают чрезмерное предварительное назначение временных меток. Стоит отметить, что невозможно строго ограничить временные метки прошлого так, как это делается для ограничения временных меток будущего, поскольку это может повлиять на процесс первоначальной синхронизации блокчейна. Атака временного искажения осуществляется путем подделки временных меток, относящихся к далекому прошлому.
Микроошибки в алгоритме регулировки сложности
Цикл корректировки сложности Биткойна включает 2016 блоков, с целевым интервалом между блоками в 10 минут, что примерно соответствует двум неделям времени. При расчете корректировки сложности майнинга протокол будет вычислять разницу временных меток между первым и последним блоками в соответствующем окне из 2016 блоков. Это окно фактически включает 2015 интервалов блоков (2016 минус 1). Таким образом, теоретически используемое целевое время должно составлять 60 секунд × 10 минут × 2015 интервалов = 1,209,000 секунд.
Однако, в протоколе Биткойн для расчета цели используется число 2016. 60 секунд × 10 минут × 2016 = 1,209,600 секунд. Это небольшая ошибка "на один" и, вероятно, вызвана путаницей между количеством блоков и количеством интервалов между блоками.
Эта ошибка приводит к тому, что целевое время превышает ожидаемое на 0,05%. Иными словами, фактический целевой интервал блоков Биткойна составляет не 10 минут, а 10 минут и 0,3 секунды. Это незначительное различие не имеет большого значения на практике, поскольку с момента появления Биткойна средний интервал блоков составляет около 9 минут 36 секунд, что значительно ниже 10 минут. Это в основном связано с постоянным ростом вычислительной мощности сети с 2009 года.
Принцип атаки временного искажения
Атака на искажение времени была впервые обнаружена примерно в 2011 году, она использует эту небольшую ошибку в расчете сложности. Предположим, что добыча полностью централизована, майнеры могут произвольно устанавливать временные метки в пределах, разрешенных протоколом. В этой атаке майнеры будут устанавливать временные метки большинства блоков так, чтобы они были только на 1 секунду позже, чем предыдущий блок, что позволяет блокчейну медленно двигаться вперед во времени, одновременно соблюдая правила MPT. Чтобы максимально замедлить продвижение времени, майнеры могут сохранять одинаковую временную метку на шести последовательных блоках, а затем увеличить на 1 секунду на седьмом блоке, и так продолжать.
Такие действия приведут к тому, что время в блокчейне постепенно отстает от реального времени, при этом сложность постоянно растет, что делает майнинг все более трудным. Однако, чтобы усилить эффект атаки, майнеры будут устанавливать временные метки на реальное время в последнем блоке каждого периода изменения сложности. А первый блок следующего периода будет установлен на время, чуть более позднее, чем за 1 секунду до предпоследнего блока предыдущего периода. Этот подход по-прежнему соответствует правилам MPT, поскольку отдельное отклонение не окажет значительного влияния на медиану 11 блоков.
Таким образом, сложность после первого периода не будет затронута. Но начиная со второго периода корректировки, сложность начнет снижаться. В это время майнеры смогут создавать блоки с высокой скоростью, потенциально производя большое количество Биткойн, что может привести к получению прибыли от продажи этих токенов.
Анализ жизнеспособности атаки
Хотя такая атака теоретически может быть разрушительной, ее реализация сталкивается с множеством проблем:
Возможно, потребуется контролировать большую часть сетевой вычислительной мощности.
Правила MTP и честные временные метки могут ограничить степень ретроактивного воздействия злонамеренных временных меток.
Если честный майнер сгенерирует первый блок в любом окне настройки сложности, атака в этом цикле будет неэффективна.
Процесс атаки виден всем, что может дать достаточно времени для выпуска срочного мягкого форка.
Потенциальные решения
Исправить этот уязвимость относительно просто, но может потребоваться изменение протокола мягкой вилки. Некоторые возможные решения включают в себя:
Изменить алгоритм настройки сложности, вычислить временной промежуток между различными окнами блоков 2016 и полностью исправить ошибку "на один меньше".
Отменить правила MTP, требуя, чтобы временные метки каждого блока строго увеличивались.
Установите новые правила ограничения, требуя, чтобы время первого блока нового периода сложности не было раньше определенного количества минут последнего блока предыдущего периода (рекомендуемый диапазон от 10 минут до 2 часов).
В последнем предложении по очищению общего консенсуса разработчики склоняются к установлению временного ограничения в 2 часа. Это ограничение составляет примерно 0,6% от целевого времени цикла корректировки сложности и может эффективно подавлять способность манипулировать сложностью вниз.
Независимо от того, какое решение будет принято в конечном итоге, исправление этой уязвимости进一步增强ит безопасность и стабильность Биткойн сети, создавая более прочную основу для её долгосрочного развития.
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
19 Лайков
Награда
19
7
Репост
Поделиться
комментарий
0/400
MysteryBoxOpener
· 08-01 13:07
Так много уязвимостей? Каждый день.
Посмотреть ОригиналОтветить0
WhaleSurfer
· 07-31 23:38
Снова занимаются этими вычурными методами атаки
Посмотреть ОригиналОтветить0
TokenTherapist
· 07-29 20:38
Снова что-то замышляют?
Посмотреть ОригиналОтветить0
ZenZKPlayer
· 07-29 20:20
Биткойн на самом деле безопасен или нет... После прочтения стало немного не по себе.
Посмотреть ОригиналОтветить0
CryptoPunster
· 07-29 20:15
Эта атака становится все более сложной, даже время начали играть в ловушки.
Посмотреть ОригиналОтветить0
PositionPhobia
· 07-29 20:13
Много теории, мало практики.
Посмотреть ОригиналОтветить0
GateUser-3824aa38
· 07-29 20:12
Много теории, действительно осмелитесь немного поиграть с btc?
Атака на временные искажения Биткойна: анализ потенциальных угроз и решений
Биткойн безопасность: анализ атак на временные искажения
В марте 2025 года один из разработчиков Биткойн предложил мягкое форк-решение под названием "Большой консенсус очистка". Это обновление направлено на исправление нескольких уязвимостей и слабостей, которые долгое время существовали в протоколе Биткойн, включая проблему повторных транзакций, о которой мы говорили ранее. В этой статье будет подробно рассмотрена другая, более серьезная уязвимость — "атака на искажение времени".
! Нарушение безопасности биткоина: атака с искажением времени
Механизм защиты временных меток блоков Биткойн
Перед тем как углубиться в обсуждение атак с искажением времени, нам нужно понять текущие правила защиты от манипуляций с временем:
Среднее прошедшее время ( MPT ) правило: временная метка блока должна быть позже среднего времени последних одиннадцати блоков.
Правила времени блоков в будущем: временная метка блока не должна превышать медианное время узловых пиров более чем на 2 часа. Разрешено максимальное отклонение времени узла от локальных системных часов в 90 минут.
Правила MPT предотвращают чрезмерное ретроактивное назначение временных меток блоков, в то время как правила будущих блоков ограничивают чрезмерное предварительное назначение временных меток. Стоит отметить, что невозможно строго ограничить временные метки прошлого так, как это делается для ограничения временных меток будущего, поскольку это может повлиять на процесс первоначальной синхронизации блокчейна. Атака временного искажения осуществляется путем подделки временных меток, относящихся к далекому прошлому.
Микроошибки в алгоритме регулировки сложности
Цикл корректировки сложности Биткойна включает 2016 блоков, с целевым интервалом между блоками в 10 минут, что примерно соответствует двум неделям времени. При расчете корректировки сложности майнинга протокол будет вычислять разницу временных меток между первым и последним блоками в соответствующем окне из 2016 блоков. Это окно фактически включает 2015 интервалов блоков (2016 минус 1). Таким образом, теоретически используемое целевое время должно составлять 60 секунд × 10 минут × 2015 интервалов = 1,209,000 секунд.
Однако, в протоколе Биткойн для расчета цели используется число 2016. 60 секунд × 10 минут × 2016 = 1,209,600 секунд. Это небольшая ошибка "на один" и, вероятно, вызвана путаницей между количеством блоков и количеством интервалов между блоками.
Эта ошибка приводит к тому, что целевое время превышает ожидаемое на 0,05%. Иными словами, фактический целевой интервал блоков Биткойна составляет не 10 минут, а 10 минут и 0,3 секунды. Это незначительное различие не имеет большого значения на практике, поскольку с момента появления Биткойна средний интервал блоков составляет около 9 минут 36 секунд, что значительно ниже 10 минут. Это в основном связано с постоянным ростом вычислительной мощности сети с 2009 года.
Принцип атаки временного искажения
Атака на искажение времени была впервые обнаружена примерно в 2011 году, она использует эту небольшую ошибку в расчете сложности. Предположим, что добыча полностью централизована, майнеры могут произвольно устанавливать временные метки в пределах, разрешенных протоколом. В этой атаке майнеры будут устанавливать временные метки большинства блоков так, чтобы они были только на 1 секунду позже, чем предыдущий блок, что позволяет блокчейну медленно двигаться вперед во времени, одновременно соблюдая правила MPT. Чтобы максимально замедлить продвижение времени, майнеры могут сохранять одинаковую временную метку на шести последовательных блоках, а затем увеличить на 1 секунду на седьмом блоке, и так продолжать.
Такие действия приведут к тому, что время в блокчейне постепенно отстает от реального времени, при этом сложность постоянно растет, что делает майнинг все более трудным. Однако, чтобы усилить эффект атаки, майнеры будут устанавливать временные метки на реальное время в последнем блоке каждого периода изменения сложности. А первый блок следующего периода будет установлен на время, чуть более позднее, чем за 1 секунду до предпоследнего блока предыдущего периода. Этот подход по-прежнему соответствует правилам MPT, поскольку отдельное отклонение не окажет значительного влияния на медиану 11 блоков.
Таким образом, сложность после первого периода не будет затронута. Но начиная со второго периода корректировки, сложность начнет снижаться. В это время майнеры смогут создавать блоки с высокой скоростью, потенциально производя большое количество Биткойн, что может привести к получению прибыли от продажи этих токенов.
Анализ жизнеспособности атаки
Хотя такая атака теоретически может быть разрушительной, ее реализация сталкивается с множеством проблем:
Потенциальные решения
Исправить этот уязвимость относительно просто, но может потребоваться изменение протокола мягкой вилки. Некоторые возможные решения включают в себя:
В последнем предложении по очищению общего консенсуса разработчики склоняются к установлению временного ограничения в 2 часа. Это ограничение составляет примерно 0,6% от целевого времени цикла корректировки сложности и может эффективно подавлять способность манипулировать сложностью вниз.
Независимо от того, какое решение будет принято в конечном итоге, исправление этой уязвимости进一步增强ит безопасность и стабильность Биткойн сети, создавая более прочную основу для её долгосрочного развития.