Можно ли контролировать Bitcoin Core?

Можно ли контролировать Bitcoin Core?

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

Немного воспоминаний

Bitcoin Core – центральный узел для создания биткоин-протокола, а не «командно-контрольный пункт». Если он перестанет существовать, появится новый центральный узел: платформа, где он размещен (в данный момент – репозиторий GitHub) – это, скорее, дело удобства, а не цельности сети.

– В начале 2009-го исходный код для биткоина был лишь файлом формата .rar, находившийся на SourceForge. Его создатели делились с Накамото патчами для кода посредством е-мейлов;

– 30 октября 2009 года Sirius (Марти Молми, Martti Malmi) создал подверсию репозитория на SourceForge;

– в 2001-м «биткоин» перебрался с SourceForge на GitHub;

– в 2014 году «биткоин» переименовали в Bitcoin Core.

Верить нельзя никому

На GitHub полно аккаунтов «мейнтейнеров» (специалистов по техобслуживанию), имеющих возможность объединять коды основной версии проекта. Но если любой может объединять коды в главной версии, это скоро станет ситуацией, когда «на кухне чересчур много поваров». Вот почему Bitcoin Core держится принципа «минимума полномочий», когда любая власть, данная индивидууму, может быть легко отобрана в случае злоупотребления ею.

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

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

На конец прошлого года существовали такие доверенные идентификационные метки:

71A3B16735405025D447E8F274810B012346C9A6

133EAC179436F14A5CF1B794860FEB804E669320

32EE5C4C3FA15CCADB46ABE529D4BCB6416F53EC

B8B3F1C0E58C15DB6A81D30C3648A882F4316B9B

CA03882CB1FC067B5D3ACFE4D300116E1C875A3D

Эти ключи зарегистрированы на:

Wladimir J. van der Laan <laanwj@protonmail.com>

Pieter Wuille <pieter.wuille@gmail.com>

Jonas Schnelli <dev@jonasschnelli.ch>

Marco Falke <marco.falke@tum.de>

Samuel Dobson <dobsonsa68@gmail.com>

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

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

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

«Эшелоны» обороны

Интегрированность кода Bitcoin Core не должна зависеть только от криптографических ключей, поэтому существуют еще несколько способов проверки.

– Любой может предлагать изменения кода для совершенствования ПО с помощью запроса на bitcoin/bitcoin.

– Разработчики рассматривают запрос чтобы убедиться, что он не причинит вреда. Если запрос добирается до точки, когда нет никаких объективных причин, чтобы его не включить, мейнтейнер объединяет коды.

– Мейнтейнеры Core устанавливают перехватчик «pre-push», чтобы убедиться, что не поместят неподписанные коммиты в репозиторий.

– На коммиты объединения опционально ставятся временные метки с помощью OpenTimestamps.

– Система Travis Continuous Integration system регулярно запускает этот скрипт, чтобы проверить целостность и удостовериться, что все коммиты основной версии были подписаны доверенными PGP-ключами.

– Каждый, кто хочет запустить этот скрипт для проверки PGP-подписей всех коммитов, возвращается в декабрь 2015-го.

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

– Bitcoin Core намеренно не содержит функции авто-обновления, поскольку она потенциально может быть использована чтобы заставить пользователей запустить код, который они не выбирали.

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

Кто такие разработчики?

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

Мейнтейнеры проекта проверяют, соответствует ли патч основным принципам проекта и минимальным стандартам.

Кто такие мейнтейнеры? Это контрибьюторы, заработавшие в проекте достаточный социальный капитал с помощью ценных действий за определенное время. Если существующая группа мейнтейнеров решает расширить полномочия контрибьютора, продемонстрировавшего знания, навыки, надежность и мотивированность, они могут дать этому аккаунту на GitHub доступ к коммитам. Роль главного мейнтейнера сводится к надзору за всеми аспектами проекта и координации релизов. Вот эти люди:

Сатоши Накамото (Satoshi Nakamoto): 3 января 2009 года – 23 февраля 2011-го

Гэвин Андресен (Gavin Andresen): 23 февраля 2011 – 7 апреля 2014.

Владимир ванн дер Лаан (Wladimir van der Laan): 7 апреля 2014 – настоящее время.

Работа мейнтейнера Bitcoin Core нередко сродни функциям уборщика, потому что у них нет власти принимать решения, не соответствующие консенсусу контрибьюторов или пользователей.

Труднее всего людям понять то, что центральный узел разработки биткоина не просто структура, определенная аккаунтом Bitcoin Core на GitHub. И пусть Bitcoin Core имеет определенную структуру (он использует централизованные каналы коммуникации чтобы координировать работу), сам проект не может находиться под контролем ни одного из участников – даже тех, у кого есть привилегированные права в репозитарии GitHub.

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

Кто контролирует биткоин?

Нельзя охватить биткоин целиком и полностью. Определение (контроль) Bitcoin-протокола – как определение языка. Языки появляются в процессе эволюции, согласие общества относительно значения слов – естественный процесс, который не диктуется словарями. Как словари описывают феномен языка, а не определяют его, так код определяет язык биткоина. Никого не заставляют соглашаться с определением конкретного слова в словаре, и никого не заставляют соглашаться с конкретной разработкой кода, запуская его.

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

Никто не контролирует биткоин или центральный узел разработки.

Не забудьте подписаться на обновления сайта «MyCrypter» в удобной для вас соцсети и получать первыми новости мира Крипто.

Смотрите также