Блог им. Ilia_Zavialov

Завьялов Илья Николаевич про контроль над Bitcoin Core.

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


 

История Bitcoin Core

 

Bitcoin Core — это, скорее, главное место разработки протокола Биткоин, а не орган управления и контроля. Если оно по какой-либо причине прекратит свое существование, возникнет новое. Выбор конкретной платформы (в настоящее время — репозиторий на гитхабе) — это скорее вопрос удобства, а не определения или же аутентичности проекта. На самом деле, мы уже не раз наблюдали, как разработка Биткоина переезжала с платформы на платформу и даже сменяла имя.

  • В начале 2009 года исходный код Биткоина представлял собой простой файл .rar, размещенный на SourceForge. Первые разработчики просто обменивались патчами с Сатоши по электронной почте.
  • 30 октября 2009 года Sirius (Марти Мальми) создал репозиторий для разработки Биткоина на SourceForge
  • В 2011 году проект переехал с SourceForge на GitHub
  • В 2014 году проект был переименован в Bitcoin Core.
 

Не доверяй никому

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

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

Core открыто публикует важный список, содержащий PGP-ключи, которыми можно подписывать слияния кода (merge commits). Но мораль скорее заключается в том, что гитхабу доверять нельзя! Даже команда Bitcoin Core не знает всех людей, которые могут внести изменения в репозиторий — таких, наверное, целая дюжина среди сотрудников гитхаба.

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

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


Меня зовут Завьялов Илья Николаевич. Я предприниматель и увлекаюсь финансами. Добро пожаловать в мой блог.

Medium — medium.com/@IliaNicolaevichZavialov  

Substack — ilianicolaevichzavialov.substack.com/

Завьялов Илья Николаевич про контроль над Bitcoin Core.

 

Многоуровневая безопасность

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

Безопасность пул-реквестов

  1. Абсолютно любой желающий может свободно предложить изменения, улучшающие код проекта, открыв свой пул-реквест в репозитории bitcoin/bitcoin.
  2. Разработчики проверяют пул-реквесты, чтобы убедиться, что они не являются вредоносными. Любой желающий может свободно просматривать пул-реквесты и высказывать свое мнение о них — для участия в Bitcoin Core не нужно проходить проверки или сдавать экзамены. Если пул-реквест доживает до момента, когда разумных оснований не добавить его в основную ветку больше нет, дежурный выполняет слияние.
  3. Дежурные разработчики Bitcoin Core установили скрипт, предотвращающий случайное выполнение слияний кода в репозитории, если их ещё не подписали.
  4. Иногда такие слияния датируются с помощью OpenTimestamps.
  5. Travis Continuous Integration system (система непрерывной интеграции Travis — прим. перев.) регулярно запускает скрипт для проверки аутентичности истории разработки и с целью проверки подписей всех слияний основной ветви разработки: они должны соотноситься с одним из доверенных PGP-ключей.
  6. Любой желающий может запустить скрипт для проверки PGP-подписей всех слияний после декабря 2015 года. Я сам запустил его во время написания этой статьи, и на моем ноутбуке он всё проверил за 25 минут.

Безопасность релизов

  1. Время от времени несколько разработчиков независимо друг от друга запускают системы воспроизводимой сборки Gitian, чтобы убедиться в том, что на выходе получаются идентичные исполняемые файлы. Если кому-то удается создать сборку, не совпадающую со сборками других разработчиков, это признак того, что в ней замечен невоспроизводимый компонент — тогда релиз откладывается. В таком случае разработчики отслеживают причину расхождений, исправляют ее и затем собирают другого кандидата на релиз. Как только детерминированная сборка успешно завершается, разработчики подписывают результат, тем самым гарантируя, что получившиеся исполняемые файлы и использованные для их сборки инструменты чисты, и что они собраны из одного и того же источника. Этот метод позволяет обезопасить процесс сборки и распространения исполняемых файлов. Любой пользователь, имеющий соответствующие навыки, может запустить свою собственную систему сборки.
  2. Как только сборки Gitian успешно завершаются и подписываются сборщиками, один из дежурных Bitcoin Core подписывает своим PGP-ключом сообщение, содержащее sha256-хэш каждой сборки. Если вы хотите запустить предварительно собранные исполняемые файлы, после загрузки вы можете посмотреть их хэш, а затем проверить, находится ли этот хэш в подписанном дежурными сообщении.
  3. Код всех вышеперечисленных действий открыт и доступен каждому — любой, владеющий достаточными навыками и желанием, может лично его проверить.
  4. После прохождения всех вышеперечисленных проверок качества и аутентичности код попадает в Bitcoin Core и в конечном итоге уходит в релиз, но никто не насаждает его Биткоин-нодам в принудительном порядке. Каждый оператор Биткоин-ноды сам принимает осознанное решение обновить установленный у себя код. 

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

Полностью понять биткоин как систему практически невозможно. Определение протокола биткоина подобно определению языка. Языки развиваются органически: слова со временем сами обретают своё значение, а не берут его из словарей. Так же как словари описывают язык, а не определяют его, так и программные реализации биткоина описывают язык биткоина с помощью кода. Никто не обязан соглашаться с определением данного слова в словаре, равно как и не обязан соглашаться с кодом в данной программной реализации биткоина, запуская его.

Языками не управляет демократия, и точно так же она не управляет биткоином. Несмотря на это, постоянно можно слышать, как люди ссылаются на майнеров, нод, разработчиков или пользователей, которые могут “голосовать” за что-то — но на самом деле механизма, который бы заставил меньшинство принять изменения, за которые проголосовало большинство, не существует. Биткоин — это анархия: без правителей, но не без правил. Правила определяются и применяются отдельными участниками сети.

Хотя изменения в сам протокол биткоина обычно вносятся через так называемые Bitcoin Improvement Proposal, даже это всего лишь рекомендуемая и самая распространённая практика, и никто не обязан ей следовать. Это просто более формализованный способ рассмотрения предложенных участниками изменений: сначала они подвергаются экспертной оценке, а затем должны получить всеобщее одобрение.

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

Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
214

Читайте на SMART-LAB:
Обновление кредитных рейтингов в ВДО и розничных облигациях
⚪️ООО ЗАС Корпсан НРА подтвердило кредитный рейтинг ООО ЗАС Корпсан на уровне B|ru| по национальной рейтинговой шкале для Российской...
Фото
Хэдхантер проведёт Headconf 2026
Фото
Роснефть: скромная прибыль за 2-й квартал, но зато наполняют трубу Восток Ойл. Почему так?
Фото
Рубль снова упал - на календаре третий квартал. Анализ исторической сезонности курса рубля
Здравствуйте! Мне стало интересно проверить, существует ли статистически значимая сезонность курса рубля относительно равновзвешенной корзины...

теги блога Завьялов Илья Николаевич

....все тэги



UPDONW
Новый дизайн