Книги

Эпоха криптовалют. Как биткоин и блокчейн меняют мировой экономический порядок

22
18
20
22
24
26
28
30

А вот так выглядит хеш, полученный в результате введения в то же текстовое поле всех 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 строит планы по созданию гибкой шкалы комиссионных в зависимости от времени ожидания подтверждения платежа, нормы которого будут устанавливаться рынком. Это напоминает нам о том, что биткоиновая платежная система хоть и намного более эффективная, чем традиционная централизованная с банками во главе, все же не бесплатная. И вознаграждение майнерам, и комиссионные за транзакции представляют собой перераспределение стоимости в пользу тех, кто обеспечивает функционирование системы. Тем не менее в глобальном масштабе эти затраты намного ниже, чем в любом участке традиционной системы.