Джеймсон Лопп ответил на критику в адрес разработчиков Bitcoin Core, и назвал коллективное управление залогом его безопасности

Упреки в захвате контроля над сетью биткоина и критика в сторону ее разработчиков периодически появляется в масс-медиа. В ответ на эти заявления Джеймсон Лопп – технический директор стартапа Casa, и ветеран криптоиндустрии – рассказал в своем блоге на Medium, как все происходит на самом деле. Он также объяснял, как именно принимают решения, и что основой является консенсус между разработчиками по поводу того, вносить тот или иной код в репозиторий GitHub.

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

На данный момент есть пять ключей, которыми владеют: Питер Велле, Владимир ван дер Лаан, Йонас Шнелли, Самуэль Добсон и Марко Фальке.

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

Именно потому Bitcoin Core имеет обширную систему интеграции, в функции которой входит проверка доверенных PGP-ключей.

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

Верифицированные при помощи PGP-ключа коды могут быть подвергнуты дополнительному аудиту. Любой другой разработчик может провести проверку его целостности на своем компьютере, называемую verify-commits.

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

Однако Лопп признает, что даже эта мера не является гарантией полной безопасности, хотя на данный момент она выполняет функцию мощного заслона на пути злоумышленников. По этой причине, сообщает технический директор Casa, лучшей линией обороны для Bitcoin Core, как и для любого другого проекта формата opensource, является постоянная бдительность. Чем больше разработчиков проверяют код, тем меньше вероятность проникновения в репозиторий зловредного кода.

В процесс разработки Bitcoin Core также включен пакет комплексного тестирования, которому подвергается каждый запрос на включение кода. Также его дополняет более обширное тестирование, выполняющееся каждую ночь. Каждый разработчик может открыто протестировать код при помощи клонирования репозитория GitHub. Пример покрытия кода можно увидеть на странице Марко Фальке.

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

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

Об этом в 2017 году говорил Грегори Максвелл на презентации релиза Bitcoin Core 0.15. Он рассказал, что тест – это тестирование софта, а тест теста – это софт, который нужно взломать для того, чтобы его протестировать.

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