Loading...


Создание блокчейна .

  Создание блокчейна  .
     Как мы уже говорили, развитию криптовалюты на первом этапе ее существования сильно мешал вопрос: можно ли быть уверенным в том, что человек, отославший вам несколько биткоиновых монет, не отослал их еще кому-нибудь? Ведь в цифровой валюте невозможно проверить подлинность водяных знаков, магнитной ленты или микроволокон банкноты, как в случае с бумажными деньгами. Именно отсюда берет начало проблема «двойных трат», представляющая собой одну из самых серьезных уязвимостей цифровых денег. Сатоши Накамото разрешил ее, причем не путем усиления защиты виртуальных монет, а за счет настоящего прорыва в социальных технологиях, системе дебетов, кредитов и балансов, которые харталисты признают истинной сутью денег. Блокчейн – самый важный регистр, выполняющий роль центральной нервной системы биткоина, – стал фирменным изобретением Накамото. Хотя это технический компонент, он отражает важные аспекты психологии денег и социума – в частности, какими должны быть правила, побуждающие отдельных людей действовать в интересах сообщества.
      
     Мы установили, что одно из ключевых преимуществ криптовалют состоит в их децентрализованном характере. Что это означает? В первую очередь то, что в их основе лежит доступный каждому совершенно открытый журнал.
     До настоящего времени денежные системы строились на централизованных закрытых регистрах, ведением которых в масштабах всей экономики занимались либо коммерческие, либо центральные банки. Это обеспечивало эффективность функционирования системы и защищенность ее участников, которым не оставалось ничего другого, как доверять данным о принадлежащих им средствах и их взаимной задолженности. Однако главная проблема централизованной денежной системы заключалась в том, что она предоставляла своему центральному органу слишком большие полномочия и обеспечивала слишком высокую прибыль от услуг по ведению централизованного журнала. Стояла задача найти компромиссное решение – создать достойную доверия децентрализованную систему, способную надежно хранить общественные вклады, не теряя при этом эффективности и не снижая уровень безопасности, которые обеспечивала централизованная система.
     Чтобы добиться хотя бы некоторой децентрализации существующей системы, следует найти способ распределить совместную задачу ведения главного журнала среди членов сообщества или нескольких учреждений, объединенных в общую сеть, а также дать им стимул для выполнения этой работы. Кроме того, необходимо убедиться, что в процессе ведения совместного главного журнала никто из членов сообщества и ни одна организация не имеют возможности незаметно манипулировать записями и вносить какие-либо изменения. Наконец, следует внушить сообществу доверие к правилам, по которым они работают, или, по крайней мере, убедить людей в том, что система обеспечивает достаточно эффективную защиту от неприемлемого поведения.
     Сразу предупреждаем: подробный рассказ о том, как устроена и действует эта система, может быть довольно сложен для понимания. Он основан на математических выкладках, которые незнакомы большинству людей. Один из способов разрешить эту проблему – смириться с тем, что вам и не нужно понимать, как работает криптовалютная денежная система. Мало кто из нас знает, как устроен двигатель внутреннего сгорания, но это не мешает нам ездить на автомобиле, доверяя ему свою жизнь и жизнь своего семейства. Вполне возможно, вы не расскажете во всех подробностях о механизме функционирования банковской системы США, но при этом держите свои деньги в банке. Однако при всем этом вполне понятно и даже похвально, что потенциальные пользователи новой, неотлаженной денежной системы хотят иметь представление о ее внутреннем устройстве. Именно это послужило главной причиной для того, чтобы мы написали данную книгу. Скорее всего, и вы решили прочесть ее именно поэтому. А значит, давайте попробуем разобраться. Будем продвигаться вперед медленно и попытаемся изложить материал предельно просто. Вперед.
     Во-первых, чтобы понять, как устроена модель, которую Сатоши Накамото положил в основу биткоина, мы позаимствуем идею, впервые сформулированную разработчиком программного обеспечения Евгением Брикманом[167]. Она основана на истории, изложенной нами в главе 1, о том, как в XIX веке в микронезийской общине острова Яп камни фэй использовались для записи и контроля погашения долгов. Представьте, писал Брикман, что по мере расширения торговли и расчетных операций одному из япских племен все труднее и труднее было уследить за тем, кто кому должен и кому принадлежат камни фэй . Было просто невозможно установить, действительно ли платежеспособен человек, клянущийся в том, что у него достаточно каменных денег для погашения долга. По мере того как все чаще случались стычки и росла напряженность, старейшины назначили одного члена племени ответственным за сохранность объединенных записей о праве собственности на камни фэй и проведение операций с ними. Но регистратор начал брать плату за внесение записи о каждой операции, а их содержание поставил в зависимость от личного отношения к тому или иному члену племени. И он оказался не единственным, кто попробовал использовать эту систему ради собственной выгоды: старейшины очень скоро начали давить на него, требуя вносить в реестр недостоверную информацию.
     Наконец группа обеспокоенных членов племени взяла дело в свои руки и отказалась от услуг регистратора и централизованной записи операций. Отныне каждая семья вела собственный журнал. Каждый раз, когда фэй переходил из рук в руки, человек, который совершал платеж, должен был выйти в центр деревни и объявить всем о том, что операция завершена, – по сути дела, это объявление подтверждало факт оплаты. Каждый должен был откорректировать свой журнал, записав сумму платежа в дебет счета плательщика и кредит счета получателя платежа. Если большинство семей признавало сделку законной, то остальные должны были подчиниться мнению большинства.
     До недавнего времени казалось невозможным внедрить такую же децентрализованную систему расчетов в нашей достигшей невероятных масштабов глобальной экономике. Но интернет устранил б о льшую часть препятствий на пути к этому, создав сеть мгновенных коммуникаций всех со всеми. На следующем этапе следовало: во-первых, создать механизм обнародования результатов записей каждого отдельного регистратора и поддерживать целостность одного главного журнала, в котором каждый согласится контролировать точность записей; во-вторых, создать систему стимулов тратить ресурсы на ведение журнала для достаточного числа индивидуумов или организаций. Биткоин успешно справился с обеими задачами.
     Мы уже говорили о том, что алгоритм майнинга биткоина построен так, чтобы генерировать одинаковое количество новых биткоинов в единицу времени на протяжении 130 лет, и о том, что именно они послужат наградой владельцам компьютеров, называемым майнерами, за их труд по верификации транзакций. Конечно, это не означает, что остальные пользователи не будут иметь доступа к биткоинам, которые делятся на маленькие части. Их по-прежнему можно будет пересылать друг другу, а их курс будет колебаться в зависимости от мировых рыночных цен на товары и услуги, которые можно на них купить. Но генерирование новых биткоинов гарантирует ведение, корректировку и сохранение главного журнала биткоиновой системы, то есть блокчейна. С течением времени, по мере замедления темпов генерирования новых биткоинов в системе стимулов все большее значение будут иметь скромные комиссионные, которые майнеры будут взимать со всех пользователей, проводящих транзакции.
     Блокчейн биткоина представляет собой длинную цепочку блоков или групп транзакций, проводимых примерно в одно и то же время. Эта цепочка будет расти неограниченно долго – столько, сколько будет функционировать сама система. Такая хронологическая структура критически важна, поскольку гарантирует законность самых ранних транзакций. По идее, более поздние попытки пользователя перевести кому-нибудь эти биткоины повторно будут квалифицированы как незаконные. Создавая последовательность перечислений и получений биткоинов с зафиксированным временем каждой операции, доступную любому участнику биткоиновой экономики, система контролирует состояние счета каждого участника в любой момент, а также идентифицирует «прикрепленную» к каждому биткоину или его части информацию о том, когда он был создан, израсходован или получен. Если Джеймс пользуется электронным кошельком, установленным на его смартфоне, чтобы купить, например, чашку кофе в кафе Coupa в Пало-Альто, то сеть получит информацию о запросе на перечисление 0,008 биткоина из его собственного электронного кошелька в электронный кошелек кафе. В этот момент транзакция считается «приостановленной операцией», ожидающей подтверждения. Но после того как майнеры завершат процедуры, необходимые для формирования нового блока транзакций, и включат его в блокчейн, транзакция Джеймса вместе с рядом других, совершенных в те же 10 минут, будет навсегда зафиксирована в главном журнале. Соответственно, его покупка кофе за биткоины признана аутентичной и необратимой операцией. По сути, для блокчейна неважно, что это была покупка именно кофе или что в ней участвовали именно Джеймс и кафе Coupa. Все, что нужно для отражения в нем операции, – это специальные пароли и идентификационные адреса, присвоенные электронным кошелькам Джеймса и кафе Coupa.
     Теперь представим, что Джеймс – продвинутый программист и ему известно, как отменять инструкции, заложенные в клиентском программном обеспечении, установленном на его компьютере для доступа к биткоиновой сети. К тому же он плохо себя чувствует и не выспался, поэтому с помощью той же самой информации о своем электронном кошельке, которую он вводил, оплачивая кофе, он заказывает пилюли от простуды на сайте Overstock.com и пытается оплатить их биткоинами, которых у него больше нет. Тут блокчейн как хронологический журнал обнаруживает, что эти деньги уже потрачены. Проанализировав новую попытку Джеймса расплатиться и сопоставив ее с предыдущей историей записей, регистраторы заявят: «Нет, он уже потратил эти деньги раньше».
     В процессе легализации каждая транзакция, добавляемая к постоянно пополняемому блокчейну, сравнивается со всеми предыдущими записями. Основываясь на консенсусе майнеров относительно того, какие транзакции легализованы, а какие – нет, главный журнал представляет неоспоримые доказательства наличия биткоинов у каждого пользователя, а также историю их поступлений и трат.
      
     Для простоты мы сосредоточимся на механизме функционирования блокчейна как системы получения новых монет и подтверждения транзакций, хотя в мире криптовалют существует множество вариаций блокчейна.
     Купленная Джеймсом чашка кофе представляет собой одну транзакцию. Системе приходится обрабатывать множество таких транзакций.
     Как мы уже говорили, блокчейн находится под управлением базового программного протокола биткоина[168]. Каждый пользователь биткоиновой сети, начиная с Накамото, так или иначе загружал набор программных инструкций, которые сообщают компьютеру или смартфону правила взаимодействия с другими компьютерами в сети. Блокчейн не может существовать на одном компьютере или сервере. Подобно ситуации с регистраторами с острова Яп, он существует в распределенном виде в сообществе владельцев компьютеров, или сетевых узлов . Эти узлы представляют собой устройства с установленными на них электронными кошельками , то есть специальными программами, предоставляющими пользователям и компаниям пароли, с помощью которых можно инициировать платежи, изменяя остаток на биткоиновых счетах в той ограниченной части блокчейна, к которой они приписаны. Узлы также включают персональные компьютеры – или, в современном понимании, специализированные майнинговые центры, – с помощью которых майнеры формируют блокчейн и получают за это вознаграждение в виде новых биткоинов. Работая совместно в заранее определенном порядке, эти сетевые узлы коллективно гарантируют, что содержание главного журнала легитимно и защищено от вмешательства разных мерзавцев.
     Биткоин не может существовать без блокчейна. Фактически учет постоянно меняющихся приходов и расходов и представляет собой валюту. Биткоины не существуют сами по себе, и вы не можете влезть в какое-нибудь электронное устройство и взять себе несколько монет. Биткоины существуют постольку, поскольку придают ценность биткоин-адресу  – уникальному мини-счету, через который пользователи (индивидуумы и компании) получают и отправляют валюту. Биткоины не существуют в форме документов или электронных файлов. Баланс, который вы видите, зайдя в свой электронный кошелек, представляет собой вашу чистую покупательную способность, рассчитанную на основе входящих и исходящих транзакций. Такая модель характерна для всего блокчейна и включает все дебетовые и кредитовые остатки и сальдо, ассоциированные с каждым уникальным биткоин-адресом. Это существенное различие означает, что не существует никакого отдельного файла биткоина или документа, который можно скопировать или потерять. Ваши права на владение биткоинами определяются балансом биткоин-счета, который главный журнал идентифицирует как принадлежащий вам. Вы можете утратить способность управлять этим счетом или передать его кому-нибудь другому – например, если потеряете пароль и не сможете войти в свой электронный кошелек, – но потерять свои биткоины в буквальном смысле вы не можете, поскольку они физически не существуют.
     Еще одна критически важная черта постоянно удлиняющегося блокчейна подтвержденных транзакций – его общедоступность. Это отличает биткоин от закрытых электронных валютных систем (например, PayPal), в которых главный журнал строго конфиденциален. С помощью специального программного обеспечения – чаще всего бесплатной программы, разработанной и давшей ей свое имя компанией Blockchain из Лондона, – можно увидеть подробности любой когда-либо совершенной биткоиновой операции. Вы можете изменить (или потребовать изменить) те операции блокчейна, к которым имеете доступ через специальные пароли, но всегда и при любых обстоятельствах вы можете просмотреть любую операцию и любой биткоин-адрес.
     Глядя на биткоин-адреса в блокчейне, мы не видим никаких деталей, позволяющих установить их собственников. Там присутствуют только последовательности букв и цифр, содержащие от 26 до 34 знаков. Каждый из этих адресов создавался во время совершения какой-либо транзакции в прошлом и представляет собой то, что криптографы называют открытым ключом . Будучи владельцем такого ключа, вы можете свободно сообщать его посторонним людям и предлагать переводить на него биткоины. Однако только вы можете снимать с него деньги через электронный кошелек . Делается это так: нужно открыть приложение для смартфонов, привязанное к вашему электронному кошельку, и воспользоваться встроенным в него сканером QR-кодов для введения электронного адреса продавца в строку «Кому» операционного окна. Затем следует ввести сумму, которую вы хотите перевести, и нажать кнопку «Отправить». Тем самым вы даете программе поручение найти соответствующую сумму в биткоинах по любому из ваших ранее созданных адресов и отправить ее торговцу{16}. Выполняя это задание, программа кошелька использует встроенный код, известный как закрытый (или личный) ключ . Каждый такой ключ привязан только к одному уникальному биткоин-адресу. Путем сложной математической комбинации открытого и закрытого ключей – или, говоря языком криптографов, подписания открытого ключа закрытым – передается информация, которая в данном случае включает инструкцию о переводе некоторого количества биткоинов с одного биткоин-адреса на другой{17}.
     Система шифрования с открытым ключом широко используется в интернете и финансовых приложениях, включая онлайн-банкинг и электронную почту. Она позволяет людям обмениваться определенными сведениями, не предоставляя посторонним доступа ко всей приватной информации, и напоминает систему интернет-доступа к вашему банковскому счету, когда строго секретный пароль комбинируется с несекретным именем пользователя. Важная особенность этой системы заключается в том, что при нынешнем уровне компьютерных технологий практически невозможно подобрать личный ключ путем обратных математических вычислений на основе открытого ключа{18}. Но это не означает, что посторонние не могут похитить личный ключ, если получат доступ к вашему компьютеру или смартфону, на котором установлен электронный кошелек. Поэтому проблема обеспечения безопасности электронных кошельков и биткоиновых накоплений стоит очень остро и для физических лиц, и для компаний. Примером того, что может произойти, если не уделять достаточно внимания вопросам безопасности, служит судьба биткоиновой биржи Mt. Gox, по крайней мере, если верить версии ее топ-менеджеров о том, как они потеряли 650 тысяч биткоинов.
     Возможность отследить всю цепочку транзакций помогает формировать доверие к денежной системе в обществе. Но эту особенность биткоиновой денежной системы уже ухитрились использовать правоохранительные органы, причем наиболее ярким примером таких действий стал арест биткоинов во время разгрома силами ФБР онлайновой биржи торговли наркотиками на сайте Silk Road{19}.
     В отличие от транзакций по кредитным картам, которые привязаны к имени конкретного человека и известны обслуживающему банку и всем, кто имеет доступ к операциям на его счете, биткоин-адрес никак не связан с конкретным человеком. По этой причине биткоин привлек внимание людей, которые проводят деликатные операции и стремятся предотвратить утечку информации. Ведь если они обнародуют информацию о том, какие именно счета принадлежат им, то любой желающий сможет проследить совершаемые по ним транзакции. Поскольку в качестве ключей используются буквенно-цифровые идентификаторы, а не имена, органам правопорядка не так-то просто разобраться в этой системе. Однако возможность отслеживать транзакции позволяет выявлять связи, которые никогда не удалось бы обнаружить при расчете наличными деньгами.
     Имея полномочия вызывать кого угодно в суд для допроса, следователи теоретически могут заставить любую организацию раскрыть информацию о владельце любого электронного кошелька. Поэтому некоторые считают, что биткоин – гораздо более полезная вещь для следователей, чем балаклава для преступников.
     Это обстоятельство ставит перед нами важные вопросы. Между такими задачами, как защита персональных данных и открытие правительству доступа к информации, необходимой для защиты общества, всегда существует определенное противоречие. Главная проблема биткоина, как и интернета в целом, будет состоять в достижении баланса в реализации этих задач – конечно, если ему удастся стать мейнстримом. Очень важно, чтобы биткоин поддерживал и укреплял позитивные аспекты своей анонимности – будь то возможность для женщины-блогера в Афганистане получать оплату за свои публикации без помех со стороны родственников или в более широком смысле – право индивидуума стремиться к личному счастью, в чем бы он его ни усматривал, не подвергаясь опасности со стороны нечистоплотных людей.
      
     Теперь вернемся к вопросу о том, как функционирует блокчейн. Кошелек Джеймса подписал его личный ключ и передал в сеть распоряжение о перечислении 0,008 биткоина на биткоин-адрес кафе Coupa, но пока эта транзакция числится в  приостановленных . Впоследствии, если все пойдет по плану и Джеймса не заподозрят в совершении «двойных трат», эта транзакция будет подтверждена и включена в блокчейн. После этого отменить или пересмотреть ее станет невозможно. Здесь не существует процедуры оспаривания сделки, которую обеспечивают некоторые банки, если владелец кредитной карты отказывается от оплаты. Ни одна из сторон сделки не может принудительно ее расторгнуть, а единственная возможность сделать это по взаимному согласию – провести вторую операцию, обратную первой. Именно поэтому система недопущения «двойных трат» так важна в денежной системе биткоина, и это приводит нас к группе трудолюбивых людей, называющих себя майнерами.
     С нашей точки зрения, термин «майнинг» выбран неудачно. По большей части эта работа напоминает ведение бухгалтерских книг.
      Работа  – еще один ключевой термин, присущий сленгу биткоиновых майнеров. В данном случае он означает, что внутренняя стоимость биткоина зависит только от работы, и при этом весьма тяжелой. По сути, основное отличие этой работы заключается в высокой сложности вычислений. Чем сложнее вычисления, тем больше ресурсов требуется для их выполнения, и в первую очередь электроэнергии. Некоторые специалисты по криптоэкономике доказывают, что именно эта работа придает биткоину реальную внутреннюю стоимость. Не менее важно и то, что объем выполненной работы – вычислительный эквивалент человеко-часов – легитимизирует главный журнал, поскольку представляет собой значимую коллективную инвестицию в поддержание его целостности.
     Именно так «работают» майнеры.
     Когда Джеймс поручил своему электронному кошельку переслать биткоины на биткоин-адрес кафе Coupa, тот передал информацию об отложенной операции в сеть вместе с ценными сведениями: обе стороны сделки сопоставили свои биткоин-адреса, дату и время транзакции и другие детали, например уникальный ключ транзакции и что угодно еще – хоть привет, – что может прикрепить отправитель.
     Теперь поговорим о майнерах. Каждый занятый в майнинге сетевой узел , или компьютер, собирает эту информацию и включает ее в зашифрованную буквенно-цифровую последовательность знаков, называемую хешем . Подобно тому, как архивируются файлы документов, процесс хеширования позволяет «свернуть» относительно большие массивы информации, преобразовав их в гораздо меньший объем данных. Хеш – неотъемлемая часть процедуры шифрования и хранения массива данных в компьютерном мире. Возможно, вы уже сталкивались с ним, не зная, с чем имеете дело. В зависимости от того, какой алгоритм хеширования задействован, его результатом будет хеш фиксированной длины. В случае с биткоином используется алгоритм под названием SHA-256, обеспечивающий получение хеша длиной в 64 знака, состоящий из последовательности букв (от  a  до  z ) и цифр (от 0 до 9). Чтобы посмотреть, как выглядят такие хеши, зайдите на один из множества сайтов, содержащих хеш-генераторы, и напишите что-нибудь в текстовом поле. Мы ввели в такое поле текст: The only thing we have to fear is fear itself («Единственное, чего мы должны бояться, – так это самого страха») – и получили следующий хеш:

     f72680b97551fc5eda1b3a33dda55796ba9619b371fdd03f66409f2c4958c2cb

      
     Процедура подтверждения достоверности транзакций для включения в блокчейн Публикуется с разрешения Майкла Кейси и Пола Виньи

      
     А вот так выглядит хеш, полученный в результате введения в то же текстовое поле всех 168 слов предыдущего абзаца этой главы:

     e52a16c11d5c45b768b1bc87f0c1494799e92c019101562bfb435950b36de17b

     Независимо от того, будет ли это одна отдельно взятая буква или полный текст романа «Война и мира», хеш все равно состоит из 64 знаков. Но при малейшем изменении в исходной информации – одной десятичной точке в числе или, например, пробеле – весь хеш полностью изменится. Эта способность упаковывать большой объем информации в массивы данных одинаковой структуры, но каждый раз совершенно разного вида делает хеширование очень мощным инструментом шифрования. Большой объем информации можно представить в сжатом виде и зашифровать. Такой хеш практически невозможно расшифровать и узнать, какую именно информацию он содержит; однако если ваш компьютер имеет доступ к источнику данных, из которых был сформирован этот хеш, то не так уж сложно проверить правильность заключенной в нем информации.
     Алгоритм хеширования позволяет построить своего рода иерархию хешей, что весьма полезно, поскольку создается структура, в которой майнеры могут группировать одновременно выполняемые транзакции. Это происходит следующим образом. Программное обеспечение на компьютере майнера объединяет хеш первой транзакции – вместе со всей содержащейся в нем информацией – с необработанной информацией следующей не хешированной транзакции, чтобы создать новый хеш. Теперь информация об  обеих транзакциях полностью хеширована. Эта процедура повторяется со следующей по очереди транзакцией, которую принимает в обработку компьютер майнера. Хеш, созданный на основе информации о двух транзакциях, объединяется с информацией о третьей транзакции, и создается еще один, третий, хеш. Эта процедура повторяется каждый раз по мере поступления в обработку все новых транзакций. Информацию, содержащуюся в этом объединенном хеше, впоследствии легко проверить, пройдя назад по неразрывной цепочке хешей. Именно таким образом транзакции объединяются в строительные блоки для блокчейна, которые соответственно называются блоками .
     Пока происходят эти события, компьютеры майнеров принимают участие в своеобразном соревновании, или в лотерее за право быть первым, кто «упакует» очередной блок, то есть подготовит его к включению в главный журнал блокчейна и получит за это приз – блок вновь выпущенных биткоинов. Пока этого не произойдет, сеть не сможет подтвердить достоверность последней серии транзакций. Каждый майнер в отдельности постоянно кодирует и декодирует содержащуюся в хешах информацию описанным выше способом, но ее содержимое пока еще не готово к проверке сетью. По-прежнему нет единого мнения о ее достоверности. Оплата Джеймсом кофе из кафе Coupa все еще не подтверждена. Таким образом, решение математических задач представляет собой составляющую часть важнейшей процедуры подтверждения достоверности транзакций.
     Компьютеры вступают в соревнование, одновременно и быстро предлагая хеши для кодирования и объединения максимального объема данных в новый, полностью укомплектованный блок с последующим присоединением к блокчейну вслед за предыдущим блоком. Победителем в этом состязании станет тот хеш-блок, который окажется обладателем специального номера, признанного базовым алгоритмом биткоина выигрышным. Получить этот номер очень сложно, поэтому компьютеры продолжают создавать блоки из хешей до тех пор, пока не сгенерируют выигрышный номер, – снова, и снова, и снова. Каждый из генерируемых компьютером новых хеш-блоков создается путем добавления уникального, сгенерированного случайным образом номера (который называется одноразовым кодом ) к остальным содержащимся в нем данным. Как уже упоминалось, к ним относятся хешированные данные о последней транзакции, а также предыдущий хеш-блок. Добавляя новый одноразовый код, мы полностью меняем конечный хеш-блок. Стоит отметить, что термин одноразовый код позаимствован у Льюиса Кэрролла, который употребил слово frabjous (замечательный) и охарактеризовал его как «одноразовое слово», применимое только к одному случаю и вряд ли пригодное для дальнейшего употребления[169]. Такова судьба миллиардов «одноразовых кодов», сгенерированных и отброшенных в процессе поиска выигрышного кода мощными компьютерными узлами, задействованными в майнинге. Это напоминает охоту на виртуальный пароль в джунглях виртуальных цифр.
     В итоге эта тяжелая работа методом проб и ошибок приводит к тому, что один из узлов отправляет в сеть хеш-блок с кодом, соответствующим требованиям биткоинового алгоритма, – кодом, включающим необходимое количество нулей и удовлетворяющим ряду других условий. Чтобы его получить, требуется задействовать огромные вычислительные ресурсы, поэтому более производительные компьютеры имеют больше шансов сгенерировать выигрышный код по сравнению с менее производительными. Однако не следует забывать, что процедура хеширования основана на абсолютно случайном переборе кодов. А это значит, что хотя более производительные узлы будут генерировать выигрышные номера чаще, чем остальные, они тем не менее не могут выигрывать каждый раз. (Здесь можно привести аналогию: это все равно что купить больше лотерейных билетов перед розыгрышем. Никто не даст гарантии, что вы выиграете, но шансы растут с каждым добавочным билетом.)
     По сути дела, если вычислительный ресурс системы остается постоянным, то математические закономерности случайного подбора цифр таковы, что за продолжительный период времени отдельно взятый узел должен зарабатывать количество биткоинов, пропорциональное вычислительному ресурсу, задействованному им в системе. Проблема в том, что при работающем в системе количестве мощных вычислительных узлов и при том количестве биткоиновых блоков, которые выпускаются в качестве оплаты их усилий, пройдет очень много времени, прежде чем маломощный компьютер сможет генерировать выигрышный код и получить блок из 25 биткоиновых монет в награду. Именно поэтому все, кроме крупнейших майнеров, в наше время присоединяются к майнинговым пулам, которые распределяют совместно заработанные биткоины между всеми узлами-участниками пропорционально их вычислительному ресурсу. При этом менее мощные узлы, как правило, зарабатывают лишь доли биткоина каждый месяц.
     Эти математические расчеты поручаются майнерам по двум причинам. Во-первых, они формируют затраты на майнинг, поскольку требуемый для них вычислительный ресурс достаточно дорог: его себестоимость состоит из стоимости электроэнергии и амортизации техники. Это помогает регулировать процесс майнинга и устанавливать взаимосвязь между свободной эмиссией биткоинов и работой, необходимой для их получения. Во-вторых, это создает конкуренцию с выплатой победителю вознаграждения, которое стимулирует его выполнять работу, необходимую для подтверждения транзакции.
     После того как задача решена, биткоиновая программа, работающая на компьютере-победителе, «опечатывает» новый блок транзакций хешем и присваивает ему номер блока , который следует непосредственно за номером последнего на тот момент блока в постоянно растущей цепи блокчейна. (В тот самый момент, когда мы пишем эти слова, блокчейн обрабатывает блок № 318 685 – именно столько блоков было включено в блокчейн с тех пор, как Накамото добыл исходный блок[170]. Если это количество умножить на 10 минут и отложить на оси времени назад, то получится, что их добыча началась примерно в январе 2009 года.) Все они связаны между собой математической зависимостью. Поразительная чувствительность хешей к малейшим изменениям в исходных данных означает, что теоретически никто не может произвольно менять данные, записанные в более ранних блоках блокчейна. Такая попытка немедленно приведет к хаосу в системе. Это делает ее устойчивой к внешним воздействиям.
     После того как новый блок транзакций был создан и присоединен к блокчейну, остается завершить еще одно важное дело: другие майнеры должны подтвердить достоверность содержащихся в нем транзакций. Без такого подтверждения невозможно установить, какие операции реальны, а какие – нет. Таким образом, невозможно знать наверняка, не вставил ли какой-нибудь нечистоплотный майнер фальшивые транзакции в блок. Возможно, они касаются перечисления кому-нибудь биткоинов, которыми он не имел права распоряжаться, – иными словами, совершения мошеннической транзакции. Тогда система примет эту транзакцию как вполне легальную. Следовательно, другие майнеры должны еще подтвердить обстоятельство, которое известно под названием подтверждение работы выигравшего конкуренцию майнера. Они сопоставляют данные по закодированным в блоке транзакциям с хешированными данными из того же блока, чтобы проверить их достоверность на основе анализа всей цепочки операций в блокчейне. На первый взгляд эта задача кажется геркулесовой, но ее решением занимаются мощные компьютеры. А значит, этот процесс не столь трудоемкий, как генерирование одноразовых кодов, и может быть проделан относительно быстро и легко. Подтверждения других майнеров пересылаются в сеть и владельцам электронных кошельков. Кафе Coupa наконец-то может удостовериться в том, что платеж от Джеймса вполне правомочен. Не менее важна и удовлетворенность майнеров полученным подтверждением того, что последний блок в блокчейне легитимен. Ведь это значит, что они готовы продолжить работу и присоединить к блокчейну следующий блок – конечно, если окажутся победителями. С этого момента вся процедура повторяется с самого начала.
     Сделаем важное замечание: процедура формирования блоков и подтверждения их легитимности занимает не менее 10 минут, поэтому на такое же время откладывается окончательное завершение транзакции. Однако торговцы, пользующиеся услугами таких биткоиновых процессинговых фирм, как Bitpay, Coinbase или GoCoin, обычно получают переводы от покупателей немедленно. Как правило, во всех случаях, кроме платежей на очень большие суммы, процессинговая фирма берет на себя риск неподтверждения легитимности транзакции. Они идут на это потому, что факты неподтверждения, или двойная трата средств как их основная причина, случаются очень редко. На рынке предлагаются сложные методы анализа «больших данных»: например, пакет от стартапа BlockCypher, позволяющий торговцам и процессинговым фирмам в течение считаных секунд и практически со стопроцентной точностью оценить вероятность того, что данная транзакция будет подтверждена[171].
     Несмотря на эти ускоряющие процесс трюки, биткоиновый алгоритм устанавливает определенные правила, которые способствуют укреплению доверия к записям в книге учета и внедряют адекватные стимулы, поощряющие майнеров проводить только легитимные транзакции. Хотя после каждого успешного присоединения нового блока к блокчейну на счет майнера зачисляется порция монет, биткоиновый протокол не позволяет тратить эти деньги до тех пор, пока в блокчейн вслед за их блоком не будут включены еще 99 блоков. Это гарантирует, что с течением времени консенсус сети по поводу легитимности транзакций становится тверже скалы. Это также мотивирует всех остальных майнеров следить за тем, чтобы их коллеги поступали в соответствии с принципами этики.
     Время от времени два выигравших блока поступают в сеть практически одновременно, и тогда один из них со временем исключается из блокчейна, поскольку сеть выбирает тот, за которым выстроилась более длинная цепочка блоков. Биткоины, перечисленные автору исключенного блока, теряют свою стоимость. Любые транзакции, записанные в оказавшемся «лишним» блоке и отсутствующие в том блоке, который будет признан легитимным, поступают в повторную обработку и будут включены во вновь формирующиеся блоки. Способность исключать «лишние» блоки очень важна, поскольку благодаря ей вся сеть уверена в том, что непрерывная хронологическая последовательность блоков только по причине своей непрерывности обеспечивает достоверную по всеобщему признанию запись транзакций. Но это также означает, что некоторым транзакциям приходится дольше ожидать полного подтверждения и включения в блокчейн, чем другим.
      
     Любой может стать майнером и применять для майнинга любое компьютерное оборудование по своему выбору. Накамото знал, что чем больше майнеров включаются в охоту на биткоины, тем более солидными должны быть стимулы наращивать вычислительный ресурс и побеждать в конкурентной борьбе. Чтобы обеспечить равновесие системы, он запрограммировал в алгоритме биткоина расчет так называемого хешрейта всей сети – по сути, это общая вычислительная мощность сети в секунду – и автоматическую корректировку сложности решаемых математических задач так, чтобы выигрыш блоков становился то более трудным, то более легким делом. Таким образом, программа выплаты биткоинов в качестве вознаграждения поддерживает устоявшийся 10-минутный график формирования и подтверждения легитимности блока. Он сложился более или менее случайно, но, выбрав интервал и разработав для его поддержки программное обеспечение, можно добиться устойчивости графика выпуска новых монет на 130 лет вперед.
     В терминологии теории денег биткоиновое вознаграждение – это пошлина на право чеканки монет. Иными словами, прибыль эмитента валюты независимо от того, кто им является в конкретном случае – король, центробанк или выигравший конкуренцию майнер, – проистекает из привилегии эмитировать деньги. Отсюда следует вывод, что затраты на это несет все остальное сообщество, поскольку новые вливания денежной массы размывают рыночную стоимость и покупательную способность ранее выпущенных денег. Пошлина на право их выпуска неизбежна, ведь должен же быть у новых денег первый собственник! Вопрос в том, как установить ее справедливый размер. Некоторые разработчики криптовалют учреждают неприбыльные организации и наделяют их правом распределения монет в соответствии с определенными критериями – это касается, например, установленного круга благотворительных организаций. Но для этого требуется привлечь узнаваемого и пользующегося доверием учредителя. Но даже в этом случае можно ли считать такое распределение справедливым? Конечно, оно субъективно. Некоторые разработчики распределяют определенное количество монет среди людей, формально зарегистрировавших свою принадлежность к конкретной группе, например, в соответствии с Государственным реестром. Но это создает возможности для мошенничества, поскольку люди могут открывать на свое имя более одного электронного кошелька, пользуясь предоставляемой системой анонимностью и получая б о льшую долю, чем полагалось. Некоторые генерировали монеты и продавали их публике по частям, получая эмиссионный доход точно так же, как правительство{20}. Зачастую такая стратегия требует хитроумных маневров для поддержания доверия общества, периодической демонстрации «подтверждения сжиганием», когда владельцы биткоинов время от времени отправляют небольшую сумму на электронные кошельки, из которых их гарантированно невозможно потратить. Тогда монет становится меньше, и ценность каждой из них возрастает независимо от того, кому они принадлежат.
     Оставшийся неизвестным создатель биткоина разрешил проблему справедливости распределения, обратившись к принципу конкуренции на свободном рынке. Это и есть одна из целей безостановочной конкуренции хешей – процесса, который непосвященным кажется бесцельным. В какой-то степени это небольшой трюк. Майнеры решают математические задачи с единственной целью – выиграть гонку и получить биткоины в награду, а сопутствующий результат состоит в том, что они подтверждают транзакции и поддерживают блокчейн в актуальном состоянии. Исходя из этого биткоиновый протокол решает, кто достоин получить вознаграждение. Модель основана на идее, что в обмен на эту привилегию ее получатели инвестируют ресурсы – оборудование и электроэнергию, – а их компьютеры должны выполнить работу . В свою очередь, это создает основу внутренней стоимости биткоина.
     Чтобы удостовериться в том, что его система материального поощрения достаточно эффективна, Накамото разработал гораздо более строгую монетарную политику, чем даже ФРС. Ее ключевое условие состоит в том, что после каждых 210 тысяч биткоинов (примерно раз в четыре года) объем их выпуска сокращается наполовину. По состоянию на 2014 год в одном блоке было 25 биткоинов по сравнению с пятьюдесятью в 2012-м. В 2016 году их количество сократится до 12,5. Такой график означает, что основная часть выпуска биткоинов приходится на первые годы – более половины из общего объема в 21 миллион выпущено в первые шесть лет функционирования системы. С течением времени редкость биткоинов будет только возрастать, что теоретически должно поддержать курс биткоина, если спрос также будет расти.
     Новые биткоины – это не единственный способ компенсации усилий майнеров. Базовое программное обеспечение также содержит функцию взимания комиссионных за транзакции с отправителя. Сейчас небольшие обязательные комиссионные взимаются за проведение лишь нескольких видов транзакций. К ним относятся так называемые пылевые транзакции – переводы на очень маленькие суммы; комиссионные с них рассматриваются как средство против спама. Это необходимо для предотвращения сетевых атак со стороны нечистоплотных программистов, стремящихся обвалить сеть, рассылая огромное количество бессмысленных запросов или транзакций, а также транзакций, содержащих избыточный объем информации (таковыми считаются транзакции с объемом информации более 10 килобайт). Пользователи могут включать в сумму своей транзакции небольшие комиссионные, стремясь повысить вероятность того, что майнеры в первоочередном порядке обработают их и включат в блок, сократив тем самым время на ожидание окончательного подтверждения (не каждая операция получает подтверждение в течение 10 минут).
     По мере того как темп выпуска новых биткоинов снижается, алгоритм почти наверняка потребуется откорректировать, увеличив долю комиссионных за транзакции в общей сумме вознаграждения майнеров. Тогда вознаграждение не утратит стимулирующего значения (после того как выпуск новых биткоинов упадет до нуля к 2140 году, комиссионные за транзакции станут единственной формой вознаграждения). Основная группа разработчиков под управлением Гэвина Андресена из Bitcoin Foundation строит планы по созданию гибкой шкалы комиссионных в зависимости от времени ожидания подтверждения платежа, нормы которого будут устанавливаться рынком. Это напоминает нам о том, что биткоиновая платежная система хоть и намного более эффективная, чем традиционная централизованная с банками во главе, все же не бесплатная. И вознаграждение майнерам, и комиссионные за транзакции представляют собой перераспределение стоимости в пользу тех, кто обеспечивает функционирование системы. Тем не менее в глобальном масштабе эти затраты намного ниже, чем в любом участке традиционной системы.
     Майнеры получили огромный доход за счет роста курса биткоина в 2012–2013 годах и не так уж сильно пострадали в результате его существенного падения в 2014-м. В результате потенциальные прибыли продолжают привлекать людей и их компьютерные ресурсы в сферу майнинга. Невзирая на то что рост расходов, особенно на электроэнергию, делает получение прибыли более трудной задачей, в майнинге наблюдается совершенно поразительный рост компьютерной мощности. Кажется, нет недостатка в людях, полагающих, что биткоин, как любят говорить некоторые члены биткоинового сообщества, «взлетел до Луны», поэтому майнинг – это их пропуск в обеспеченную жизнь. Таким образом, майнинг сейчас находится на этапе «гонки вооружений», или «войны хешрейтов». Майнеры эксплуатируют все более производительные суперкомпьютеры, чтобы победить в решении биткоиновых математических задач.