Что движет феноменом криптовалют: Человеческий консенсус в криптовалютных сетях — Часть 4

В новой части эссе сотрудники Iterative Capital рассказали о принципах управления групп разработчиков свободного ПО, и о важных технологиях и идеях, которые сделали возможным появление Биткойна. Кроме того, авторы рассмотрели систему стимулов, которые поддерживают работу сети Биткойн, а также описали основные группы стейкхолдеров первой криптовалюты.

Часть 1. Что не так с криптовалютным бумом

Часть 2. Исторический контекст

Часть 3. Как организованы ключевые игроки

В этой части мы увидим, как Мировая паутина собрала хакеров вместе на месседж-бордах и в емэйл-рассылках, где они начали самоорганизовываться. Мы рассмотрим их стремление создать приватные сети, и как они выработали требования к подобным сетям, используя уроки прошлых десятилетий.

Хакеры начинают разработку «свободного» ПО

До сих пор мы утверждали, что программы с открытым исходным кодом — это правильный посредник в цифровой инфраструктуре, поскольку они теснят ложные, церемониальные, дорогие и монотехнические технологии. Это достигается за счет проверенных практик разработки, которые развивали хакеры на протяжении последних 30 лет.

В этой главе мы обсудим, как Сатоши Накамото стал инноватором в решениях с открытым исходным кодом и доработал их для управления целой валютной системой.

Фундаментальный вызов любой общественной системы состоит в том, что люди склонны нарушать правила, когда им это выгодно и целесообразно. В отличие от сегодняшних финансовых систем, охваченных законами и правилами, система Биткойна формализовала правила человеческих отношений в программной сети. Но как эта система предотвращает изменения с целью извлечения выгоды определенными участниками?  

Ответа Накамото на этот вопрос можно разбить на три части:

  • Сделай всех участников «администраторами» системы без центрального контролирующего органа;
  • Потребуй от многих или сразу ото всех участников соглашаться на любые обязательные изменения правил;
  • Сделай попытки сговора с целью изменения правил невероятно дорогими.

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

  • Как может система с таким количеством разных компьютеров управлять базой данных о транзакциях без использования центрального координирующего сервера? (В такой системе каждый участник с доступом к координирующему компьютеру смог бы изменять правила системы по своему усмотрению);
  • Как, будучи с разными интересами, все администраторы могут договориться о том, что данные базы не будут изменены? (В системе, где могут быть изменены прошлые транзакции, правила их обработки оказываются неуместными).

Работа, которая привела к Биткойну

Создание финансовой системы с такими свойствами — это не новая идея. С тех пор, как в 1992 году Тим Мэй предложил концепцию «крипто-анархии», шифропанки пытались создать свою валютную систему как приватную, анонимную микро-экономику, которая была бы устойчива к обману и подделкам, и не имела бы органов управления участниками.

Биткойн не был первой попыткой создать цифровые деньги. В действительности, эта идея была предложена Дэвидом Чаумом в 1983 году. В его модели центральный сервер мог предотвращать случаи двойного расходования, но это было проблематично:

«Требование наличия центрального сервера стало Ахиллесовой пятой цифровых денег. В то время, как этот единый риск можно разделить путем замены одной подписи сервера несколькими, для подотчетности важно, чтобы количество подписантов отличалось от 10, и чтобы их можно было идентифицировать. Из-за этого система остаётся уязвимой, поскольку каждый подписант может допустить ошибку».

Digicash был другим примером валюты, не удавшейся из-за нормативных требований, предъявляемых к его центральному органу управления; было ясно, что необходимость контроля над владельцами системы подорвала её эффективность вследствие цифровизации.

На шифропанка Вэя Дая криптоанархия повлияла непосредственно, когда ему пришла в голову идея децентрализованной валюты «B-money» в 1998 году. «Я очарован криптоанархией Тима Мэя», — писал он во введении к своему эссе:

«В отличие от сообществ, которые традиционно ассоциируются со словом «анархия», в криптоанархии правительство не уничтожается временно, но оказывается навсегда запрещено и ненужно. Это сообщество, где угроза насилия сходит на нет потому, что насилие невозможно, и насилие невозможно, потому что невозможно установить настоящие имена или местонахождение участников».

Концепция Дэя основывалась на последних достижениях компьютерной науки, благодаря которым такая система могла быть построена.

Предшествующий уровень техники

В начале 2000-х передовые технологии сделали идею Дая о B-money осуществимой. В 1990 году Скотт Сторнетта и Стюарт Хабер предложили нечто, названное «связанные временные метки», для построения доверенной цепочки цифровых подписей, которые бы использовались для нотариального заверения документа, предотвращая его дальнейшее изменение. В 1997 году Адам Бэк изобрел Hashcash, средство защиты от отказа в обслуживании для P2P-сетей, которое позволяло сделать дорогой и трудной задачу скрыть изменения прошлых транзакций.

Но все же, участники сети могли кооперироваться и нарушать правила другими способами, например, создавать поддельные монеты. Хэл Финни предложил использовать «многоразовое Доказательство работы», при котором код для выпуска новых монет публикуется в безопасном централизованном компьютере, а пользователи могут использовать удаленную проверку, чтобы доказать, что компьютер действительно выполнил работу. В 2005 году Ник Сабо предложил использовать «распределенный реестр имен» вместо безопасного централизованного компьютера.

В начале 2009 Сатоши Накамото выпустил первую имплементацию одноранговой электронной денежной системы, в которой подпись центрального сервера управления была заменена на децентрализованную систему «Доказательства выполнения работы». После запуска сети Накамото писал, что «Биткойн — это реализация идеи Вэй Дэя о B-money 1998 года, а также проекта Bitgold Ника Сабо».

Кратко о том, как работает Биткойн

Существует множество хорошо написанных руководств о том, «как работает Биткойн». Вместо того, чтобы воспроизводить эти материалы, мы приведем только ту информацию, которая объясняет рациональное зерно в дизайне системы. А именно, мы изучим систему стимулирования, которая способствует совместной работе участников Биткойна без какой-либо формальной ассоциации.

Центральной в системе Биткойна является идея «майнинга», которую мы объясним подробнее в следующей части. Сейчас, майнинг можно определить как процесс, с помощью которого блоки транзакций обрабатываются и добавляются в реестр Биткойна, также известный как «блокчейн». «Транзакции» можно определить как переводы биткойнов между адресами; также существуют транзакции для выплат майнерам за обработку блоков. Согласование и расчёт транзакций в сети Биткойн происходит по-другому, нежели чем в традиционных системах.

Как пользователи соглашаются с тем, какая сеть является Биткойном

Многие пользователи только осуществляют транзакции в легковесных мобильных приложениях «кошельков». Приложения кошельков имеют удобный пользовательский интерфейс и скрывают значительную часть сложной структуры системы Биткойна. Основное свойство приложения кошелька — это способность отправлять и получать переводы. Во-вторых, оно показывает вам историю и текущий баланс биткойнов у вас во владении. Эта информация берется напрямую из сети, которая обладает способностью запоминать предшествующие транзакции.

Биткойн — это не такая же система учёта состояния, как смартфон или компьютер. Он вычисляет и заново вычисляет каждый баланс каждые 10 минут как механизированная бухгалтерская таблица. Можно сказать, что Биткойн — это единый компьютер, образованный из множество отдельных аппаратных частей, или виртуальная машина, распределенная по миру, повторяющая ребалансировку реестра каждые 10 минут.

Эти машины могут быть уверены в том, что они объединяются в одну сеть, потому что они используют протокол сети, или набор машинных инструкций, построенных на программной основе Биткойна. Часто говорят о том, что Биткойн «не подсоединен к Мировой паутине», потому что он не использует протокол HTTP, в отличие от веб-браузеров.

Хотя Биткойн — это не веб-приложение типа Facebook или Twitter, он использует аналогичную интернет-инфраструктуру. «Набор интернет-протоколов» возник между 1973 и 1974 годами как проект Стэнфордского университета, спонсируемый агентством DARPA. Он был принят Министерством обороны как военный стандарт в 1982 году, а корпорации типа AT&T и IBM начали использовать его в 1984 году.

Что движет феноменом криптовалют: Человеческий консенсус в криптовалютных сетях — Часть 4Уровни Набора интернет-протоколов.

В рамках этого уровня работает не только мировая паутина, но и протокол электронной почты SMTP, стандарт передачи файлов FTP, протокол SSH для безопасного соединения с другими машинами и другие протоколы — включая Биткойн и прочие криптовалютные сети.

Мы сказали, что бесплатное ПО, такое как Биткойн, может быть скопировано и перенастроено любым человеком, но тогда возникает вопрос, как все эти разные версии не мешают друг другу?

На практике, в определенной степени мешают. ПО Биткойна автоматически попытается подключиться к блокчейну Биткойна, но изменение конфигурации файлов и модификация кода может позволить вам подключиться к другой сети, похожей на Биткойн, созданной в момент так называемого форка. Некоторые из этих форков могут иметь схожие с Биткойном названия и утверждать, что они — улучшение версии Биткойна, но лишь немногие из форков ценятся рынком; мы обсудим альткойны подробнее в Части 7.

Что движет феноменом криптовалют: Человеческий консенсус в криптовалютных сетях — Часть 4Как Биткойн связан с Набором интернет-протоколов.

С помощью традиционной банковской карты любая ваша финансовая активность в интернете записывается в ваш «аккаунт», который хранится на центральном компьютере или в облаке данных эмитента карты. В Биткойне нет никаких аккаунтов. Вместо этого, биткойны контролируются парой криптографических ключей. Любой человек может сгенерировать пару ключей, используя Биткойн-кошелек, и для этого не требуется никакой личной информации. Люди могут держать столько пар ключей, сколько хотят, а группы людей могут делиться доступом к счету через кошельки с «мультиподписью».

Как мы увидим далее, пользователи кошельков — это лишь одна группа людей, взаимодействующих с сетью Биткойна. Также в нескольких формах существует ПО для технических пользователей; его можно загрузить напрямую из репозитория кода Биткойна, через Терминал (в Mac OS или Linux).

Пользователи, которые хранят и поддерживают полную историю транзакций сети на своем компьютере, знают, что она занимает около 200 гигабайт. Запуск копии ПО Биткойна и хранение целого блокчейна известно как управление полным узлом. Как мы увидим далее, операторы полных узлов (ещё узлы сети на жаргоне называют нодами) очень важны для сети Биткойна, даже учитывая, что они не «майнят» блоки.

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

Далее, мы расскажем, что происходит, когда пользователь отправляет перевод по сети Биткойна.

Как система узнает, кто есть кто

Исходящие транзакции в сети Биткойна видоизменяют состояние реестра, блокчейна. Чтобы хранить биткойн и осуществлять переводы, пользователь сначала должен сгенерировать пару криптографических ключей. Ключи используются для цифровой подписи в данных без их шифрования.

Транзакция записывается записывается в блокчейне, если отвечает нескольким критериям: у перевода биткойнов должна быть действительная цифровая подпись, а ключевая пара должна контролировать достаточный баланс биткойнов для оплаты транзакции. Ниже представлена полная анатомия транзакции Биткойна:

Что движет феноменом криптовалют: Человеческий консенсус в криптовалютных сетях — Часть 4Анатомия транзакции Биткойна. Идентификатор транзакции выделен желтым цветом. Метаданные выделены синей скобкой. Входы транзакции, выделенные оранжевым, уже находятся во владении аккаунта, с которого отправляется транзакция, и используются для её оплаты. Выходы, выделенные зеленым — это Биткойны, которые отправляются в другой аккаунт. Если доступные выходы соответствуют сумме транзакции, тогда «сдача» возвращается отправителю в форме неизрасходованных выходов. Они также называются UTXO.

Гроссбухи использовались для финансового учёта тысячу лет, и есть много примеров для двойного учёта и балансировки. Биткойн же можно рассматривать как средство «тройного» учёта: обе стороны транзакции делают записи в своих реестрах, а ещё одна копия делается в сети. Эта исчерпывающая история каждой транзакции Биткойна хранится у каждого отдельно взятого полного узла. Она и составляет 200 гигабайт данных, которые вам предстоит загрузить.

Адреса Биткойна — это пример криптографии публичных ключей, где один ключ хранится приватно, а другой используется как публичный идентификатор. Это явление также известно как ассиметричная криптография, потому что два ключа в паре выполняют разные функции. В Биткойне ключевые пары получаются путем использования алгоритма ECDSA.

Визуализация того, как пользователь Алиса подписывает сообщение и отдает его Бобу, который может верифицировать его отправителя, используя публичный ключ Алисы, который она предоставила ранее. Многие пользователи PGP прикладывают свой публичный ключ ко всей почтовой корреспонденции или публикуют его на своем персональном сайте.

Публичные ключи распространяются публично, как email-адреса. При отправлении биткойнов другому пользователю, публичный ключ можно назвать «адресом получателя».

Приватные ключи хранятся в секрете. Получение доступа к счету, помимо публичного ключа, требует и приватного ключа из пары. Однако, в отличие от пароля электронной почты, потеря приватного ключа ведёт к потере доступа к счёту. При генерации приватного ключа в сети Биткойна, он не хранится в какой-то центральной базе данных. Таким образом, его запоминание зависит исключительно от пользователя. Использование криптографии публичного ключа — это одна из относительно недавних военных инноваций, благодаря которой стало возможно существование Биткойна; она была секретно разработана в 1970 году британской разведкой, а публично изобретена заново уже в 1976 году.

В Биткойне такие цифровые подписи идентифицируют данные транзакции с цифровой подписью как исходящие от определенного публичного ключа. Если подпись действительна, тогда полные узлы определяют транзакцию как аутентичную. По этой причине биткойны следует рассматривать как чеки на предъявителя; любой, у кого окажутся ваши приватные ключи, может стать «вами» и потратить ваши биткойны. Приватные ключи необходимо хранить как зеницу ока.

Где обрабатываются транзакции

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

Когда приложение кошелька (или полный узел) отправляет транзакцию в сеть, она фиксируется ближайшими полными узлами Биткойна и распространяется на остальные узлы. Каждый полный узел подтверждает цифровую подпись перед тем, как передать транзакцию другим узлам.

Поскольку транзакции обрабатываются на всех узлах, каждому отдельному узлу удобно идентифицировать ложные транзакции и не распространить их. Поскольку каждая составная машина может выявить и предотвратить мошенничество, нет необходимости в центральном участнике, который бы следил за прочими участниками сети. Такой центральный участник сам мог стать источником нарушения; в среде паноптикума — кто следит за наблюдателями?

Таким образом, транзакции в сети Биткойна имеют следующие качества:

  • Не требуют разрешений, анонимные. Каждый может загрузить ПО Биткойна, создать пару ключей и начать получение и отправку биткойнов. Ваш публичный ключ — это ваш идентификатор в системе Биткойна;
  • Требуют минимального доверия. Используя свой собственный узел, вы можете быть уверены в том, что история транзакций, которые вы ищете, верная. Управляя полным узлом, не обязательно «доверять» копии блокчейна разработчика приложения кошелька;
  • Они крайне доступные. Сеть Биткойна всегда открыта и непрерывно обновляется, работая в течение 99,9926% всего времени.

Идея «минимального доверия» в сети Биткойна особенно заметна в его автоматизированной денежной политике: количество биткойнов, которые когда-либо будут произведены в системе, ограничено, а выпускаются они в определенные временные интервалы. По сути, эта политика эмиссии повлекла за собой дискуссию об автоматизации функций центрального банка на уровне международных финансов. Управляющий директор МВФ Кристин Лагард предложила, чтобы центральные банки больше полагались на автоматическую корректировку денежно-кредитной политики, без вмешательства лиц, принимающих решения. Накамото писал, что это был единственный способ сдержать посредственных или некомпетентных участников рынка от убеждения банка напечатать деньги:

«Проблема, которая лежит в корне обычных валют, состоит в том, что для их работы требуется все возможное доверие. Чтобы деньги не обесценились, центральный банк должны быть доверенным институтом, но история фиатных валют полна разрывами этого доверия. Банкам необходимо доверять, чтобы они хранили ваши деньги и передавали их электронным образом, но они одалживали деньги, из-за чего образовывались кредитные «пузыри», едва имея на то достаточные резервы».

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

Управление в проектах со свободным распределением

В предыдущей части мы рассмотрели термин «открытого распределения» в организационном управлении. В этом случае образуются группы добровольцев, работающих над тем или иным проектом без официального начальства или формального объединения. Мы увидели, что такая форма организации использовалась при создании «свободных» программ с открытым исходным кодом, которые в большинстве случаев оказались более совершенными продуктами по сравнению с разработками коммерческих компаний.

До сих пор, мы представляли принципы открытого распределения и хакерской культуры как идеал, где все делают то, что им хочется, без необходимости ссориться со своим боссом. Однако ясно, что разработчики будут сталкиваться друг с другом, создавая разногласия. Понятно, что существуют некие способы оценки. Как в группе без лидера на самом деле разрешают конфликты?

В реальности, проекты с открытым распределением требуют определенного уровня менеджмента, но он намного менее заметен и происходит как бы за сценой через довольно размытые совместные усилия. Цель такой формы группового управления — создать веселую и интересную среду, в которую бы разработчики хотели возвращаться.

Эксплуатационное здоровье и живучесть

Важно отметить, что не все конфликты — это плохо. Некоторые, наоборот, производительны и приводят к улучшению кода. Иногда сторонам необходимо провести эпичную переписку по электронной почте, прежде чем прийти к решению.

Но для того, чтобы отличить нежелательный конфликт от энергичного мозгового штурма, мы должны сначала определить значение термина «успех» в контексте проекта с открытым распределением. Простой технический успех — создание продукта который получает применение — важен в начале проекта. Но в течение короткого промежутка времени потребности пользователей повысятся, так же как повысится и понимание разработчиком пользователей, их целей. Неспособность перенастроить или улучшить код будет означать постепенную деградацию и неудовлетворенность, а количество пользователей будет сокращаться.

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

Индикаторы долгосрочного и значимого успеха можно оценить по единственной характерной черте:

Эксплуатационное здоровье. В проекте с открытым распределением это степень простоты, с которой дополняется код, или с которой в работу включаются новые разработчики. Хорошее эксплуатационное здоровье — это признак живучести проекта. Живучесть может быть определена как способность проекта существовать и дорабатываться вне зависимости от спонсирования или вклада отдельных людей.

Формы управления при открытом распределении

Группы, работающие по принципу открытого распределения, могут использовать различные способы планирования работы и разрешения конфликтов. Некоторые группы устанавливают формальное управление, часто через механизм голосования, чтобы решать проблемы, включать или исключать разработчиков, или планировать новые возможности программы. Другие группы менее формальны; люди в таких группах больше надеются на самоограничения и чувство приличия друг друга для создания справедливого интеллектуального пространства. Однако, несколько вредных или непослушных разработчиков могут разрушить проект.

В некоторых проектах появляется доброжелательный диктатор, или BD, у которого есть власть принимать важные решения, касающиеся программы или группы разработки. В некоторых случаях BD могут использовать культ личности или более совершенные технические навыки, чтобы сохранять группу заинтересованной, мотивированной и миролюбивой. BD обычно не мешают отдельным разработчикам и не являются начальниками проекта. Они скорее арбитры или судьи; они не не вмешиваются в незначительные конфликты. Но из-за того, что BD — это зачастую основатели проекта или по крайней мере долговременные участники, их роль состоит в том, чтобы помогать урегулировать конфликты при помощи высшего технического умения или по крайней мере знания исторического контекста проекта и его целей.  

BD не обязательно иметь сильнейшие инженерные навыки в группе; вместо этого, для них более важно чувство общего дизайна, которые бы помогало им распознать более приоритетные улучшения и более важные навыки в разработчике. Во многих случаях урегулирование спора — это способность определить, какая сторона имеет предлагает лучшее решение проблемы и наиболее здравый подход к такому решению. BD особенно полезны, когда проект ещё относительно молод и находится в поисках долгосрочного направления.

Зрелые проекты меньше полагаются на BD. Вместо этого появляется управление на основе группы, при котором ответственность распределяется среди группы стабильных и постоянных разработчиков. Обычно проекты не возвращаются к форме управления с «доброжелательными диктаторами» после того, как им удаётся достигнуть группового управления.

Появление демократии на основе консенсуса

Большую часть времени группы с открытым распределением без BD будут работать на основе консенсуса, при котором проблема обсуждается до тех пор, пока все не придут к единому соглашению. После окончания разногласий дискуссия переключается на вопрос наилучшего пути внедрения принятого решения.

Такая форма управления — лёгкая, она смешивает техническую дискуссию с процессом принятия решений. Обычно, один член команды напишет резюмирующий пост или письмо в ветку дискуссии, давая последний шанс всем несогласным высказать свое мнение. Большинство решений, такие как исправление незначительного бага, малы и однозначны, консенсус по таким решениям подразумевается. Использование ПО с «контролируемыми версиями» означает, что внесённые изменения можно откатить назад. Это придает общественному консенсусу расслабляющее чувство. Если постоянный разработчик уверен, что он или она знает, что должно быть сделано, они могут безбоязненно действовать.

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

Брокеры иногда являются участниками дебатов, но им нужно оставаться над ситуацией — по крайней мере, до тех пор, пока они точно отражают все позиции. Если такая ситуация имеет место, они могут набрать достаточное доверие для проведения голосования. Обычно те, кто уже «зафиксировал доступ», то есть, получил разрешение писать код в репозиторий проекта, получают право голоса.

Ко времени организации голосования пройдут небольшие дебаты о легитимности вариантов голосования, хотя обструкционисты могут попытаться затормозить этот процесс. К мнениям людей относятся с пониманием, если их беспокойство воспринимается как искреннее, но «тяжелых» людей просят покинуть проект. Дозволение или запрет для разработчиков — также вопрос для голосования, хотя оно скорее проходит конфиденциально между существующими разработчиками, нежели чем в рамках общего обсуждения. Существует много систем голосования, но в большинстве своем они выходят за рамки данного эссе.

Разделяя код

Определяющее свойство бесплатных программ с открытым исходным кодом — это разрешительное лицензирование. Любой может скопировать базовый код и продолжить его разработку в другом направлении. Это критическая характеристика для принципа открытого распределения. Это значит, что разработчик может потратить время и энергию на групповую работу, зная, что если приоритеты группы разойдутся с его собственными, он может продолжить разработку в собственном направлении.

На практике, форки стоят дорого. Немногие разработчики достаточно подкованы или обладают нужным количеством временем, чтобы исправить каждый баг.

Возможность форка ограничивает власть доброжелательных диктаторов (BD). Если они ведут проект в направлении, с которым не согласно большинство членов команды, разработчики скопируют репозиторий и продолжат работу, но уже без BD. Это мотивирует BD придерживаться консенсуса группы и «лидировать незаметно».

Управление открытого распределения на практике

Полезное руководство по управлению открытого распределения в реальном, успешном проекте можно найти в исследовании Стэнфордской школы бизнеса под названием «Mozilla: Масштабирование через сообщество добровольцев». (Один из авторов исследования, профессор Роберт Саттон — постоянный критик иерархического управления, не только из-за пагубного эффекта на сотрудников, но и из-за влияния на самих менеджеров).

Согласно работе Саттона и соавторов, в код Mozilla внесли вклад около 1000 добровольцев. Другие 20 тысяч отправили отчеты о багах — ключевой фактор контроля качества. Работа производилась на основе неполной занятости, а именно тогда, когда у волонтеров было время; только 250 из тех, кто внес вклад, были постоянными сотрудниками Mozilla. Исследование описывает, как работает «хаордическая система» (от слов «хаос» (chaos) и «порядок» (order):

«Менеджмент компании имеет мало влияния на волонтеров — их нельзя уволить, а их усилия можно перенаправить, только если они сами того хотят. У общей работы должны были быть общие элементы организации — базовый дизайн, который необходимо использовать, новые модули, которые должны были соответствовать общему видению продукта, и необходимо принимать решения о том, какой код включать в новый релиз. В то время, как вклад сообщества может быть полезным, в конце концов необходимо принять конкретные решения. Среда разработки открытого кода не привела бы к успеху, если бы привела к анархии. [Председатель Mozilla Foundation Джон Лили] называл такую среду «хаордической системой», которая объединяет свойства хаоса и порядка. Он так говорил о проблемах лидерства и масштабирования в такой организации, как Mozilla: «Я думаю, что фраза «вести движение» — это несколько оксюморон. Я думаю, что ты пытаешься вести движение. Ты пытаешься вести его в определенном направлении, и ты стараешься убедиться в том, что оно не сойдет с назначенного пути».

«Бизнес-модель» Биткойна связывает хакеров несмотря на конфликт

Во многих отношения проект Биткойна аналогичен предшественникам типа Mozilla. Тот факт, что система Биткойна создает форму валюты — это отличительная особенность системы координации. Это вызвало наблюдение о том, что Биткойн «создал бизнес-модель для программ с открытым исходным кодом». Эта аналогия полезна в широком смысле, но дьявол кроется в деталях.

Финансирование — благодаря которому во многих технологических стартапах выплачивают зарплаты — не нужны в системе, где люди работают бесплатно. Но, соответственно, нет стимула удерживать кого-либо, кто вносит вклад в работу, выходящего за рамки личных целей. Бесплатное ПО с открытым кодом можно легко разделять и модифицировать, а разногласия часто заставляют разработчиков скопировать код и заняться разработкой собственной версии. Биткойн представляет собой актив, который может аккумулировать ценность, если работа ведется с той же версией проекта, размещенного на том же блокчейне. Поэтому, пока ПО Биткойна само по себе — это не бизнес для прибыли — оно распространяется свободно по лицензии ПО MIT — растущая стоимость актива биткойна создаёт стимул для людей разрешать конфликты и продолжать работу над текущей версией.  

Вот что имеется в виду под так называемой бизнес-моделью: хранение или майнинг актива дает технарям стимул вносить вклад в продолжающуюся работу (и вычислительную мощность) сети, повышая её ценность и уровень использования, а взамен сеть получает «бесплатную рабочую силу». По мере повышения использования финансовых сервисов на основе Биткойна в банковской системе и распространения монеты, её стоимость будет увеличиваться.

Другие системы обработки платежей в реальном времени, такие как FedWire, управляемая Федеральной резервной системой США (ФРС) и использующая бумаги ФРС, можно взять за основу для сравнения (с точки зрения накладных расходов, безопасности и гибкости) с системой Биткойна, где биткойн используется как средство сбережения и обмена, а также как расчётная единица. Без перспективы улучшения протокола, если сравнивать с банковскими эквивалентами, существует мало шансов на повышение цены биткойна; в свою очередь, стагнирующая цена снижает финансовый стимул для внесения вклада в улучшение кода.

Тем не менее, система должна быть защищена от плохих участников, которые могут попробовать саботировать код в личных целях. Далее, мы обсудим вызовы, стоящие перед единством Биткойна, а также как дизайн Биткойна создает решения для обеих обозначенных проблем.

Как разработчики организуются в сети Биткойна

Мы описали в деталях, как ведётся разработка программ с помощью открытого распределения, но не погрузились в роли, присущие разработчикам сети Биткойна. Далее мы расскажем, как технари присоединяются к сети.

Существует три группы технических участников, каждой из которых присущи различные наборы навыков и разные стимулы.

Группа А: майнеры

Основная роль майнинга — гарантировать сохранность реестра Биткойна для всех участников. Поскольку нет никакой центральной базы данных, чтобы оставаться неизменными и безопасными, журналы транзакций полагаются на вычислительную мощность, предоставляемую майнерами.

Майнеры используют специализированное компьютерное оборудование, подходящее для данной криптовалютной сети, и, в свою очередь, получают «вознаграждение» в виде биткойнов. Вот как Биткойн и схожие сети передают криптовалюты. Процесс майнинга подробно описан в следующих частях, но достаточно сказать, что эта активность требует IT-навыков, включая знание системного администрирования и понимание работы сетей. Знания в области электрических сетей также будут полезны, если речь идет о работе масштабной фермы, где необходима продвинутая энергоинфраструктура.

Работа майнингового оборудования требует затрат, сначала в форме оборудования, затем в форме потребляемого электричества. Так что майнеры должны быть уверены в том, что их выплаты криптовалют будут ценными в будущем, перед тем как они рискнут капиталом ради их добычи. Эта уверенность строится на возможностях и идеях главных разработчиков, создающих программные протоколы, которым и следуют майнеры. Со временем, однако, майнеры возмещают свои расходы и получают прибыль, и могут потерять интерес к данной сети.

Группа B: Ключевые разработчики

Разработчики присоединяются к криптовалютным проектам в поисках персонального удовлетворения и самостоятельного развития навыков. Если он купил монету, то может быть мотивирован потенциальной прибылью, а потому будет искать способы повысить стоимость монеты вследствие доработки кода. Многие разработчики просто хотят внести вклад в интересный, полезный и важный проект наряду с другими участниками. Чтобы принять на себя эту роль, технарям нужно владеть развитыми навыками программирования. Степень по компьютерной науке полезна, но огромное количество участников крипто-проектов являются хакерами-самоучками.

В любом случае, ключевые разработчики требуют незначительных затрат. Поскольку они попросту жертвуют своим временем, им нужно беспокоиться только об альтернативных расходах. Проще говоря, разработчики, которые просто пишут код, вначале могут быть даже менее обязаны, чем майнеры, но со временем могут стать всё более и более подверженными групповой динамике, и самой технологии. Ключевым разработчикам не обязательно дружить с майнерами, но им нужно быть осведомленными об экономике майнеров. Если в сети не прибыльно добывать криптовалюту, или если качество ПО низкое, сеть не привлечет достаточно инвестиций со стороны майнеров. Без их вычислительной мощности сеть слаба и уязвима к атакам.

Группа C: Операторы полных узлов

Управление «полным узлом» означает хранение копии блокчейна на локальном компьютере и управление экземпляром Биткойна. Это часть ПО, которая постоянно работает и соединена с сетью Биткойна, чтобы получать и передавать новые транзакции и блоки. Существует возможность использовать экземпляр без загрузки всей цепи.

Выгода оператора полного узла от управления сетью и хранения цепочки в «минимизации доверия»; он или она может отправлять и получать биткойны без необходимости доверять какому-то другому держателю копии реестра, которая может содержать ошибки или намеренные подделки.

Польза этого для не-технических пользователей не очевидна, но в реальности ПО Биткойна выполняет работу по отклонению некорректных данных. Технические пользователи и разработчики, создающие связанные с Биткойном сервисы, могут проверять или изменять свои копии блокчейна Биткойна, чтобы понять, как они работают.

Другие заинтересованные стороны получают выгоду от полных узлов по трем причинам. Полные узлы:

  1. Подтверждают цифровые подписи в транзакциях, отправленных в сеть. То есть, они выступают привратниками на пути фейковых транзакций.
  2. Подтверждают блоки, которые производят майнеры, заставляя соблюдать правила майнеров, которые могут попытаться скрытно изменить правила.
  3. Ретранслируют блоки и транзакции на другие узлы.

Стоит также упомянуть две основные группы второстепенных участников:

Сторонние разработчики. Выстраивают индустрию вокруг проекта или используют его как инфраструктуру для приложения или сервиса (например, кошелек, биржа, пул). Эти люди часто используют полные узлы для поддержки своих сервисов.

Пользователи кошельков (холдеры или жарг.: ходлеры). Конечные потребители, которые отправляют и получают транзакции криптовалют. Все участники — это обычно пользователи кошельков, если они хранят монеты.

Резюме

Мы рассмотрели способ, с помощью которого сеть Биткойна создает систему стимулов для проектов с открытым исходным кодом, а так же, и для создателей производных проектов с тем, чтобы они вносили вклад в оригинальную версию. Но как эти разрозненные действующие лица объединяют свои компьютеры в работающую пиринговую сеть? Теперь, когда мы рассказали о том, как разработчики приходят к консенсусу в одноранговых системах, в следующей главе мы рассмотрим, как машины сходятся в «истинности» записи транзакции в реестре, несмотря на отсутствие «мастер-копии».

Подписывайтесь на BitNovosti в Telegram!

Делитесь вашим мнением об этой статье в комментариях ниже.

Источник

Что движет феноменом криптовалют: Человеческий консенсус в криптовалютных сетях — Часть 4

Читайте также:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *