Можно ли вывести биткоин из строя, атаковав его кодовую базу?

Распределенная сеть биткоина следует набору правил, устанавливаемых при помощи 642 000 строк кода, хранение которого осуществляется в открытом репозитории на GitHub. Правом вносить изменения в него обладают лишь несколько человек.

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

Кто обслуживает код биткоина?

Сперва необходимо разобраться в том, как работает система. Только администраторы Bitcoin Core могут вносить существенные изменения в репозиторий на GitHub. Фактически эта роль закреплена за шестью разработчиками: Владимиром ван дер Лааном, Йонасом Шнелли, Марко Фальке, Сэмюэлом Добсоном, Майклом Фордом и Питером Вюлле.

Биткоин представляет собой ПО с открытым кодом, поэтому администраторы не назначаются официально, а ситуативно получают соответствующие полномочия от существующих администраторов, если кто-то из разработчиков демонстрирует достаточную квалификацию. Предположительно, основатель Bitcoin Foundation Гэвин Андресен назначил ведущим администратором Владимира ван дер Лаана, который несет основную ответственность за загрузку изменений в Bitcoin Core.

Для обновления кодовой базы биткоина команда Bitcoin Core изучает предлагаемый тысячами разработчиков код и может одобрить его, если посчитает уместным. У каждого администратора есть доступ к PGP-ключу, который необходим для подписания включаемых в репозиторий изменений.

Техдиректор кастодиального стартапа Casa Джеймсон Лопп сообщил: «Хотя существует несколько администраторских аккаунтов на организационном уровне, которым доступно включение кода в основную ветвь, это в большей степени техническая функция, чем наделяющая властью позиция».

Неавторизованный доступ к Bitcoin Core

Любая атака на кодовую базу биткоина, даже если она будет осуществлена сотрудниками GitHub, потребует наличия PGP-ключа.

«Работники GitHub могли бы из зловредных побуждений изменить код в репозитории Bitcoin Core. Вот почему разработчики подписывают релизы PGP-ключом. Если код на GitHub будет изменен злоумышленником, подписи не совпадут», – сказал исследователь Эндрю Янг.

Но что, если организатор атаки действительно завладеет PGP-ключом? «Если один из этих ключей подвергнется утечке, злоумышленник потенциально сможет изменить код в репозитории, – заявил исследователь Blockchain Research Lab Элиас Штреле, добавив, что разработчики предусмотрели и эту ситуацию. – Я предполагаю, что администраторы быстро создадут новый репозиторий с новыми PGP-ключами, загрузят в него неповрежденный код и попросят сообщество использовать этот репозиторий вместо измененного».

Администратор-злоумышленник

Рассмотрим сценарий, в котором злоумышленником оказался один из администраторов. В теории он может загрузить вредоносный код в надежде, что его никто не заметит.

«Из-за разнообразия игроков, которые должны принять изменения, достаточно сложно скрыть вредоносное изменение в Bitcoin Core, но, вероятно, это можно было бы сделать в рамках обновления, которое большинство считало бы хорошим, – сказал CEO Nym Technologies Харри Хэлпин. – По-настоящему злостные изменения распространялись бы с обновлениями, которые нравятся большинству!»

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

«Я считаю, что оно будет выловлено скриптом подтверждения подписи, когда в следующий раз кто-то оформит запрос на добавление кода или проведет тест, – сказал разработчик Томас Керин. – Внимание всех разработчиков сразу же будет приковано к произошедшему».

Похищение администраторов

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

Предположим, что все администраторы были арестованы, а злоумышленники сразу же начали распространять вредоносное обновление Bitcoin Core. Керин считает, что такой подход тоже не возымеет успеха: «Сообщество проведет форк репозитория, воспользовавшись последней полноценной версией, и будет отталкиваться от нее».

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

«Подвергшиеся манипуляциям ноды и функциональные ноды, вероятно, не смогут достичь консенсуса касаемо состояния блокчейна, что приведет к возникновению форка», – сказал Штреле.

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

Самозащита майнеров

Еще один уровень защиты – это майнеры биткоина, которые мотивированы проверять код на наличие уязвимостей. CEO Blockstream Адам Бэк отметил, что установка вредоносного кода не соответствует интересам операторов нод: «Не думаю, что из-за этого будет причинен какой-то вред людям, кроме как собственной финансовой защите операторов нод. Ноды, передающие неправильные блоки, будут отключены другими нодами, а если они будут передавать старые блоки, то их данные перепишут ноды с более актуальными блоками».

Другими словами, вредоносный код вряд ли получит достаточное распространение среди нод, чтобы оказать реальное влияние на сеть. «Сразу станет понятно, что их версия блокчейна не соответствует общепризнанной и потому будет отвергнута», – сказал аналитик Quantum Economics Джейсон Дин.

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

«Если хакер получит доступ к PGP-ключу от репозитория Bitcoin Core, он окажется примерно в таком же положении, что и голый бегун на футбольном поле. Он привлечет много внимания, вызовет некоторое замешательство, возможно, ненадолго прервет игру, но на этом все», – заявил Штреле.