- Почему у биткоина нет контролирующего органа до сих пор
- Ключевые Вынос
- Во Что Мы Верим?
- Почему Контроль Имеет Значение
- Налогово-Бюджетная Политика
- Бизнес биткоина
- Проблемы Преступности
- Другая сторона биткоина
- Прежде Чем Вы Сделаете Бай-Ин
- Кто контролирует Bitcoin Core
- История Bitcoin Core
- Не доверяй никому
- Ключи от царства
- Многоуровневая безопасность
- Безопасность пул реквестов
- Безопасность релизов
- Охват кода
- Конкуренция свободного рынка
- Кто такие разработчики Core?
- Участие в Bitcoin Core
- Кто контролирует Биткойн?
Почему у биткоина нет контролирующего органа до сих пор
Биткойн утверждает. Что “это первая децентрализованная одноранговая платежная сеть. Которая питается своими пользователями без центральной власти или посредников”. 1 Именно отсутствие центральной власти является основной причиной. По которой правительства боятся криптовалюты. Чтобы понять этот страх. Важно немного знать о правительствах и традиционных валютах.
Ключевые Вынос
- За последнее десятилетие Биткойн привлек внимание не только обычных людей. Но и правительств по всему миру. 2
- Некоторые правительства опасаются. Что биткойн может быть использован для обхода контроля за движением капитала. Может быть использован для отмывания денег или незаконных покупок и может быть рискованным для инвесторов.
Во Что Мы Верим?
Фиат-это термин. Используемый для описания обычных валют. Которые выпускаются правительствами. Фиатные валюты имеют ценность. Потому что правительства говорят. Что они имеют. Для все большего числа людей это обещание ничего не значит. Ведь фиатные валюты не обеспечиваются никакими материальными активами.
Вы не можете вернуть валюту правительству в обмен на слиток золота или серебра. Банку бобов. Пачку сигарет или любые другие предметы. Которые могут иметь ценность для вас. Фиатные валюты поддерживаются полной верой и кредитом правительства. Которое их выпустило. И ничем больше. Если вам нужно золото, серебро. Бобы или сигареты. Вам нужно обменять свою фиатную валюту на физическое или юридическое лицо. Которое владеет тем товаром. Который вам нужен.
Почему Контроль Имеет Значение
Правительства контролируют фиатные валюты. Они используют центральные банки. Чтобы выпускать или уничтожать деньги из воздуха. Используя то. Что известно как
денежно-кредитная политика, чтобы оказывать экономическое влияние. Они также диктуют. Как фиатные валюты могут быть переведены. Позволяя им отслеживать движение валюты, диктовать. Кто получает прибыль от этого движения. Собирать налоги на него и отслеживать преступную деятельность. Весь этот контроль теряется. Когда негосударственные органы создают свои собственные валюты.
Контроль над валютой имеет много последствий, возможно. Наиболее заметных для фискальной политики страны. Деловой среды и усилий по борьбе с преступностью.
Хотя каждая из этих тем достаточно широка и глубока. Чтобы заполнить тома. Достаточно краткого обзора. Чтобы дать представление об общей концепции.
Налогово-Бюджетная Политика
В то время как потенциальная преступность привлекает внимание общественности. Роль валюты в национальной денежно-кредитной политике может иметь гораздо большее влияние. Поскольку правительства намеренно увеличивают или ограничивают количество денег. Циркулирующих в экономике. Чтобы стимулировать инвестиции и расходы. Создать рабочие места или избежать неконтролируемой инфляции и рецессии. Контроль над валютой представляет собой огромную проблему.
Это также чрезвычайно сложная тема.
Бизнес биткоина
Пользователям биткоина не нужна существующая банковская система. Валюта создается в киберпространстве. Когда так называемые Их вознаграждение-это оплата кибервалютой. Которая хранится в цифровом виде и передается между покупателями и продавцами без необходимости посредника. 3 в меньшем масштабе наградные мили авиакомпаний функционируют аналогичным образом. Позволяя путешественникам покупать билеты на самолет. Гостиничные номера и другие предметы. Используя авиационные мили в качестве виртуальной валюты.
Если биткойн или другая криптовалюта получат широкое распространение. Вся банковская система может стать неактуальной. Хотя это может показаться замечательной концепцией в свете недавнего поведения банковской индустрии. У каждой истории есть две стороны. Без банков, кому вы будете звонить. Когда ваш платеж по ипотеке будет взломан? Как вы будете получать проценты со своих сбережений? Кто будет оказывать помощь в случае сбоя передачи активов или технического сбоя?
В то время как финансовый кризис дал банкирам еще худшую репутацию. Чем они уже имели. Есть что сказать об учреждениях. Которые контролируют своевременные. Эффективные и надежные переводы активов и связанные с ними учет.
Существует также вопрос о сборах. Которые банки зарабатывают за услуги. Которые они предоставляют. Эти сборы приносят большой доход и создают много рабочих мест в мировой банковской отрасли. Без банков эти рабочие места исчезают. Как и налоговые поступления. Которые эти банки и зарплаты их сотрудников генерируют. Бизнес денежных переводов также исчезнет в виртуальном мире. Никому не нужен Western Union или его конкуренты. Если все используют биткойн.
Проблемы Преступности
Так много было написано о виртуальной валюте и преступности. Что достаточно повторить этот вопрос, заявив. Что непрослеживаемые финансовые операции способствуют преступности.
Наркоторговля. Проституция, терроризм. Отмывание денег. Уклонение от уплаты налогов и другая незаконная и подрывная деятельность-все это выигрывает от возможности незаметно перемещать деньги. Примером может служить ныне несуществующий онлайн-рынок наркотиков Шелкового пути. Его основатель благодарит биткойн за его успех. 4
Другая сторона биткоина
Помимо того. Что виртуальные валюты могут и используются для осуществления широкого спектра незаконной деятельности (следует отметить. Что наличные деньги используются для многих из этих же операций). Существует законный теоретический аргумент в пользу их использования. Он основан на реальности того. Что манипулирование Центральным банком денежной массой привело к рецессии. Обострило безработицу и породило глобальную банковскую систему. Основанную на спекуляции и коррупции.
Достаточно взглянуть на махинации на ипотечном рынке. Лежащие в основе финансового кризиса 2009 года. Чтобы понять. Почему недовольные потребители во всем мире поддерживают усилия анонимных программистов по подрыву системы. Которая не принесла им никакой пользы. Эти идеи не новы. Австрийская школа, школа экономической мысли, основанная в 1871 году. Придерживается среди своих основных принципов идеи о том. Что экономические манипуляции со стороны центральных банков не приносят пользы. 5 6
Прежде Чем Вы Сделаете Бай-Ин
Прежде чем конвертировать свою национальную валюту в биткоин. Вы хотите рассмотреть несколько дополнительных фактов. Биткойн был создан анонимным компьютерным программистом или программистами (нет консенсуса по этому поводу. И личности до сих пор не подтверждены). 7 2 Mt. Gox, крупнейшая служба обмена долларов на биткоины. Потерпела сокрушительный провал. Когда хакеры якобы украли биткоины на сотни миллионов долларов. Ранее предполагаемый взлом сети принес 8,75 миллиона долларов8. Другие биткойн-биржи также обвинили хакеров в потерях. 9
Валюта цифровая. Так что вы ничего не можете потрогать или подержать. 1 Его стоимость колеблется очень волатильным образом. Он создается анонимными программистами с помощью методологии. Которая слишком сложна для понимания большинством людей. А тем более для участия в ней.
Поскольку биткоины часто хранятся на компьютерах пользователей. “пользователи сталкиваются с риском потерять свои деньги. Если они не реализуют адекватные антивирусные и резервные меры”. Согласно схемам виртуальной валюты. Исследовательскому документу. Опубликованному Европейским Центральным банком. 10 11 Помимо аппаратного сбоя. Выбрасывание старого компьютера в корзину без предварительного удаления биткойнов также является простым способом потерять свое цифровое состояние.
Таким образом. Если вы используете биткойн. Вы доверяете свои деньги сложной системе. Которую вы не понимаете, людям. О которых вы ничего не знаете, и среде. В которой у вас есть ограниченное юридическое обращение. 12 В традиционном мире инвестиций это подняло бы достаточно красных флагов. Чтобы сделать его плохой идеей. С другой стороны. Европейский Центральный банк сообщил в 2018 году. Что биткойн является лишь одной из более чем 1600 цифровых валют. Находящихся в обращении по всему миру. 13 Даже если биткойн в конечном итоге потерпит неудачу или будет отодвинут на второстепенную роль на мировой арене. Один из его преемников может радикально изменить то. Как мир думает о валюте.
Источник
Кто контролирует Bitcoin Core
Вопрос о том, кто контролирует возможность добавления кода в GitHub-репозиторий Bitcoin Core поднимается снова и снова, с завидной периодичностью. На протяжении многих лет возможность добавления кода упоминалась различными сторонами как «центральная точка контроля» протокола Биткойн, но я убежден, что такая постановка вопроса представляет собой ложный след, который может дать развитие авторитарной перспективе — а эта модель не применима к Биткойну. Для непрофессионала, конечно, не очевидно, почему это так, поэтому цель этой статьи — объяснить, как работает Bitcoin Core и, на более высоком уровне, как развивается протокол Биткойн как таковой.
История Bitcoin Core
Bitcoin Core — это, скорее, точка фокуса разработки протокола Биткойн, чем точка управления и контроля. Если она по какой-либо причине прекратит свое существование, возникнет новая точка фокуса; техническая коммуникационная платформа, на которой она поставлена (в настоящее время — репозиторий GitHub), всего лишь вопрос удобства, а не целостности проекта или его определения. Фактически, мы уже видели в прошлом, как точка фокуса разработки Биткойна меняла платформы и даже имена!
- В начале 2009 года исходный код проекта Биткойн представлял собой обыкновенный файл .rar, размещенный на SourceForge. Первые разработчики на самом деле обменивались патчами с Сатоши по электронной почте;
- 30 октября 2009 года Sirius (Марти Мальми/Martti Malmi) создал репозиторий для проекта Биткойн на SourceForge;
- В 2011 году проект проект Биткойн перешел с SourceForge на GitHub;
- В 2014 году проект проект Биткойн был переименован в Bitcoin Core.
Не доверяй никому
Хотя на организационном уровне существуют несколько аккаунтов GitHub «майнтайнеров», наделённых полномочиями добавлять код в основную ветвь, это скорее вспомогательная функция, чем должность, наделяющая властью. Если бы кто угодно мог внедрять код в «мастер»-ветвь, то это очень быстро превратилось бы в сценарий «слишком много хозяек на кухне». Bitcoin Core следует принципам наименьших привилегий, так чтобы любые полномочия, выданные отдельным лицам, было бы легко отобрать, если ими начнут злоупотреблять.
Core is transparent about the list that matters: the PGP keys who can sign merge commits.
The lesson to be learned here is to not trust GitHub! Even Bitcoin Core doesn’t know the full list of people who can change the repo, as that extends to probably dozens of GitHub employees.
С точки зрения безопасности, GitHub — система с отсутствием доверия. Любое количество сотрудников проекта в GitHub может использовать свои административные привилегии для добавления кода в репозиторий без согласия мэйнтэйнеров. Но также, маловероятно, что злоумышленник на GitHub сможет скомпрометировать PGP-ключ мэйнтэйнера Bitcoin Core.
Вместо того, чтобы полагаться на целостность кода в зависимости от политики аккаунтов на GitHub, 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 >
Значит ли это, что мы доверяем этим пяти людям? Не совсем. Ключи не являются доказательством личности — эти ключи потенциально могут попасть в руки других людей. Какие гарантии вам действительно даёт запуск скрипта verify-commits на Питоне?
python3 contrib/verify-commits/verify-commits.py
Using verify-commits data from bitcoin/contrib/verify-commits
All Tree-SHA512s matched up to 309bf16257b2395ce502017be627186b749ee749
There is a valid path from “HEAD” to 82bcf405f6db1d55b684a1f63a4aabad376cdad7 where all commits are signed!
Скрипт verify-commits выполняет проверку целостности. Любой разработчик может запустить его на своём компьютере. При выполнении, скрипт проверяет подпись PGP для каждого коммита добавления кода с момента коммита 82bcf405… в декабре 2015 года — более 3400 добавлений на момент написания. Если скрипт завершается успешно, он говорит, что каждая строка кода, которая была изменена с того момента, прошла через процесс разработки Bitcoin Core и была «подписана» кем-то с ключом мэйнтэйнера. Хотя это не является железной гарантией того, что никто не ввел вредоносный код (мэйнтэйнер может стать злонамеренным или у него могут быть украдены ключи), это значительно снижает вероятность атаки. Что такое мэйнтэйнеры и как они получили эту роль? Мы углубимся в это чуть позже.
Многоуровневая безопасность
Целостность кода Bitcoin Core не должна зависеть только от нескольких криптографических ключей, поэтому, для обеспечения глубокой защиты, существует множество других проверок. Есть много уровней безопасности:
Безопасность пул реквестов
- Совершенно любой человек может свободно предлагать изменения кода для улучшения программного обеспечения, открывая запрос в пул реквест в основную ветку на bitcoin/bitcoin.
- Разработчики проверяют пул реквесты, чтобы убедиться, что они не являются вредоносными. Любой желающий может свободно просматривать пул реквесты и предоставлять обратную связь — нет никаких привратников или вступительных экзаменов для участия в Bitcoin Core. Если пул реквест доходит до того, что не имеется разумных возражений против его добавления, мэйнтэйнер выполняет коммит (слияние).
- Основные майнтайнеры установили это скрипт для гарантии, что не смогут разместить неподписанные коммиты в репозиторий.
- Коммитам добавления кода опционально проставляются метки времени через OpenTimestamps.
- “Система непрерывной интеграции Travis” (Travis Continuous Integration system) регулярно запускает этот скрипт для проверки целостности дерева git (истории) и для проверки того, что все коммиты в основной ветви были подписаны одним из доверенных ключей PGP.
- Любой желающий может запустить этот скрипт для проверки подписей PGP во всех коммитах, начиная с декабря 2015 года. Я запустил его во время написания этой статьи, и для его выполнения на моем ноутбуке потребовалось 25 минут.
Безопасность релизов
- Детерминистические системы сборки Gitian запускаются независимо несколькими разработчиками с целью создания идентичных бинарников. Если кому-то удаётся создать сборку, которая не соответствует сборкам других разработчиков, это признак того, что сборка недетерминированная, поэтому окончательный релиз не случится. Если обнаруживается не-детерминизм, разработчики отслеживают, что пошло не так, исправляют это, затем собирают другой релиз-кандидат. Как только детерминированная сборка прошла успешно, разработчики подписывают получившиеся бинарники, гарантируя, что бинарники и тулчейн не были подделаны, и что использовался один и тот же источник. Этот метод снимает с процесса сборки и распространения возможность стать единой точкой отказа. Любой пользователь, владеющий необходимыми техническими навыками, может запустить свою собственную систему сборки; инструкции здесь.
- Как только сборки Gitian завершены успешно и бинарники подписаны сборщиками, один из мэйнтэйнеров Bitcoin Core подписывает сообщение PGP с хэшами SHA256 каждой сборки. Если вы решите запустить предварительно собранный бинарник, можете проверить его хэш после загрузки, а затем проверить подлинность подписанного сообщения о релизе с помощью хешей. Инструкции для этого можно найти здесь.
- Всё вышеперечисленное — открытый исходный код и может быть проверено любым, кто обладает навыками и желанием проделать это.
- Наконец, даже после прохождения всех вышеперечисленных проверок качества и целостности, код, который вносится в Bitcoin Core и в конечном итоге превращается в релиз, не запускается в сети узлов какой-либо централизованной организацией. Скорее, каждый оператор узла должен принять осознанное решение обновить код, который он запускает. Bitcoin Core намеренно не включает в себя функцию автообновления, так как автообновление потенциально может заставить пользователей запустить код, который они не выбирали самостоятельно.
Несмотря на все технические меры безопасности, которые реализуются проектом Bitcoin Core, ни одна из них не является совершенной, и любая из них, теоретически, может быть скомпрометирована. Последняя линия защиты целостности кода Bitcoin Core такая же, как и в любом другом проекте с открытым исходным кодом — постоянная бдительность. Чем больше глаз просматривает код Bitcoin Core, тем меньше вероятность того, что вредоносный или некорректный код сможет попасть в релиз.
Охват кода
В Bitcoin Core много кода для тестирования. Существует набор интеграционных тестов, который работает с каждым PR (pull request), и расширенный набор тестов, который каждую ночь запускается на мастере.
Вы можете самостоятельно проверить покрытие кода тестами:
- Склонируйте репозиторий Bitcoin Core на GitHub;
- Установите необходимые зависимости для сборки из исходного кода;
- Запустите эти команды;
- Просмотрите отчет на ./total_coverage/index.html .
Также, вы можете увидеть отчет о покрытии кода, предоставленный здесь Марко Фальке.
Тестирование имеет большое значение, когда речь идет о программном обеспечении с критически важным консенсусом. Для особо сложных изменений разработчики иногда проводят кропотливое мутационное тестирование: то есть они проверяют сами тесты, намеренно взламывая код и проверяя, что тесты провалились, как и ожидалось. Грег Максвелл (Greg Maxwell) дал некоторое представление об этом процессе при обсуждении релиза 0.15:
“Тест — это тест программного обеспечения, но что тестирует этот тест? Программное обеспечение. Чтобы проверить тест, вы должны взломать программное обеспечение” — Грег Максвелл
Конкуренция свободного рынка
BitMEX написали отличную статью об экосистеме имплементаций Биткойна. Существует более десятка различных имплементаций, совместимых с сетью Биткойн, и ещё больше имплементаций «конкурирующих» сетей. Это свобода открытого исходного кода — любой, кто недоволен усилиями проекта Bitcoin Core, может начать свой собственный проект. Они могут сделать это с нуля, или же «форкнуть» программное обеспечение Core.
На момент написания статьи 96% доступных узлов Биткойна были запущены на какой-либо версии Bitcoin Core. Почему это так? Как может Bitcoin Core иметь почти монопольный статус в сети узлов, если можно с минимальными усилиями перейти на программную имплементацию кого-то другого? В конце концов, многие другие имплементации предоставляют RPC API-интерфейсы, которые совместимы или, по крайней мере, очень похожи на Bitcoin Core.
Я считаю это результатом того, что Bitcoin Core — точка фокуса разработки. В этот проект вложены на порядки больше времени и поддерживающего его таланта, что означает, что код, созданный проектом Bitcoin Core, имеет тенденцию быть наиболее эффективным, надежным и безопасным. Когда речь идёт об управлении деньгами, операторы узлов не хотят запускать программное обеспечение второго сорта.
Кроме того, учитывая, что это консенсусное программное обеспечение, а протокол Биткойн не имеет — и, вероятно, не может иметь — формальной спецификации, потому что ни у кого нет права написать её, до какой-то степени безопаснее использовать имплементацию с наибольшим фокусом разработки, чтобы с большей вероятностью быть совместимым с большей частью остальной сети. В этом смысле код точки фокуса разработки наиболее близок к существующей спецификации.
Кто такие разработчики Core?
Те, кто не знаком с процессом разработки Bitcoin Core, при взгляде на проект со стороны могут принять Core за монолитную организацию. Но такое мнение далеко от реальности! Между основными участниками часто возникают разногласия, и даже самые усердные участники написали много кода, который никогда не был добавлен в проект. Если вы прочитаете правила участия в проекте, то можете заметить, что они довольно расплывчаты — процесс лучше всего охарактеризовать как «грубый консенсус».
Мэйнтэйнеры примут во внимание, соответствует ли патч общим принципам проекта; соответствует ли минимальным стандартам для включения; и вынесут оценку консенсусу в целом участников проекта.
Кто же такие мэйнтэйнеры Bitcoin Core? Они участники, накопившие в рамках проекта достаточный социальный капитал, внося качественный вклад (то есть, закомитив полезный код) в течение определенного периода времени. Когда существующая группа мэйнтэйнеров считает, что будет разумно наделить этой ролью участника, проявившего компетентность, надежность и мотивацию в определенной области, они могут предоставить коммит-доступ аккаунту этого человека на GitHub. Роль ведущего мэйнтэйнера предназначена для тех, кто рассматривает все аспекты проекта и отвечает за координацию релизов. За прошедшие годы роль добровольно передавалась следующим образом:
Работа в качестве мэйнтэйнера Bitcoin Core часто сравнивают с работой уборщика, потому что мэйнтэйнеры фактически не имеют полномочий принимать решения, противоречащие общему мнению участников проекта или пользователей. Тем не менее, роль может быть достаточно сложна из-за пристального внимания к ней со стороны экосистемы в целом.
Например, Грегори Максвелл оставил свою должность мэйнтэйнера в 2017 году по личным причинам; вероятно, из-за общественного давления, которое он испытал во время дебатов о масштабировании. Владимир написал вдумчивый пост о стрессе, связанном с поддержкой Core, и о том, почему в свое время было целесообразным лишить Гавина доступа к коммитам, что огорчило многих людей:
Точно так же, когда Джефф Гарзик (Jeff Garzik) был исключен из организации на GitHub, он и другие были расстроены этим; но он не участвовал в Core в течение двух лет. Оставление его аккаунту на GitHub прав на коммиты в репозиторий не принесло бы пользы проекту — оно только создавало угрозу безопасности и нарушало принцип наименьших привилегий, на который ссылался Владимир в своем посте.
Другие могут взглянуть на Core и подумать, что это царство технократии, где присоединение новых участников затруднено. Но если поговорить с участниками, то вы обнаружите, что это не так. Хотя, за все эти годы лишь у тринадцати человек был коммит-доступ, сотни разработчиков внесли свой вклад. Я сам сделал несколько небольших коммитов; хотя я и не считаю себя «Core разработчиком» — технически я им являюсь. Никто не может помешать вам внести свой вклад!
In 2011, as a high school student who didn’t understand what a pointer was, the @bitcoincoreorg developer community (especially people like Greg Maxwell, @pwuille, etc) worked with me to make my shitty patches worth merging and made it a great environment to learn in.
In 2016, @TheBlueMatt organised a residency at @ChaincodeLabs. I’d been reading everything about Bitcoin I could lay my hands on but hadn’t dared submit a PR. Matt, Alex and Suhas were extraordinarily generous with their time in teaching us about Bitcoin and how to contribute.
I started making small commits to @bitcoincoreorg and was in awe of the engagement on my PRs by @MarcoFalke @pwuille @orionwl @LukeDashjr and @jfnewbery Such a welcoming project!
Похоже, людям очень сложно понять, что точка фокуса в разработке Биткойна это не просто структура, определяемая ролью аккаунтов Bitcoin Core на GitHub. Хотя у Bitcoin Core и есть некоторая структура (для координации использующая централизованные каналы связи), сам по себе проект не является предметом контроля со стороны любого из его участников — даже тех, кто имеет расширенные привилегии в репозитории на GitHub. Хотя технически у мэйнтэйнеров существует возможность захватить репозиторий проекта на GitHub, подвергнуть цензуре несогласных разработчиков и, возможно, даже сохранить фирменное наименование «Bitcoin Core» — в результате Bitcoin Core просто перестанет быть точкой фокуса разработки. Если разработчики перестанут соглашаться с действиями мэйнтэйнеров, то они просто форкнут код и перейдут рабать в другой репозиторий, в котором предыдущие майнтайнеры Bitcoin Core не будут имеют административных привилегий.
Даже без «переворота» как такового, если спорные изменения каким-то образом попали бы в Core, нашлись бы разработчики, которые форкнули бы софт, удалили спорные изменения и выложили новую версию в доступ для пользователей. В качестве примера, именно это и произошло, когда Амори Сэшэ (Amaury Sechet) для создания Bitcoin ABC форкнул Bitcoin Core и удалил функциональность Segregated Witness. В качестве альтернативы, если Core отклоняет предложенные изменения, которые требуются некоторым людям, разработчики могут форкнуть репозиторий и добавить эти изменения. Это случалось много раз, например, когда:
- Mike Hearn форкнул Core чтобы создать Bitcoin XT;
- Andrew Stone форкнул Core чтобы создать Bitcoin Unlimited;
- Jeff Garzik форкнул Core чтобы создать BTC1.
Форкнуть код — очень просто. Сместить центр фокуса разработки Биткойн сложно —необходимо убедить участников, что им будет лучше потратить время на другой проект.
I hold allegiance to no man, to no dev team in Bitcoin. My intention is to run the code that I judge best protects my financial sovereignty.
Также сложно убедить многих, что пользователи не принимают слепо изменения в Bitcoin Core — это может быть самодоказывающимся убеждением, потому что если пользователи не участвуют в процессе консенсуса, осознавая доступные варианты, тогда они отдают часть своих полномочий разработчикам. Однако, власть пользователей была использована во время движения UASF (User Activated Soft Fork) 2017 года. Анонимный разработчик, использующий псевдоним shaolinfry, предложил BIP 148, который заставил бы майнеров активировать функцию Segregated Witness на высоте блока примерно в районе 1 августа 2017. Однако, BIP 148 оказался слишком спорным, чтобы быть принятым в Bitcoin Core, поэтому shaolinfry форкнул Core и опубликовал программное обеспечение «Bitcoin UASF». Эта имплементация привлекла нетривиальное количество пользователей и, похоже, создала достаточное давление, чтобы убедить майнеров принять BIP 91 для активации форка до истечения срока BIP148.
На мой взгляд, лучшие участники Bitcoin Core — это те, кто практикует “экстремальное владение” (extreme ownership). Показательный пример — хотя John Newbery и не был автором кода, который содержал этот конкретный баг консенсуса, он чувствует ответственность за то, что не предотвратил добавление этого кода посредством тщательного анализа и что не обнаружил ошибку позже, при написании тестов:
Участие в Bitcoin Core
Начать участвовать в Core может показаться пугающим, хотя есть много ресурсов, которые будут в помощь целеустремлённым разработчикам. Инструкции для участия можно найти здесь, хотя, возможно, вам захочется начать с упрощённого введения Jimmy Song:
Разработчик Core Eric Lombrozo также написал статью о том, как происходят изменения в репозитории Core:
Alex B. написал отличную статью о философии развития Биткойна — статья ниже может сэкономить массу времени любому, кто всерьёз хочет стать участником процесса разработки:
Здесь может оказаться полезным конкретный пример — при написании этой статьи я столкнулся с трудностями при попытке запустить на моем компьютере скрипт verify-commits.py для проверки целостности истории коммитов на GitHub. Чтобы избавить будущих разработчиков от решения этих проблем, я открыл пул реквест для улучшения документации. Как вы можете видеть из истории PR, четыре разных разработчика внесли свои предложения о том, как улучшить мой запрос. Они варьировались от использования разного вики-маркапа до упрощенной команды bash и до нового параметра, который можно использовать в скрипте verify-commits.py.
Я согласился с тем, что все предложения имеют смысл, поэтому я включил их в свой код и обновил пул реквест. В этот момент разработчики, которые участвовали в просмотре кода, признали, что считают пул реквест приемлемым, и майнтаинер Марко Фальке пометил его для включения в релиз 0.18. После того, как прошло ещё несколько дней без каких-либо возражений со стороны разработчиков, код был добавлен в Core мэйнтэйнером Сэмюэлем Добсоном (Samuel Dobson).
Кто контролирует Биткойн?
Как я часто говорил на протяжении многих лет, практически невозможно полностью понять Биткойн как систему. Определение (контроль) Биткойн-протокола подобно определению языка. Языки появляются спонтанно; согласие о значении слов приходит органически, а не продиктовано словарями. Как словари описывают явление языка, а не определяют его, так и имплементация Биткойна описывает язык Биткойна с помощью кода. Никто не обязан соглашаться с определением данного слова в словаре, равно как и не вынужден соглашаться с кодом в данной конкретной имплементации Биткойна, запуская его.
Языки не управляются демократией, также и Биткойн не управляется ей; хотя можно услышать, как люди ссылаются на майнеров, узлы, разработчиков или «голосующих» пользователей — не существует такого механизма, который позволил бы большинству голосов любого рода заставить меньшинство принять изменения, с которыми они не согласны.
Биткойн — это анархия: без правителей, но не без правил. Правила определяются и применяются индивидуальными участниками сети.
Хотя изменения в самом Биткойн-протоколе обычно вносятся через формальный процесс Bitcoin Improvement Proposal, даже это всего лишь рекомендуемая практика, и никого нельзя принудить следовать ей. Это просто более формализованный способ попытаться проводить изменения через процесс экспертной оценки и достижения консенсуса.
Как бы трудно это ни было объяснить и понять, это критически важный аспект антихрупкости Биткойна — если бы существовала единая точка контроля, она была бы также и единой точкой отказа, которой могли бы воспользоваться мощные организации, почувствовавшие угрозу от успеха Биткойна. В конечном счете, каждый оператор узла сам себе начальник в том смысле, что он сам следит за тем, что никто в сети не нарушает правил, о которых все согласились. Эта модель безопасности является основой управления Биткойн “с ног на голову”.
Никто не контролирует Биткойн.
Никто не контролирует точку фокуса разработки Биткойна.
Источник