Биткоины и другие криптовалюты ставят рекорд за рекордом на бирже, тысячи и тысячи компьютеров трудятся над майнингом, но все ли понимают, что такое блокчейн и как он работает? Для того чтобы разъяснить этот вопрос, а также рассказать об истории возникновения криптовалют и о других смежных вопросах, американский автор Майкл Кейси выпустил книгу «Эпоха криптовалют. Как биткоин и блокчейн меняют мировой экономический порядок», которую издательство «Манн, Иванов и Фербер» выпустило в русском переводе Эльвиры Кондуковой. Предлагаем вам ознакомиться с фрагментом из нее.
По мере роста состояния растет и любовь к деньгам.
Ювенал, 60–140 гг.
Как мы уже говорили, развитию криптовалюты на первом этапе ее существования сильно мешал вопрос: можно ли быть уверенным в том, что человек, отославший вам несколько биткоиновых монет, не отослал их еще кому-нибудь? Ведь в цифровой валюте невозможно проверить подлинность водяных знаков, магнитной ленты или микроволокон банкноты, как в случае с бумажными деньгами. Именно отсюда берет начало проблема «двойных трат», представляющая собой одну из самых серьезных уязвимостей цифровых денег. Сатоши Накамото разрешил ее, причем не путем усиления защиты виртуальных монет, а за счет настоящего прорыва в социальных технологиях, системе дебетов, кредитов и балансов, которые харталисты признают истинной сутью денег. Блокчейн — самый важный регистр, выполняющий роль центральной нервной системы биткоина, — стал фирменным изобретением Накамото. Хотя это технический компонент, он отражает важные аспекты психологии денег и социума — в частности, какими должны быть правила, побуждающие отдельных людей действовать в интересах сообщества.
Мы установили, что одно из ключевых преимуществ криптовалют состоит в их децентрализованном характере. Что это означает? В первую очередь то, что в их основе лежит доступный каждому совершенно открытый журнал. До настоящего времени денежные системы строились на централизованных закрытых регистрах, ведением которых в масштабах всей экономики занимались либо коммерческие, либо центральные банки. Это обеспечивало эффективность функционирования системы и защищенность ее участников, которым не оставалось ничего другого, как доверять данным о принадлежащих им средствах и их взаимной задолженности. Однако главная проблема централизованной денежной системы заключалась в том, что она предоставляла своему центральному органу слишком большие полномочия и обеспечивала слишком высокую прибыль от услуг по ведению централизованного журнала. Стояла задача найти компромиссное решение — создать достойную доверия децентрализованную систему, способную надежно хранить общественные вклады, не теряя при этом эффективности и не снижая уровень безопасности, которые обеспечивала централизованная система.
Чтобы добиться хотя бы некоторой децентрализации существующей системы, следует найти способ распределить совместную задачу ведения главного журнала среди членов сообщества или нескольких учреждений, объединенных в общую сеть, а также дать им стимул для выполнения этой работы. Кроме того, необходимо убедиться, что в процессе ведения совместного главного журнала никто из членов сообщества и ни одна организация не имеют возможности незаметно манипулировать записями и вносить какие-либо изменения. Наконец, следует внушить сообществу доверие к правилам, по которым они работают, или, по крайней мере, убедить людей в том, что система обеспечивает достаточно эффективную защиту от неприемлемого поведения.
Сразу предупреждаем: подробный рассказ о том, как устроена и действует эта система, может быть довольно сложен для понимания. Он основан на математических выкладках, которые незнакомы большинству людей. Один из способов разрешить эту проблему — смириться с тем, что вам и не нужно понимать, как работает криптовалютная денежная система. Мало кто из нас знает, как устроен двигатель внутреннего сгорания, но это не мешает нам ездить на автомобиле, доверяя ему свою жизнь и жизнь своего семейства. Вполне возможно, вы не расскажете во всех подробностях о механизме функционирования банковской системы США, но при этом держите свои деньги в банке. Однако при всем этом вполне понятно и даже похвально, что потенциальные пользователи новой, неотлаженной денежной системы хотят иметь представление о ее внутреннем устройстве. Именно это послужило главной причиной для того, чтобы мы написали данную книгу. Скорее всего, и вы решили прочесть ее именно поэтому. А значит, давайте попробуем разобраться. будем продвигаться вперед медленно и попытаемся изложить материал предельно просто. Вперед.
Во-первых, чтобы понять, как устроена модель, которую Сатоши Накамото положил в основу биткоина, мы позаимствуем идею, впервые сформулированную разработчиком программного обеспечения Евгением Брикманом. Она основана на истории, изложенной нами в главе 1, о том, как в XIX веке в микронезийской общине острова Яп камни фэй использовались для записи и контроля погашения долгов. Представьте, писал Брикман, что по мере расширения торговли и расчетных операций одному из япских племен все труднее и труднее было уследить за тем, кто кому должен и кому принадлежат камни фэй. Было просто невозможно установить, действительно ли платежеспособен человек, клянущийся в том, что у него достаточно каменных денег для погашения долга. По мере того как все чаще случались стычки и росла напряженность, старейшины назначили одного члена племени ответственным за сохранность объединенных записей о праве собственности на камни фэй и проведение операций с ними. Но регистратор начал брать плату за внесение записи о каждой операции, а их содержание поставил в зависимость от личного отношения к тому или иному члену племени. И он оказался не единственным, кто попробовал использовать эту систему ради собственной выгоды: старейшины очень скоро начали давить на него, требуя вносить в реестр недостоверную информацию.
Наконец группа обеспокоенных членов племени взяла дело в свои руки и отказалась от услуг регистратора и централизованной записи операций. Отныне каждая семья вела собственный журнал. Каждый раз, когда фэй переходил из рук в руки, человек, который совершал платеж, должен был выйти в центр деревни и объявить всем о том, что операция завершена, — по сути дела, это объявление подтверждало факт оплаты. Каждый должен был откорректировать свой журнал, записав сумму платежа в дебет счета плательщика и кредит счета получателя платежа. Если большинство семей признавало сделку законной, то остальные должны были подчиниться мнению большинства.
До недавнего времени казалось невозможным внедрить такую же децентрализованную систему расчетов в нашей достигшей невероятных масштабов глобальной экономике. Но интернет устранил бóльшую часть препятствий на пути к этому, создав сеть мгновенных коммуникаций всех со всеми. На следующем этапе следовало: во-первых, создать механизм обнародования результатов записей каждого отдельного регистратора и поддерживать целостность одного главного журнала, в котором каждый согласится контролировать точность записей; во-вторых, создать систему стимулов тратить ресурсы на ведение журнала для достаточного числа индивидуумов или организаций. Биткоин успешно справился с обеими задачами.
Мы уже говорили о том, что алгоритм майнинга биткоина построен так, чтобы генерировать одинаковое количество новых биткоинов в единицу времени на протяжении 130 лет, и о том, что именно они послужат наградой владельцам компьютеров, называемым майнерами, за их труд по верификации транзакций. Конечно, это не означает, что остальные пользователи не будут иметь доступа к биткоинам, которые делятся на маленькие части. Их по-прежнему можно будет пересылать друг другу, а их курс будет колебаться в зависимости от мировых рыночных цен на товары и услуги, которые можно на них купить. Но генерирование новых биткоинов гарантирует ведение, корректировку и сохранение главного журнала биткоиновой системы, то есть блокчейна. С течением времени, по мере замедления темпов генерирования новых биткоинов в системе стимулов все большее значение будут иметь скромные комиссионные, которые майнеры будут взимать со всех пользователей, проводящих транзакции.
Блокчейн биткоина представляет собой длинную цепочку блоков или групп транзакций, проводимых примерно в одно и то же время. Эта цепочка будет расти неограниченно долго — столько, сколько будет функционировать сама система. Такая хронологическая структура критически важна, поскольку гарантирует законность самых ранних транзакций. По идее, более поздние попытки пользователя перевести кому-нибудь эти биткоины повторно будут квалифицированы как незаконные. Создавая последовательность перечислений и получений биткоинов с зафиксированным временем каждой операции, доступную любому участнику биткоиновой экономики, система контролирует состояние счета каждого участника в любой момент, а также идентифицирует «прикрепленную» к каждому биткоину или его части информацию о том, когда он был создан, израсходован или получен. Если Джеймс пользуется электронным кошельком, установленным на его смартфоне, чтобы купить, например, чашку кофе в кафе Coupa в Пало-Альто, то сеть получит информацию о запросе на перечисление 0,008 биткоина из его собственного электронного кошелька в электронный кошелек кафе. В этот момент транзакция считается «приостановленной операцией», ожидающей подтверждения. но после того как майнеры завершат процедуры, необходимые для формирования нового блока транзакций, и включат его в блокчейн, транзакция Джеймса вместе с рядом других, совершенных в те же 10 минут, будет навсегда зафиксирована в главном журнале. Соответственно, его покупка кофе за биткоины признана аутентичной и необратимой операцией. По сути, для блокчейна неважно, что это была покупка именно кофе или что в ней участвовали именно Джеймс и кафе Coupa. Все, что нужно для отражения в нем операции, — это специальные пароли и идентификационные адреса, присвоенные электронным кошелькам Джеймса и кафе Coupa.
Теперь представим, что Джеймс — продвинутый программист и ему известно, как отменять инструкции, заложенные в клиентском программном обеспечении, установленном на его компьютере для доступа к биткоиновой сети. К тому же он плохо себя чувствует и не выспался, поэтому с помощью той же самой информации о своем электронном кошельке, которую он вводил, оплачивая кофе, он заказывает пилюли от простуды на сайте Overstock.com и пытается оплатить их биткоинами, которых у него больше нет. Тут блокчейн как хронологический журнал обнаруживает, что эти деньги уже потрачены. Проанализировав новую попытку Джеймса расплатиться и сопоставив ее с предыдущей историей записей, регистраторы заявят: «Нет, он уже потратил эти деньги раньше».
В процессе легализации каждая транзакция, добавляемая к постоянно пополняемому блокчейну, сравнивается со всеми предыдущими записями. Основываясь на консенсусе майнеров относительно того, какие транзакции легализованы, а какие — нет, главный журнал представляет неоспоримые доказательства наличия биткоинов у каждого пользователя, а также историю их поступлений и трат.
* * *
Для простоты мы сосредоточимся на механизме функционирования блокчейна как системы получения новых монет и подтверждения транзакций, хотя в мире криптовалют существует множество вариаций блокчейна.
Купленная Джеймсом чашка кофе представляет собой одну транзакцию. Системе приходится обрабатывать множество таких транзакций.
Как мы уже говорили, блокчейн находится под управлением базового программного протокола биткоина. Каждый пользователь биткоиновой сети, начиная с Накамото, так или иначе загружал набор программных инструкций, которые сообщают компьютеру или смартфону правила взаимодействия с другими компьютерами в сети. Блокчейн не может существовать на одном компьютере или сервере. Подобно ситуации с регистраторами с острова Яп, он существует в распределенном виде в сообществе владельцев компьютеров, или сетевых узлов. Эти узлы представляют собой устройства с установленными на них электронными кошельками, то есть специальными программами, предоставляющими пользователям и компаниям пароли, с помощью которых можно инициировать платежи, изменяя остаток на биткоиновых счетах в той ограниченной части блокчейна, к которой они приписаны. Узлы также включают персональные компьютеры — или, в современном понимании, специализированные майнинговые центры, — с помощью которых майнеры формируют блокчейн и получают за это вознаграждение в виде новых биткоинов. Работая совместно в заранее определенном порядке, эти сетевые узлы коллективно гарантируют, что содержание главного журнала легитимно и защищено от вмешательства разных мерзавцев.
Биткоин не может существовать без блокчейна. Фактически учет постоянно меняющихся приходов и расходов и представляет собой валюту. Биткоины не существуют сами по себе, и вы не можете влезть в какое-нибудь электронное устройство и взять себе несколько монет. Биткоины существуют постольку, поскольку придают ценность биткоин-адресу — уникальному мини-счету, через который пользователи (индивидуумы и компании) получают и отправляют валюту. Биткоины не существуют в форме документов или электронных файлов. Баланс, который вы видите, зайдя в свой электронный кошелек, представляет собой вашу чистую покупательную способность, рассчитанную на основе входящих и исходящих транзакций. Такая модель характерна для всего блокчейна и включает все дебетовые и кредитовые остатки и сальдо, ассоциированные с каждым уникальным биткоин-адресом. Это существенное различие означает, что не существует никакого отдельного файла биткоина или документа, который можно скопировать или потерять. Ваши права на владение биткоинами определяются балансом биткоин-счета, который главный журнал идентифицирует как принадлежащий вам. Вы можете утратить способность управлять этим счетом или передать его кому-нибудь другому — например, если потеряете пароль и не сможете войти в свой электронный кошелек, — но потерять свои биткоины в буквальном смысле вы не можете, поскольку они физически не существуют.
Еще одна критически важная черта постоянно удлиняющегося блокчейна подтвержденных транзакций — его общедоступность. Это отличает биткоин от закрытых электронных валютных систем (например, PayPal), в которых главный журнал строго конфиденциален. С помощью специального программного обеспечения — чаще всего бесплатной программы, разработанной и давшей ей свое имя компанией Blockchain из Лондона, — можно увидеть подробности любой когда-либо совершенной биткоиновой операции. Вы можете изменить (или потребовать изменить) те операции блокчейна, к которым имеете доступ через специальные пароли, но всегда и при любых обстоятельствах вы можете просмотреть любую операцию и любой биткоин-адрес.
Глядя на биткоин-адреса в блокчейне, мы не видим никаких деталей, позволяющих установить их собственников. Там присутствуют только последовательности букв и цифр, содержащие от 26 до 34 знаков. Каждый из этих адресов создавался во время совершения какой- либо транзакции в прошлом и представляет собой то, что криптографы называют открытым ключом. Будучи владельцем такого ключа, вы можете свободно сообщать его посторонним людям и предлагать переводить на него биткоины. однако только вы можете снимать с него деньги через электронный кошелек. Делается это так: нужно открыть приложение для смартфонов, привязанное к вашему электронному кошельку, и воспользоваться встроенным в него сканером Qr-кодов для введения электронного адреса продавца в строку «Кому» операционного окна. Затем следует ввести сумму, которую вы хотите перевести, и нажать кнопку «отправить». Тем самым вы даете программе поручение найти соответствующую сумму в биткоинах по любому из ваших ранее созданных адресов и отправить ее торговцу. Выполняя это задание, программа кошелька использует встроенный код, известный как закрытый (или личный) ключ. Каждый такой ключ привязан только к одному уникальному биткоин-адресу. Путем сложной математической комбинации открытого и закрытого ключей — или, говоря языком криптографов, подписания открытого ключа закрытым — передается информация, которая в данном случае включает инструкцию о переводе некоторого количества биткоинов с одного биткоин-адреса на другой.
Система шифрования с открытым ключом широко используется в интернете и финансовых приложениях, включая онлайн-банкинг и электронную почту. Она позволяет людям обмениваться определенными сведениями, не предоставляя посторонним доступа ко всей приватной информации, и напоминает систему интернет-доступа к вашему банковскому счету, когда строго секретный пароль комбинируется с несекретным именем пользователя. Важная особенность этой системы заключается в том, что при нынешнем уровне компьютерных технологий практически невозможно подобрать личный ключ путем обратных математических вычислений на основе открытого ключа. Но это не означает, что посторонние не могут похитить личный ключ, если получат доступ к вашему компьютеру или смартфону, на котором установлен электронный кошелек. Поэтому проблема обеспечения безопасности электронных кошельков и биткоиновых накоплений стоит очень остро и для физических лиц, и для компаний. Примером того, что может произойти, если не уделять достаточно внимания вопросам безопасности, служит судьба биткоиновой биржи Mt. Gox, по крайней мере, если верить версии ее топ-менеджеров о том, как они потеряли 650 тысяч биткоинов.
Возможность отследить всю цепочку транзакций помогает формировать доверие к денежной системе в обществе. Но эту особенность биткоиновой денежной системы уже ухитрились использовать правоохранительные органы, причем наиболее ярким примером таких действий стал арест биткоинов во время разгрома силами ФБР онлайновой биржи торговли наркотиками на сайте Silk road.
В отличие от транзакций по кредитным картам, которые привязаны к имени конкретного человека и известны обслуживающему банку и всем, кто имеет доступ к операциям на его счете, биткоин-адрес никак не связан с конкретным человеком. По этой причине биткоин привлек внимание людей, которые проводят деликатные операции и стремятся предотвратить утечку информации. Ведь если они обнародуют информацию о том, какие именно счета принадлежат им, то любой желающий сможет проследить совершаемые по ним транзакции. Поскольку в качестве ключей используются буквенно-цифровые идентификаторы, а не имена, органам правопорядка не так-то просто разобраться в этой системе. Однако возможность отслеживать транзакции позволяет выявлять связи, которые никогда не удалось бы обнаружить при расчете наличными деньгами.
Имея полномочия вызывать кого угодно в суд для допроса, следователи теоретически могут заставить любую организацию раскрыть информацию о владельце любого электронного кошелька. Поэтому некоторые считают, что биткоин — гораздо более полезная вещь для следователей, чем балаклава для преступников.
Это обстоятельство ставит перед нами важные вопросы. Между такими задачами, как защита персональных данных и открытие правительству доступа к информации, необходимой для защиты общества, всегда существует определенное противоречие. Главная проблема биткоина, как и интернета в целом, будет состоять в достижении баланса в реализации этих задач — конечно, если ему удастся стать мейнстримом. Очень важно, чтобы биткоин поддерживал и укреплял позитивные аспекты своей анонимности — будь то возможность для женщины-блогера в Афганистане получать оплату за свои публикации без помех со стороны родственников или в более широком смысле — право индивидуума стремиться к личному счастью, в чем бы он его ни усматривал, не подвергаясь опасности со стороны нечистоплотных людей.
* * *
Теперь вернемся к вопросу о том, как функционирует блокчейн. Кошелек Джеймса подписал его личный ключ и передал в сеть распоряжение о перечислении 0,008 биткоина на биткоин-адрес кафе Coupa, но пока эта транзакция числится в приостановленных. Впоследствии, если все пойдет по плану и Джеймса не заподозрят в совершении «двойных трат», эта транзакция будет подтверждена и включена в блокчейн. После этого отменить или пересмотреть ее станет невозможно. Здесь не существует процедуры оспаривания сделки, которую обеспечивают некоторые банки, если владелец кредитной карты отказывается от оплаты. Ни одна из сторон сделки не может принудительно ее расторгнуть, а единственная возможность сделать это по взаимному согласию — провести вторую операцию, обратную первой. Именно поэтому система недопущения «двойных трат» так важна в денежной системе биткоина, и это приводит нас к группе трудолюбивых людей, называющих себя майнерами.
С нашей точки зрения, термин «майнинг» выбран неудачно. По большей части эта работа напоминает ведение бухгалтерских книг.
Работа — еще один ключевой термин, присущий сленгу биткоиновых майнеров. В данном случае он означает, что внутренняя стоимость биткоина зависит только от работы, и при этом весьма тяжелой. По сути, основное отличие этой работы заключается в высокой сложности вычислений. Чем сложнее вычисления, тем больше ресурсов требуется для их выполнения, и в первую очередь электроэнергии. Некоторые специалисты по криптоэкономике доказывают, что именно эта работа придает биткоину реальную внутреннюю стоимость. Не менее важно и то, что объем выполненной работы — вычислительный эквивалент человеко-часов — легитимизирует главный журнал, поскольку представляет собой значимую коллективную инвестицию в поддержание его целостности.
Именно так «работают» майнеры.
Когда Джеймс поручил своему электронному кошельку переслать биткоины на биткоин-адрес кафе Coupa, тот передал информацию об отложенной операции в сеть вместе с ценными сведениями: обе стороны сделки сопоставили свои биткоин-адреса, дату и время транзакции и другие детали, например уникальный ключ транзакции и что угодно еще — хоть привет, — что может прикрепить отправитель.
Теперь поговорим о майнерах. Каждый занятый в майнинге сетевой узел, или компьютер, собирает эту информацию и включает ее в зашифрованную буквенно-цифровую последовательность знаков, называемую хешем. Подобно тому, как архивируются файлы документов, процесс хеширования позволяет «свернуть» относительно большие массивы информации, преобразовав их в гораздо меньший объем данных. Хеш — неотъемлемая часть процедуры шифрования и хранения массива данных в компьютерном мире. Возможно, вы уже сталкивались с ним, не зная, с чем имеете дело. в зависимости от того, какой алгоритм хеширования задействован, его результатом будет хеш фиксированной длины. В случае с биткоином используется алгоритм под названием SHA-256, обеспечивающий получение хеша длиной в 64 знака, состоящий из последовательности букв (от a до z) и цифр (от 0 до 9). Чтобы посмотреть, как выглядят такие хеши, зайдите на один из множества сайтов, содержащих хеш-генераторы, и напишите что-нибудь в текстовом поле. Мы ввели в такое поле текст: The only thing we have to fear is fear itself («единственное, чего мы должны бояться, — так это самого страха») — и получили следующий хеш:
f72680b97551fc5eda1b3a33dda55796ba9619b371fdd03f66409f2c49 58c2cb
а вот так выглядит хеш, полученный в результате введения в то же текстовое поле всех 168 слов предыдущего абзаца этой главы:
e52a16c11d5c45b768b1bc87f0c1494799e92c019101562bfb 435950b36de17b
Независимо от того, будет ли это одна отдельно взятая буква или полный текст романа «Война и мир», хеш все равно состоит из 64 знаков. Но при малейшем изменении в исходной информации — одной десятичной точке в числе или, например, пробеле — весь хеш полностью изменится. Эта способность упаковывать большой объем информации в массивы данных одинаковой структуры, но каждый раз совершенно разного вида, делает хеширование очень мощным инструментом шифрования. Большой объем информации можно представить в сжатом виде и зашифровать. Такой хеш практически невозможно расшифровать и узнать, какую именно информацию он содержит; однако если ваш компьютер имеет доступ к источнику данных, из которых был сформирован этот хеш, то не так уж сложно проверить правильность заключенной в нем информации.
Алгоритм хеширования позволяет построить своего рода иерархию хешей, что весьма полезно, поскольку создается структура, в которой майнеры могут группировать одновременно выполняемые транзакции. Это происходит следующим образом. Программное обеспечение на компьютере майнера объединяет хеш первой транзакции — вместе со всей содержащейся в нем информацией — с необработанной информацией следующей не хешированной транзакции, чтобы создать новый хеш. Теперь информация об обеих транзакциях полностью хеширована. Эта процедура повторяется со следующей по очереди транзакцией, которую принимает в обработку компьютер майнера. Хеш, созданный на основе информации о двух транзакциях, объединяется с информацией о третьей транзакции, и создается еще один, третий, хеш. Эта процедура повторяется каждый раз по мере поступления в обработку все новых транзакций. Информацию, содержащуюся в этом объединенном хеше, впоследствии легко проверить, пройдя назад по неразрывной цепочке хешей. Именно таким образом транзакции объединяются в строительные блоки для блокчейна, которые соответственно называются блоками.
Пока происходят эти события, компьютеры майнеров принимают участие в своеобразном соревновании, или в лотерее за право быть первым, кто «упакует» очередной блок, то есть подготовит его к включению в главный журнал блокчейна и получит за это приз — блок вновь выпущенных биткоинов. Пока этого не произойдет, сеть не сможет подтвердить достоверность последней серии транзакций. Каждый майнер в отдельности постоянно кодирует и декодирует содержащуюся в хешах информацию описанным выше способом, но ее содержимое пока еще не готово к проверке сетью. По-прежнему нет единого мнения о ее достоверности. Оплата Джеймсом кофе из кафе Coupa все еще не подтверждена. Таким образом, решение математических задач представляет собой составляющую часть важнейшей процедуры подтверждения достоверности транзакций.
Компьютеры вступают в соревнование, одновременно и быстро предлагая хеши для кодирования и объединения максимального объема данных в новый, полностью укомплектованный блок с последующим присоединением к блокчейну вслед за предыдущим блоком. Победителем в этом состязании станет тот хеш-блок, который окажется обладателем специального номера, признанного базовым алгоритмом биткоина выигрышным. Получить этот номер очень сложно, поэтому компьютеры продолжают создавать блоки из хешей до тех пор, пока не сгенерируют выигрышный номер, — снова, и снова, и снова. Каждый из генерируемых компьютером новых хеш-блоков создается путем добавления уникального, сгенерированного случайным образом номера (который называется одноразовым кодом) к остальным содержащимся в нем данным. Как уже упоминалось, к ним относятся хешированные данные о последней транзакции, а также предыдущий хеш-блок. Добавляя новый одноразовый код, мы полностью меняем конечный хеш-блок. Стоит отметить, что термин одноразовый код позаимствован у Льюиса Кэрролла, который употребил слово frabjous (замечательный) и охарактеризовал его как «одноразовое слово», применимое только к одному случаю и вряд ли пригодное для дальнейшего употребления. Такова судьба миллиардов «одноразовых кодов», сгенерированных и отброшенных в процессе поиска выигрышного кода мощными компьютерными узлами, задействованными в майнинге. Это напоминает охоту на виртуальный пароль в джунглях виртуальных цифр.
В итоге эта тяжелая работа методом проб и ошибок приводит к тому, что один из узлов отправляет в сеть хеш-блок с кодом, соответствующим требованиям биткоинового алгоритма, — кодом, включающим необходимое количество нулей и удовлетворяющим ряду других условий. Чтобы его получить, требуется задействовать огромные вычислительные ресурсы, поэтому более производительные компьютеры имеют больше шансов сгенерировать выигрышный код по сравнению с менее производительными. Однако не следует забывать, что процедура хеширования основана на абсолютно случайном переборе кодов. А это значит, что хотя более производительные узлы будут генерировать выигрышные номера чаще, чем остальные, они тем не менее не могут выигрывать каждый раз. (Здесь можно привести аналогию: это все равно что купить больше лотерейных билетов перед розыгрышем. Никто не даст гарантии, что вы выиграете, но шансы растут с каждым добавочным билетом.)
По сути дела, если вычислительный ресурс системы остается постоянным, то математические закономерности случайного подбора цифр таковы, что за продолжительный период времени отдельно взятый узел должен зарабатывать количество биткоинов, пропорциональное вычислительному ресурсу, задействованному им в системе. Проблема в том, что при работающем в системе количестве мощных вычислительных узлов и при том количестве биткоиновых блоков, которые выпускаются в качестве оплаты их усилий, пройдет очень много времени, прежде чем маломощный компьютер сможет генерировать выигрышный код и получить блок из 25 биткоиновых монет в награду. Именно поэтому все, кроме крупнейших майнеров, в наше время присоединяются к майнинговым пулам, которые распределяют совместно заработанные биткоины между всеми узлами-участниками пропорционально их вычислительному ресурсу. При этом менее мощные узлы, как правило, зарабатывают лишь доли биткоина каждый месяц.
Эти математические расчеты поручаются майнерам по двум причинам. Во-первых, они формируют затраты на майнинг, поскольку требуемый для них вычислительный ресурс достаточно дорог: его себестоимость состоит из стоимости электроэнергии и амортизации техники. Это помогает регулировать процесс майнинга и устанавливать взаимосвязь между свободной эмиссией биткоинов и работой, необходимой для их получения. Во-вторых, это создает конкуренцию с выплатой победителю вознаграждения, которое стимулирует его выполнять работу, необходимую для подтверждения транзакции.
После того как задача решена, биткоиновая программа, работающая на компьютере-победителе, «опечатывает» новый блок транзакций хешем и присваивает ему номер блока, который следует непосредственно за номером последнего на тот момент блока в постоянно растущей цепи блокчейна. (В тот самый момент, когда мы пишем эти слова, блокчейн обрабатывает блок № 318 685 — именно столько блоков было включено в блокчейн с тех пор, как Накамото добыл исходный блок. Если это количество умножить на 10 минут и отложить на оси времени назад, то получится, что их добыча началась примерно в январе 2009 года.) Все они связаны между собой математической зависимостью. Поразительная чувствительность хешей к малейшим изменениям в исходных данных означает, что теоретически никто не может произвольно менять данные, записанные в более ранних блоках блокчейна. Такая попытка немедленно приведет к хаосу в системе. Это делает ее устойчивой к внешним воздействиям.
После того как новый блок транзакций был создан и присоединен к блокчейну, остается завершить еще одно важное дело: другие майнеры должны подтвердить достоверность содержащихся в нем транзакций. Без такого подтверждения невозможно установить, какие операции реальны, а какие — нет. Таким образом, невозможно знать наверняка, не вставил ли какой-нибудь нечистоплотный майнер фальшивые транзакции в блок. Возможно, они касаются перечисления кому-нибудь биткоинов, которыми он не имел права распоряжаться, — иными словами, совершения мошеннической транзакции. Тогда система примет эту транзакцию как вполне легальную. Следовательно, другие майнеры должны еще подтвердить обстоятельство, которое известно под названием подтверждение работы выигравшего конкуренцию майнера. Они сопоставляют данные по закодированным в блоке транзакциям с хешированными данными из того же блока, чтобы проверить их достоверность на основе анализа всей цепочки операций в блокчейне. На первый взгляд эта задача кажется геркулесовой, но ее решением занимаются мощные компьютеры. А значит, этот процесс не столь трудоемкий, как генерирование одноразовых кодов, и может быть проделан относительно быстро и легко. Подтверждения других майнеров пересылаются в сеть и владельцам электронных кошельков. Кафе Coupa наконец-то может удостовериться в том, что платеж от Джеймса вполне правомочен. не менее важна и удовлетворенность майнеров полученным подтверждением того, что последний блок в блокчейне легитимен. Ведь это значит, что они готовы продолжить работу и присоединить к блокчейну следующий блок — конечно, если окажутся победителями. С этого момента вся процедура повторяется с самого начала.
Полностью читайте:
Винья, Пол. Эпоха криптовалют. Как биткоин и блокчейн меняют мировой экономический порядок / Пол Винья, Майкл Кейси; пер. с англ. Э. Кондуковой; [науч. ред. а. Форк]. — М.: Манн, Иванов и Фербер, 2017. — 432 с.