История Bitcoin Core.
Bitcoin Core это большей частью структура по разработке протоколов первой криптовалюты, нежели структура по какому то управлению или контролю. Если в силу каких либо обстоятельств она исчезнет, то на её месте возникнет новая. Площадка GitHub, на которой она расположена, выбрана просто для удобства. Ранее уже приходилось наблюдать эти смены структур и имён.
Десять лет назад исходные коды проекта первой криптовалюты являли собой простой файл .rar. Он был размещён на SourceForge. Ранние создатели проекта производили обмен наработками с Сатоши Накамото по e-mail.
Осенью того же года М. Мальми или Sirius разместил проект Биткоин на репозитории SourceForge.
Через два года репозиторий переехал на GitHub.
Ещё через три года проект получил название Bitcoin Core.
Отсутствие доверия.
В плане организации некоторые аккаунты GitHub наделены возможностями добавления кода в главную ветку. Но эта возможность не даёт власти, а лишь выполняет дополнительную функцию. Если бы все могли дополнять главный код, то это ничем хорошим бы не закончилось из-за большого количества желающих. Bitcoin Core придерживается политики наименьших возможностей, чтобы любые полномочия при их злоупотреблении можно было очень легко забрать.
Площадка GitHub устроена таким образом, что в ней отсутствует доверие. Работники проекта GitHub могут воспользоваться своими возможностями для добавки кода, не согласовывая свои действия с мэйнтэйнерами. Также исключается возможность скомпрометирования PGP ключа мэйнтэйнеров Bitcoin Core злоумышленником.
Bitcoin Core не полагается только на политику репозитория GitHub по обеспечению целостности кода, а также применяет наработки систем непрерывной интеграции, которая проверяет ключи PGP. Они в свою очередь подписывают все добавления, коммиты. Ключи имеют связь с известными личностями. Конечно даже в этом случае они не обеспечивают полную защиту, а лишь будут существенным препятствием для злоумышленника.
PGP ключи.
На данный момент владельцами главных PGP ключей являются пять человек. Но это абсолютно не значит, что вся власть сосредоточена в их руках. Теоретически этими ключами могут владеть и другие люди. Механизм устроен таким образом, что перед публикацией нового коммита система проверяет достоверность всех предыдущих и только при удачном прохождении всех проверок происходит публикация этого коммита.
Уровни безопасности.
Конечно высокой уровень безопасности не может обеспечиваться только PGP ключами. Применяются также дополнительные проверки.
- Обеспечение безопасности пул реквестов. Каждый человек имеет право подать своё улучшение кода в пул реквест. После этого пул реквесты проверяются на наличие вредоносных кодов. Также любой их может просматривать и если никто не находит возражений, то улучшение добавляется в коммит. Это делает мэйнтэйнер. Главные мэйнтэйнеры установили специальный скрипт, который запрещает добавление недописанных коммитов.
- Обеспечение безопасности релизов. Система сборки Gitian запускается многими разработчиками для получения одинаковых бинарных файлов. Если происходит сборка отличная от других, то такой релиз не происходит. Происходит поиск причины и её исправление. После этого процесс заверяется ключами. Мэйнтэйнер Bitcoin Core дополнительно заверяет сборку своим ключом. При желании каждый пользователь может проверить сборки. Bitcoin Core не поддерживает умышленно функцию авто обновления, каждый узел должен принять сборку самостоятельно.
Не смотря на тщательность разработки уровней безопасности, теоретически каждый уровень не может обеспечить абсолютную защиту. Поэтому главным уровнем защиты является всё же перманентная бдительность. Чем больше людей следят за безопасностью, тем лучше.
Разработчики Bitcoin Core.
При поверхностном взгляде может показаться, что это какая то единая организация. Но зачастую это не так. Не всегда разработчики работают в унисон. Очень часто происходят разногласия и существует очень много кода так и не был добавленного в биткоин. Правила для участников в проекте очень расплывчатые и наилучшей характеристикой является наличие грубого консенсуса. Мэйнтэйнеры кропотливо изучаю любой патч и выносят положительное решение только если он соответствует концепции проекта. Мэйнтэйнеры являются такими же участниками проекта как и остальные, но они имеют намного больше закоммиченного полезного кода. Если они видят человека, который может взять на себя обязанности мэйнтэйнера, они предоставляют ему эту возможность. Ведущий мэйнтэйнер должен рассматривать все нюансы и отвечать за выходы релизов. На этой должности работали Сатоши Накамото, Gavin Andresen, Wladimir van der Laan.
Работа мэйнтэйнера схожа с деятельностью уборщика, потому как у них нет возможностей принимать решения, которые противоречат мнению большинства. А внимание к этой должности со стороны сообщества очень значительно и не каждый может вынести такую моральную нагрузку.
Принятие участия в Bitcoin Core.
Некоторым разработчикам может показаться сложной задача участия в Bitcoin Core. Но сейчас даже существуют проекты, которые могут помочь талантливым разработчикам в их стремлении. В интернете есть множество инструкций для начинающих разработчиков. Попытать свои силы может абсолютно каждый. К тому же, есть возможность улучшения Bitcoin Core без навыков программирования используя систему запросов через пул реквесты. Ваши предложения могут рассмотреть и принять во внимание.
Кому подвластен Биткоин?
Большинство не может заставить меньшинство принять изменения. Биткоин скорее анархичен по своей сути. В нём нет правителей, но есть правила. Но необходимые правила, каждый выбирает сам. И даже официальные изменения нельзя заставить принять всех. Не существует единой точки контроля первой криптовалютой, любой оператор узла может быть себе начальником. Каждый пользователь сам управляет биткоином, нет единого центра в привычном понимании.
Автор: upline
Исключительные права на статью принадлежат MMGP.COM