Сооснователь Blockstream Марк Фриденбах в ходе своего свежего исследования под названием Forward Blocks обнаружил, что давно известный баг биткоина, который потенциально позволяет реализовать атаку Time Warp (атаку временного скачка, или TW-атаку), можно использовать для масштабирования сети главной криптовалюты. Автор концепции утверждает, что в случае её одобрения разработчиками можно будет привлечь больше пользователей и обрабатывать транзакции намного быстрее.
Вместе с тем предложение Фриденбаха стало причиной новых дискуссий вокруг TW-атаки. Злонамеренный майнер может реализовать её путём добычи последнего блока перед перерасчётом сложности майнинга: недобросовестный игрок приписывает блоку ложную временную отметку, тем самым уменьшая сложность. Этот вектор атаки активно обсуждался в сообществе разработчиков биткоина ещё в 2012 году, но из-за сложности реализации (из-за перерасчёта каждые две недели при огромном хешрейте вероятность успеха пренебрежимо мала) такая атака считается практически неосуществимой.
Грег Максвелл, соучредитель Blockstream и один из самых известных разработчиков биткоина, в своём недавнем письме коллегам предложил исправить этот баг. Он не прокомментировал предложение Фриндебаха, хотя письмо было разослано на фоне дискуссий вокруг его исследования.
Фриденбах описывает концепцию увеличения блока биткоина без необходимости обновления программного обеспечения участников сети (некоторые считают эту идею своего рода прорывом). Вместе с этим исследование привлекло ещё больше внимания к возможности устранения бага Time Warp.
Путешествие во времени
Для начала нужно понять, почему эта угроза до сих пор существует.
Отдельные участники (майнеры) сообщают о времени, когда в сети произошло какое-либо событие (совершена транзакция или создан новый блок). Есть небольшая вероятность манипуляции временем даже без нарушений правил кода биткоина, соблюдение которых постоянно проверяют ноды сети. Таким образом, майнеры могут сообщать о блоке с неправильной временной меткой.
Тут стоит упомянуть, что у биткоина периодически встречаются блоки c временными метками не в хронологическом порядке. Чтобы выяснить, почему это происходит, аналитики из блокчейн-компании Chainalysis подготовили отчёт, в котором проанализировали то, как менялась частота таких аномалий.
В отчёте показано снижение частоты ошибок временной метки, что отражает эволюцию майнинга в сети. Филипп Грэдвелл, главный экономист Chainalysis и один из соавторов отчёта, утверждает, что, согласно собранным данным, ошибки временных меток в биткоине выглядят как «всплески» во время технологических сдвигов в майнинговой индустрии. Например, когда майнеры начали объединяться в пулы в начале 2012 года, ошибки временной метки стали происходить на 8% чаще. Грэдвелл утверждает: эти данные свидетельствуют о том, что ошибки случайны, а не созданы злоумышленниками; просто майнерам необходимо «привыкнуть» к новому оборудованию.
TW-атака требует весьма чётких манипуляций со стороны майнеров, которые надеются заработать таким путём больше денег. Атака возможна, когда майнеры объединяются и сообщают некорректные временные метки с целью манипулирования сложностью майнинга. Максвелл говорит:
Для меня и многих других устранение этой уязвимости не было приоритетом, потому что такая атака требует хешрейта большинства майнеров и в случае возникновения может быть легко остановлена.
Даже в том случае, если одна группа майнеров соберёт большую часть хешрейта, TW-атака будет наименее опасной для биткоина. По словам Грэдвелла, тогда возникнут другие проблемы вроде риска атаки 51%.
Предложения
Разработчики рассматривают TW-атаку как проблему, которая при необходимости может быть легко исправлена. В своём письме разработчикам Максвелл упомянул, что у него есть идея, которую он проверил в тестнете биткоина несколько лет назад, но он не хочет на ней зацикливаться:
Прежде чем я сдую пыль со своей старой идеи и, возможно, преждевременно сконцентрируюсь на конкретном подходе, я хотел бы узнать о других возможных обратно совместимых решениях по устранению TW-атаки.
Термин «обратная совместимость» здесь критически важен. Суть этой характеристики в том, что обновление не должно предполагать возможность разделения сети.
В ответ на письмо Максвелла несколько человек предложили свои решения. Разработчик Bitcoin Core Джонсон Лау описал несколько идей (хороших и плохих), чтобы найти компромиссный подход. По его словам, самое «наивное» решение состоит в том, чтобы запретить новому блоку показывать более раннюю временную метку, но это может привести к тому, что программное обеспечение биткоина будет разделено на две версии. Он говорит:
Цель в том, чтобы найти короткий временной отрезок для предотвращения TW-атаки, достаточный для предотвращения разделения сети.
Он добавил, что этот подход может быть реализован в более слабой версии «наивного» подхода.
Идея Лау вызвала небольшую дискуссию о софтфорках — обратно совместимом способе внесения изменений в код биткоина. Создатель BitTorrent Брэм Коэн говорит, что в целом софтфорки представляют собой лучшее решение, поскольку они не «выбрасывают за борт» майнеров, которые решили не обновляться. Он поддержал Лау, но его предложение о трёхчасовом окне назвал спорным. Другой разработчик, Скотт Роберт, предложил альтернативное решение, но оно, по его же словам, оказалось ошибочным для биткоина. Роберт соглашается с мнением Коэна, хотя считает, что трёхчасовой интервал «слишком узкий», и добавляет:
Я не знаю, какое решение в итоге будет принято, но думаю, что исправление должно быть таким же простым, как ограничение временных меток на плюс-минус 24 часа от предыдущей метки.
Другая идея
С другой стороны, устранение возможности TW-атаки полностью разрушает концепцию Forward Blocks. Фриденбах говорит:
Устранение TW-атаки сделает невозможной реализацию концепции масштабирования Forward Blocks. Возможно, стоит развёртывать обновление Proof-of-Work или повышать цензуроустойчивость шардингом, но главное преимущество масштабирования биткоина в таком случае исчезнет.
Размышляя об этом, Фриденбах внёс ещё одно предложение, которое сохраняет концепцию Forward Blocks, но исключает «худшие эксплойты» TW-атаки. Он заявил, что это предложение стоит развернуть как можно раньше для предотвращения использования бага Time Warp.
Вместе с тем многие разработчики биткоина сходятся во мнении, что концепцию Forward Blocks не стоит реализовывать в чистом виде. Главный исполнительный директор Blockstream Адам Бэк говорит, что, считая это исследование интересным, он не уверен в том, что его поддержит сообщество:
Я думаю, что было бы полезно изучить технические возможности, которые предложил Марк, но главный вопрос заключается в том, будет ли достигнут компромисс между децентрализацией и цензуроустойчивостью для брутфорса масштабирования первого уровня
И, хотя предложение Forwawd Blocks интересно само по себе, потому что оно увеличивает пропускную способность биткоина без необходимости хардфорка, тип предлагаемых изменений сохраняет высокую вероятность разделения сети. Поскольку изменения, которые могли бы уменьшить децентрализацию сети, всегда вызывают в сообществе особенно ожесточённую дискуссию, Бэк утверждает, подобное предложение не будет принято. Он добавляет, что «есть, вероятно, более простые и менее хакерские подходы» к масштабированию биткоина, чем концепция Фриденбаха. Сам Фриденбах продолжает утверждать, что концепция Forwad Blocks достойна того, чтобы сохранить её как инструмент:
Опасные последствия бага Time Warp можно предотвратить, не исправляя ошибку полностью и, следовательно, не списывая со счетов Forward Blocks и другие решения, связанные с масштабированием биткоина.
По материалам CoinDesk