LIVE

Обнаружена критическая уязвимость в алгоритме корректировки сложности биткоина

Исследователь Лоик Морель выявил ошибку нулевого дня в механизме корректировки сложности биткоина, которая теоретически позволяет злоумышленнику снизить сложность майнинга и генерировать блоки с аномально высокой скоростью. Уязвимость связана с некорректным расчетом временных интервалов между блоками.

#BTC
Обнаружена критическая уязвимость в алгоритме корректировки сложности биткоина

Суть проблемы: ошибка в расчете сложности

С момента запуска сети биткоина в ее алгоритме корректировки сложности присутствовала вычислительная ошибка, которая, как выяснилось, потенциально могла быть использована для аномально быстрого создания блоков. Об этом сообщил исследователь Лоик Морель. Он подчеркнул, что данная неточность, допущенная еще Сатоши Накамото, связана с механизмом пересчета сложности, который активируется каждые 2016 блоков, что составляет примерно две недели.

Цель корректировки сложности — поддерживать среднее время генерации одного блока на уровне 10 минут, независимо от колебаний общей вычислительной мощности (хешрейта) сети. Для этого узлы измеряют продолжительность предыдущего периода и сравнивают ее с целевым значением (2016 блоков * 600 секунд/блок = 1 209 600 секунд). На основе этого сравнения происходит соответствующее изменение сложности.

«Именно в этих расчетах кроется ошибка. Для измерения тайминга блоков в прошедшем периоде узел сравнивает метку времени первого блока периода с меткой времени последнего. Инстинктивно это кажется логичным, но на самом деле это ошибка, поскольку между первым и последним блоками периода всего 2015 интервалов, а не 2016», — пояснил Морель. Если обозначить t0 как метку времени первого блока, а t2015 как метку последнего, узел вычисляет прошедшее время как T = t2015 - t0. Таким образом получается 2015 интервалов (от t0 до t1 > от t1 до t2 > ... > от t2014 до t2015). Для получения 2016 интервалов необходимо использовать другую формулу: T = t2015 - t-1, где t-1 — метка времени последнего блока предыдущего периода. Это классическая ошибка «смещения на одну единицу» (off-by-one error).

Последствия уязвимости: атака «искривления времени»

На первый взгляд, эта ошибка вносит лишь незначительную погрешность, примерно 0,05%, в сторону слегка завышенной сложности. Однако настоящая опасность кроется в другом: недочет приводит к тому, что периоды корректировки сложности не перекрываются. Временная метка последнего блока одного периода не учитывается при расчете следующего. Этот разрыв создает условия для так называемой атаки «искривления времени» (time-warp attack).

Принцип атаки заключается в следующем: майнер, контролирующий значительную часть хешрейта сети, может манипулировать временными метками блоков. Он устанавливает минимально допустимые временные метки для всех блоков в текущем периоде (за исключением последнего). В последнем блоке периода злоумышленник искусственно назначает максимально допустимую временную метку. После завершения периода корректировки сложности, из-за этих манипуляций, измеренный период кажется системе значительно более долгим, чем был на самом деле. В результате сложность майнинга существенно снижается.

Атакующий повторяет аналогичные действия в следующем периоде. Поскольку периоды не перекрываются, первый блок второго периода атаки может иметь временную метку, относящуюся к далекому прошлому, в то время как предыдущий блок имеет временную метку в будущем. Этот искусственный разрыв между временными метками может увеличиваться от периода к периоду. Повторяя этот процесс многократно, злоумышленник теоретически способен снизить сложность майнинга до такого уровня, при котором он сможет генерировать до шести блоков в секунду, вместо стандартного одного блока каждые 10 минут.

«Последствия были бы ужасными: временные блокировки бесполезны, сеть перегружена, число реорганизаций увеличилось, а подтверждения транзакций потеряли ценность. Все это позволило бы злоумышленнику собирать вознаграждение за блокировку в бешеном темпе», — добавил исследователь.

Такая атака была бы невозможна, если бы первый и последний блоки двух последовательных периодов имели непрерывные временные метки.

Пути решения и контекст

Морель отметил, что эту проблему можно решить с помощью софтфорка в рамках предложения по улучшению биткоина BIP-0054. Данная инициатива предусматривает, что временная метка первого блока нового периода сложности не должна превышать временную метку последнего блока предыдущего периода более чем на два часа. Это ограничение восстанавливает «некоторую форму непрерывности» между периодами, эффективно предотвращая манипулирование временными промежутками и делая атаку «искажения времени» невыполнимой.

Хотя эта уязвимость существовала с самого начала, ее обнаружение и предложение решения подчеркивают постоянную работу сообщества над улучшением безопасности и стабильности сети биткоина. Подобные исследования критически важны для поддержания надежности децентрализованных систем. Ранее, в феврале, партнер Castle Island Ventures Ник Картер высказывал опасения по поводу «корпоративного захвата» биткоина на фоне потенциальной квантовой угрозы, что также указывает на необходимость постоянного развития и адаптации протокола к новым вызовам.

Что это значит для майнеров из РФ/СНГ?

Для майнеров из России и СНГ обнаружение такой уязвимости, хотя и теоретической, является важным напоминанием о необходимости следить за обновлениями протокола биткоина. В случае активации софтфорка BIP-0054, майнерам потребуется обновить свое программное обеспечение, чтобы соответствовать новым правилам сети. Это стандартная процедура, которая обеспечивает стабильную работу и участие в консенсусе. Отсутствие обновлений может привести к добыче невалидных блоков и потере вознаграждения. В целом, эта новость не несет непосредственной угрозы для текущей операционной деятельности, но подчеркивает важность участия в развитии экосистемы и своевременного реагирования на изменения.

Частые вопросы

Что за ошибка обнаружена в майнинге биткоина?
Обнаружена ошибка нулевого дня в механизме корректировки сложности биткоина, связанная с некорректным расчетом временных интервалов между блоками. Это теоретически позволяет злоумышленнику снизить сложность майнинга.
Какие последствия может иметь эта уязвимость?
Уязвимость может привести к атаке «искривления времени», при которой злоумышленник способен манипулировать сложностью и генерировать блоки с аномально высокой скоростью, что нарушит стабильность сети и обесценит подтверждения транзакций.
Что делать майнерам из РФ/СНГ в связи с этой новостью?
Майнерам следует отслеживать обновления протокола биткоина. В случае принятия BIP-0054, необходимо будет обновить программное обеспечение для корректной работы и участия в консенсусе сети, чтобы избежать добычи невалидных блоков.

Комментарии

0
    Станьте первым, кто прокомментирует эту новость.