Главная » КРИПТОВАЛЮТА » Bitcoin Core работает над решением проблемы «атаки искажения времени»

Bitcoin Core работает над решением проблемы «атаки искажения времени»

Bitcoin Core работает над решением проблемы «атаки искажения времени»

Разработчики Биткоина имеют разногласия по многим вопросам, включая и мнение относительно необходимости решения различных проблем. Это касается и давней проблемы «атаки искажения времени» (timewarp attack).

Соучредитель Blockstream Марк Фриденбах (Mark Friedenbach) недавно обнаружил, что эксплойт можно использовать для поддержки масштабирования Биткоина, то есть привлечь больше пользователей и обрабатывать больше транзакций быстрее, если разработчики примут идею и воплотят ее в жизнь.

Но с момента публичного раскрытия новой концепции на прошлой неделе фокус дискуссии сместился в область атаки, в рамках которой майнеры могут представлять блоки с неверными временными отметками с целью снизить сложность создания новых блоков (трюк, который может помочь им заработать и получить больше вознаграждений).

В результате, участники сообщества разработчиков по всей видимости разделились в мнениях относительно решения проблемы, которая обсуждается с 2012 года.

Грегори Максвелл, соучредитель Blockstream и один из самых известных разработчиков Биткоина, например, недавно призвал исправить давнюю возможность атаки в рассылке для разработчиков. Максвелл не высказался относительно концепции Фриденбаха, но этот призыв появился вскоре после того, как началась дискуссия об идее, получившей название Forward Blocks.

Исследование Фриденбаха предлагает концепцию, которую разработчики, стремящиеся защитить протокол, находят весьма заманчивой. Она позволяет увеличить размер блока Биткоина без необходимости тотального обновления всех пользователей, которые работают с программным обеспечением (учитывая, что этот параметр долгое время был камнем преткновения внутри сообщества, некоторые считают эту идею своего рода «прорывом»).

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

Путешествия во времени

Для начала необходимо разобраться, почему эта атака вообще возможна.

Майнеры в сети сообщают о времени совершения транзакции или создания блока. Есть небольшой шанс, что кто-то может манипулировать временем, даже соблюдая правила протокола Биткоина, которые постоянно проверяют сетевые узлы.

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

Чтобы выяснить, почему это происходит, аналитическая блокчейн-компания Chainalysis недавно выпустила
отчет, в котором рассказывалось о том, как изменилась интенсивность подобных ошибок с течением времени.

«Снижающееся со временем количество ошибок во временных метках отражает эволюцию вовлеченных в работу пользователей», — отмечает главный экономист и соавтор отчета Филипп Грэдвелл (Philip Gradwell) утверждая, что количество ошибок временных меток «резко возрастает», когда в майнинговой индустрии происходит технологическое изменение.

Например, когда майнеры начали объединяться вместе, чтобы сформировать «пулы» в начале 2012 года, количество ошибок временных отметок увеличилось до 8%. По утверждению Грэдвелла, эти данные свидетельствуют о том, что ошибки происходят случайно, а не со злым умыслом, поскольку майнерам необходимо привыкнуть к новому оборудованию.

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

К счастью, подобную атаку достаточно сложно осуществить.

«Я, как и многие другие, не делал своим приоритетом устранение этой уязвимости, потому что она требует подавляющего большинства хэшрейта и может быть легко заблокирована, если кто-то начнет ее использовать», — сказал Максвелл.

В случае, когда одна группа майнеров получает подавляющее большинство хэшрейта, атака искажения времени была бы наименьшей проблемой для сообщества Биткоина. Это означало бы централизацию сети, а именно конец децентрализации Биткоина, которая является одной из его ключевых характеристик. Не говоря уже о том, что тогда майнеры смогут выполнять так называемую «атаку 51%», чтобы благодаря своему превосходству оказывать влияние на сеть.

Предложения

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

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

Читайте также:  Суд Торонто конфискует $1.4 млн в BTC у онлайн-торговца наркотиками

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

«Обратная совместимость» — ключевая характеристика. Требование состоит в том, чтобы изменение не спровоцировало разделение сети.

После запроса Максвелла появилось несколько разных предложений.

Разработчик Bitcoin Core Джонсон Лау (Johnson Lau) выдвинул пару идей, как хороших, так и плохих, чтобы показать компромиссы различных подходов. Он утверждал, что самый «наивный» подход должен состоять в требовании того, чтобы блок не ставил время меньшее, чем у более раннего блока.

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

«Цель состоит в том, чтобы найти [временной интервал], который будет достаточно малым, чтобы предотвратить атаку искажения времени, но также и достаточно большим, чтобы избежать разделения», — сказал он, добавив, что это может быть достигнуто при помощи «более слабой» версии этого наивного подхода.

Идея Лау даже вызвала небольшую философскую дискуссию о «софтфорках» — обратно совместимом способе внесения подобных изменений в код Биткоина и о том, как разные решения могут иметь разные последствия.

«В целом, софтфорки лучше, так как они не обездоливают майнеров, которые решили не обновляться», — написал
создатель BitTorrent Брэм Коэн (Bram Cohen), который в данный момент сосредоточил усилия своих разработчиков на криптовалютной индустрии.

В целом он поддержал предложение Лау, но поспорил о временном интервале продолжительностью три часа. «Проблема в том, что он все равно позволяет осуществление атак, хоть и в меньшей степени», — сказал Коэн. Другой разработчик Скотт Робертс (Scott Roberts) соглашается с Коэном, хотя считает, что три часа могут быть «не совсем подходящим интервалом».

«Я не знаю, какое решение будет принято в итоге, но я думаю, что исправление должно заключаться в ограничении временных отметок на плюс-минус 24 часа от предыдущей отметки», — сказал Робертс.

Другая идея

Есть проблема, которая заключается в том, что искоренение атаки искажения времени разрушит концепцию Forward Blocks.

«Решение проблемы атаки искажения времени приведет к невозможности достижения внутрисетевого масштабирования по концепции Forward Blocks. Возможно, все же стоит развертывать обновление proof-of-work или повышать устойчивость к цензуре шардинга», — сказал Фриденбах. «Но тогда главное преимущество масштабирования Биткоина, которое так будоражит людей, исчезнет».

Размышляя об этом, Фриденбах внес еще одно предложение, которое сохранило бы Forward Blocks, но исключило бы «худшие эксплойты» атаки искажения времени. Он утверждает, что «оно может быть развернуто раньше, чтобы предотвратить опрометчивое использование ошибки искажения времени».

Но многие разработчики Биткоина не уверены, что концепцию Forward Blocks необходимо сохранить в чистом виде.

Генеральный директор Blockstream Адам Бэк (Adam Back) утверждает, что, хотя он считает это исследование интересным, он не уверен, что сообщество поддержит его.

«Я думаю, что полезно изучить технические возможности, что и сделал Марк, но основное ограничение заключается в том, будет ли достигнут консенсус в отношении того, чтобы осуществить большой компромисс между децентрализацией и устойчивостью к цензуре для достаточно жесткого масштабирования первого уровня», — сказал он.

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

Он говорит, что существуют «более простые и менее заезженные подходы», чем тот, который предложил Фриденбах, чтобы ускорить масштабирование Биткоина первого уровня.

Однако Фриденбах продолжает утверждать, что Forward Blocks должны быть сохранены в качестве инструмента:

«Опасные последствия ошибки искажения времени можно предотвратить, не исправляя ошибку полностью, и, следовательно, не блокируя Forward Blocks или связанные с ними решения для масштабирования».

Источник