Управление биткоином: почему код принадлежит не разработчикам
Управление биткоином: почему код принадлежит не разработчикам
Одним из самых важных свойств и основным преимуществом для пользователя является то, что биткоин не контролируется каким-либо правительством, центральным банком или фирмой. Здесь нет даже активного изобретателя, который мог бы командовать, как это есть в многих других проектах с открытым исходным кодом. Но это не означает, что одноранговой системой электронной наличности люди вообще не управляют.
Многие приписывают эту управляющую роль разработчикам ядра биткоина. Это определённо не так. Хотя разработчики ядра биткоина действительно имеют заметное влияние, реально биткоином управляют две группы людей: пользователи и майнеры.
Применения биткоина
Биткоин сам по себе это, по сути, только протокол; язык, который компьютеры могут совместно использовать. И очень важно, что Биткоин это «открытый» протокол: нет каких-либо привратников или требований для тех, кто хочет стать частью сети Биткоина, кроме готовности следовать протоколу.
Любой достаточно грамотный разработчик может сделать своё программное обеспечение, чтобы присоединиться к протоколу.Но, конечно же, всё сделано так, чтобы просто скачать и запустить программное обеспечение, разработанное другими.
В настоящее время существует выбор между несколькими программными реализациями кошелька Биткоина. У каждой из реализаций есть ещё несколько программных разветвлений. Большинство пользователей предпочитают запускать Bitcoin Core, програмный стек, который ведёт свою историю от оригинальной разработки Сатоши Накамото. Но Libbitcoin, Bitcoin XT*, Bitcoin Classic* и ряд других реализаций следуют одному и тому же протоколу, не мешают друг другу и сосуществуют в сети рядом. (*Bitcoin XT и Bitcoin Classic при определённых условиях могут отклониться от основного протокола, но в настоящий момент следуют ему.)
Откровенно говоря, всеми этими реализациями и форками «управляют» их разработчики, причём так, как они этого захотят. Если Bitcoin Classic установили не обязательную страницу со ссылками на идеи по дальнейшей разработке, то Майк Хирн, который в основном и разработал Bitcoin XT, ведёт себя «более диктаторски.»
Bitcoin Core управляется группой людей на основе свободного согласия и экспертных оценок самых активных и опытных его участников. Предложения по улучшению модерирует основной разработчик Bitcoin Core, Владимир ван дер Лаан, и ещё у нескольких разработчиков есть право вето. Libbitcoin управляется схожим способом, правда, основной разработчик, Эрик Воскул и является модератором.
Однако важная вещь состоит в том, что управление реализациями Биткоина — и даже Bitcoin Core — в корне отличается от управления самим Биткоином. Вне зависимости от того, что разработчики решают выпустить и размещают для скачивания, всё это только набор единиц и нулей на таких сайтах, как bitcoin.org или bitcoincore.org. У этого нет влияния на саму сеть биткоина.
Только если сами пользователи Биткоина скачают и запустят новый релиз на своих компьютерах, он станет частью сети цифровой валюты. И, конечно же, разработчики никак не могут проконтролировать, кто и какие программы запускает на собственном компьютере. Любой, кто запускает Bitcoin Core или любую другую реализацию биткоина, делает это автономно и добровольно.
Поэтому правильнее сказать, что разработчики — те, кто предоставляют инструмент и консультируют по поводу того, как им пользоваться. Их влияние ограничено тем, что они предлагают людям программное обеспечение, которое позволит соединиться с сетью Биткоина, если они захотят.
Управление кодом
Само управление Биткоином в конечном счёте осуществляется пользователями, которые запускают программное обеспечение на своих компьютерах.
Этот тип управления является, возможно, лучшим по сравнению с естественными языками. В то время, как нет единого органа, который когда-то ввёл для всех английский язык, многие люди действительно добровольно принимают единые грамматические правила, чтобы общаться. Люди «управляют» английским языком, используя его.
Те, кто общаются на английском языке со многими людьми — например, популярные ведущие на телевидении — будут иметь более сильное влияние на английский язык. Те, кто общаются с меьшим количеством людей, скажем, монахи одного из отдалённых монастырей, будут влиять на английский язык гораздо более слабо. Схожим образом, влияние пользователей Биткоина на протокол зависит от их участия.
Вдаваясь в детали, скажем, что биткоин полезен (и поэтому ценен) если люди принимают его в качестве средства оплаты. Принятие цифровой валюты для платежей Следовательно, принятие биткоина в качестве оплаты, увеличивает стоимость определенного набора правил протокола, примененных, чтобы принять оплату.
Пользователи, которые принимают больше платежей (или платежей на значительные суммы) переносят больше веса в сети. Если многие пользователи биткоина предпочитают услуги AlphaBay или BitPay, подобные компании могут оказать больше влияния на правила протокола биткоина, и следовательно, на процесс управления Биткоином.
Только полностью подтверждённые полные узлы (full nodes) могут применить все правила протокола, и пользователи, которые контролируют такие полные узлы, влияют на внесение изменений в Биткоин сильнее всего.
Изменения кода
Разработчики биткоина — Core или любые другие — добавляют вес к протоколу биткоина, добавляя к нему пользователей. Но их статус разработчика не предоставляет им особых полномочий изменить Биткоин, даже если бы они и хотели сделать это. Применение и осуществление существующих правил протокола просты. Изменение правил протокола биткоина будет намного более сложно.
Некоторые изменения протокола могут быть применены подмножеством участников сети биткоина (отчасти, как сленг может быть применен подмножеством англоговорящих). Но другие изменения протокола требуют соглашения всей сети: то есть консенсуса. Даже небольшие различия могут сделать различные реализации биткоина совершенно несовместимыми друг с другом. Это могло бы привести к «ветвлению блокчейна», разделив сеть биткоина на две или больше отдельных сети и, поэтому, на две или больше отдельных валюты.
Некоторые несовместимые изменения в протоколе биткоина поэтому требуют, чтобы все пользователи применили новые правила в некоторый согласованный момент времени. Все должны переключиться на совершенно новую сеть, несовместимую со старой сетью, или иначе будут существовать две различных сети. Скажем по-другому; все должны начать использовать совершенно новую «монету» и должны согласиться, что эта монета и есть новый биткоин.
Реальная проблема, поэтому, не в том, чтобы написать новый код или даже создать новую сеть. Реальная проблема в том, чтобы убедить всех переключиться на новую сеть и считать именно её правильным Биткоином.
Ещё раз напомню, что у разработчиков Биткоина нет специальных полномочий заставить пользователей переключиться на новую сеть — максимум, что они могут сделать, это дать им совет. Даже если разработчики ядра биткоина выпустят новую версию своего программного обеспечения, чтобы создать новую сеть, пользователи более старых версий программного обеспечения могут просто проигнорировать обновление и продолжать использовать предыдущий протокол, потому что им так нравится. (Нужно отметить, что подмножество пользователей может всегда решить переключиться на новую сеть, даже если не все остальные с этим согласны. Может просто быть маловероятно, что все будут полагать, что какая-то новая монета это и есть «реальный» биткоин.)
Что такое софт форк
Мягко привлечь многих людей гармонично переключиться на новый протокол? Это не будет простой задачей. Вот почему текущая группа разработчиков ядра биткоина предпочитает изменять протокол таким способом, которым все должны переключиться одновременно — или никто.
Посредством «софт форков» существующий протокол биткоина может быть изменен в границах текущего протокола. Так нас «ограничивают» существующие правила. Хотя хотя софт форки это на самом деле умный прием, позволяющий нам расширить возможности Биткоина.
Софт форки помогают нам засчитывать транзакции, которые сеть раньше отбрасывала как инвалидные. И так как не все пользователи, а только майнеры, решают, какие транзакции включать в блоки, софт форки могут быть внесены простым большинством майнеров, которые голосуют хэширующей мощностью. Любому майнеру, который останется в меньшинстве и не переключится, нужно быть готовым, что его блоки сеть начнёт отвергать ради принудительного переключения; не может быть никакого разделения блокчейна.)
В сегодняшней относительно централизованной майнинговой среде достаточно небольшого количества пользователей для внесения софт форка. Разработчики ядра биткоина поэтому предлагают только такие софт форки, необходимость которых понимают все. И поэтому их удаётся внести с поддержкой 95% хэширующей мощности, а не простым большинством. И они предлагают только такие софт форки, которые имеют чёткое описание того, как протокол изменится. Таким образом, все пользователи смогут обновить свое программное обеспечение или принять альтернативные меры предосторожности, если, конечно, они этого хотят.
Конечно, майнеры могут внести софт форк без поддержки от разработчиков или более широкой базы пользователей биткоина. Но если майнеры начнут действовать против пользовательских интересов, есть возможное решение. Протокол Биткоина можно изменить, чтобы потребовать нового алгоритма майнинга, немедленно сделав всё оборудование для майнинга устаревшим в один момент. Это должно повторно децентрализовать майнинг от промышленных ферм назад к обычным компьютерам, по крайней мере, временно, эффективно запустив новую группу майнеров. Некоторые разработчики ядра биткоина тоже могут поддержать такие изменения. Конечно, разработчики могут только предложить такое несовместимое изменение. Пользователи должны будут принять его.
Источник