Блокчейн: Как это работает и что ждет нас завтра

Text
7
Reviews
Read preview
Mark as finished
How to read the book after purchase
Don't have time to read books?
Listen to sample
Блокчейн: Как это работает и что ждет нас завтра
Блокчейн: Как это работает и что ждет нас завтра
− 20%
Get 20% off on e-books and audio books
Buy the set for $ 12,81 $ 10,25
Блокчейн: Как это работает и что ждет нас завтра
Audio
Блокчейн: Как это работает и что ждет нас завтра
Audiobook
Is reading Александр Филиппов, Артем Казюханов
$ 6,99
Details
Font:Smaller АаLarger Aa

Техника в основе блокчейна

Биткоин-блокчейн стал примером использования в системе платежей распределенного публичного реестра (Distributed Public Ledger, DPL){108}, включающего:

• формирование журнала из блоков транзакций и организацию связи между ними за счет включения в блок хеша предыдущего блока;

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

• защиту цепочки блоков от модификации путем доказательства работы (Proof-of-Work) на основе технологии поиска хеша;

• использование переменной сложности при поиске хеша для поддержания заданной частоты создания блоков{109}.

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

Участниками такой системы являются:

• пользователи – владельцы электронных кошельков, которые могут хранить криптовалюту и переводить ее в системе другим пользователям;

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

• серверы – участники, осуществляющие распределенное хранение общей книги блокчейна и выполняющие операции по проверке присылаемых блоков на соответствие правилам по сложности и допустимости{110}.

По другой классификации, в системе блокчейна фигурируют два типа участников: обычные пользователи и майнеры{111}. Первые создают записи. Вторые собирают записи, распространенные обычными пользователями, проверяют их и группируют в блоки, после чего формируют заголовок будущего блока и рассчитывают ключ блока. Найдя подходящий ключ, майнер сохраняет блок и отправляет его другим участникам сети. Обычные пользователи получают блоки и сохраняют их у себя, чтобы корректно создавать свои и достоверно проверять чужие записи.

До момента внесения записи в блок она считается недействительной. Пользователь сети блокчейн может совершать с ней действия, не имея, однако, уверенности в достоверности полученной и передаваемой информации. Гарантию достоверности предоставляет майнер, когда включает данную информацию в блок. Как только запись окажется сохранена в блоке и проверена, ее отмена уже будет невозможна{112}.

Чтобы убедиться в достоверности транзакции, майнеры автоматически прогоняют ее содержание через криптоалгоритм, тем самым верифицируя корректность цифровой подписи отправителя каждой транзакции, а также подтверждая соответствие последней транзакции условиям, заложенным в алгоритме консенсуса каждого конкретного блокчейна. Затем все накопившиеся транзакции упаковываются в блок{113}.

Функция самого блокчейна проста: регистрировать каждую транзакцию с биткоинами. Любая передача какого-то количества биткоинов подтверждается в сети (с помощью майнинга) внесением транзакционного блока. Блок добавляется к длинной цепочке, которая позволяет любому желающему отследить в сети смену собственников каждого из биткоинов от момента создания.

Технически это достигается при помощи последовательного шифрования данных о каждой очередной транзакции. Любой заносимой в блок сделке присваивается криптографический идентификатор (хеш), который добавляется в заголовок записи о следующей транзакции, и это повторяется снова и снова, так что хеш транзакции на вершине цепочки содержит зашифрованные данные обо всех предыдущих операциях, записанных в блоке. Вмешаться и изменить уже записанную транзакцию нельзя, так как это скомпрометирует всю цепочку[6].

Сам факт, что блоки корректно встраиваются в цепь, свидетельствует о том, что сделка прошла надлежащим образом. Так что блок представляет собой одновременно и подтверждение транзакции (с электронной подписью и отметкой о времени совершения), и часть общей (в масштабах всей сети) истории транзакций{114}.

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

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

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

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

Майнеры и майнинг

Как было показано ранее, алгоритм формирования блокчейна включает создание нового блока цепи (новой записи), который содержит защищенную криптографией информацию из предыдущего блока (хеш), то есть каждая запись создается с учетом предыдущей. Новые блоки транзакций должны быть подтверждены путем подбора хеша определенной сложности. Для подтверждения используется алгоритм на основе доказательства выполненной работы (PoW). Что это означает на практике?

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

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

 

Как поясняют В. Кузнецов и А. Якубов, «основа работы Bitcoin – это расчет хеш-функции майнерами, которые таким образом демонстрируют остальным пользователям, что они затратили достаточно много вычислительных мощностей на обработку текущих транзакций. Другими словами, обработка поддельных транзакций была бы им просто невыгодна (так называемая концепция Proof-of-Work). Время обработки блока транзакций всегда приблизительно одно и то же, но если поставить специальное оборудование, предназначенное для расчета конкретной хеш-функции, используемой в Bitcoin, то доля майнеров, использующих это оборудование, будет быстро расти»{116}.

Поскольку добыча криптоденег становится все более трудным занятием, индивидуальным майнерам приходится объединять вычислительные мощности, образуя крупные конгломераты{117}.

Некоторые новые протоколы, такие как Ripple, полагаются на консенсусный процесс, не требующий ни наличия майнеров, ни доказательства работы, и могут обеспечить одобрение изменений блокчейна в течение считаных секунд{118}.

Децентрализованный консенсус

Как указывает Э. Пишини, в блокчейн-сообществе каждый ведет собственную копию записей и все участники должны утверждать любые обновления коллективно. Информация может относиться к операциям, договорам, активам, персональным данным – практически ко всему, что передается в цифровой форме. Записи являются постоянными, прозрачными и доступными для просмотра истории операций. Каждое обновление становится новым блоком, добавляемым в конец цепочки. Протокол устанавливает правила того, как вносятся, утверждаются и регистрируются новые записи. В этой технологии криптография заменяет сторонних посредников, выступающих в качестве доверенных лиц, – все участники блокчейна проходят сложные алгоритмы, чтобы подтвердить целостность системы{119}.

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

Система децентрализованного консенсуса распределяет полномочия вести запись операций между машинами участников сети, позволяя сидящим за ними людям полностью доверять друг другу – ведь обман невозможен технически»{120}.

Еще нагляднее

Уже появилось достаточно много популярной литературы, объясняющей, как работает биткоин-блокчейн. Чтобы убедиться, что в головах у наших читателей от множества технических терминов и различных описаний не возникло сумбура и сложилась ясная картина, воспользуемся примером от Deloitte.

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

Боб получает открытый ключ Алисы, сканируя QR-код своим телефоном или получая от нее ее адрес электронной почты, строку случайных чисел и букв (любой, у кого есть открытый ключ, может послать деньги на соответствующий адрес биткоина, но только подпись, подтвержденная частным ключом, позволит отправить деньги с биткоин-кошелька).

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

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

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

В течение десяти минут с момента, когда Боб начал сделку, он и Алиса получают первое подтверждение, что биткоин был передан.

Новый блок помещается в сеть, чтобы майнеры могли подтвердить законность транзакции. Выполненная проверка завершает комплекс криптографических вычислений. Когда майнер решает криптографические задачи, объявляется перерыв в сети. Алгоритм награждает победившего майнера 25 биткоинами, и к концу цепочки добавляется новый блок. Каждый блок присоединяется к предыдущему.

Все сделки в блоке теперь выполнены, и Алиса получает деньги{121}.

Читателям, более искушенным в технических вопросах, мы предлагаем обратиться к работе{122}, из которой мы взяли следующее описание происходящего (мы приводим его далее в сокращенном виде).

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

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

Механизм обработки транзакций функционирует следующим образом.

1. Новые транзакции рассылаются всем серверам децентрализованной сети.

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

3. Каждый сервер пытается рассчитать хеш полученного блока, который бы удовлетворял текущей сложности сети.

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

Есть ли способ обойти этот механизм? Представим, что Боб передумал платить Алисе и пытается переписать историю так, чтобы биткоины остались в его кошельке. Если бы он был майнером, то мог бы решить задачу и сгенерировать новую версию блокчейна. Но, пока бы он это делал, остальные участники сети успели бы продлить подлинную цепочку. Узлы сети работают над самой длинной известной им цепочкой. Это правило разрешает ситуации, когда два майнера находят разные решения задачи почти одновременно, что служит причиной временного раздвоения (форка) цепочки. Правило самой длинной цепочки призвано препятствовать злоумышленникам. Чтобы заставить сеть принять измененный им блок, Боб должен продлевать свою версию блокчейна быстрее, чем вся остальная сеть продлевает свою. Средний интервал формирования блока в биткоине – 10 минут. За это время на всех узлах, или компьютерах майнеров, обновляется база данных{123}. Считается, что без контроля над более чем половиной вычислительной мощности сети («атака на 51 %») такое невозможно{124}.

4. После нахождения необходимого хеша блок рассылается всем серверам сети. Если сервер по каким-либо причинам пропустит блоки и получит следующие, то пропущенные будут запрошены из сети автоматически.

5. Серверы согласовывают запись блока в цепочку только при условии корректности выполнения всех транзакций в нем. После получения согласия блок сохраняется в блокчейн.

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

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

Эмиссия криптовалюты производится по следующему алгоритму.

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

2. Блок рассылается всем серверам сети.

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

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

2.3. Классификация: какими бывают блокчейны

Если бы человек был бессмертен, вы себе представляете, сколько составили бы его счета за продукты?

Вуди Аллен


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

 
Джек Уэзерфорд, профессор, этнограф, антрополог, США

Будучи выходцами из научной среды, оба автора часто принимали участие в заседаниях диссертационных советов, где защищаются соискатели ученых степеней кандидатов и докторов экономических наук, – и невольно замечали, что некоторые диссертации (особенно кандидатские) пытаются достичь научной новизны за счет, так сказать, «революции переименований». Речь идет о том, чтобы, дав привычным понятиям звучные, яркие и ранее не применявшиеся имена, считать это вкладом в науку.

Разумеется, те, кто делает так, заблуждаются. И наша книга – все-таки не академический трактат. В том, что касается определений, нам представляется действительно важной для раскрытия сути блокчейна и для практической деятельности лишь дискуссия по поводу того, что считать публичным, что частным и что гибридным блокчейном. Ей уделено достаточно внимания в следующем разделе. А здесь мы решили привести несколько оригинальных подходов к классификации блокчейнов в целом, и читатель волен принять или отвергнуть любой из них полностью или частично. Для начала просим ознакомиться с рис. 4.

Как видим, в схеме В. Лопатина (которого мы искренне считаем одним из лучших экспертов в области блокчейн-технологии в России) множество параметров и уровней классификации блокчейнов и элементов инфраструктуры.

Несколько проще поступили специалисты Consumers' Research, разделив блокчейн-системы на три группы. В первую они включили цифровые валюты, второе направление позволяет работать со смарт-контрактами, децентрализованными организациями и программируемыми активами, а третье сосредоточено на использовании блокчейна в неэкономических целях, например в рамках электронного правительства или для организации и проведения выборов{125}.

Британская консалтинговая группа Consult Hyperion, директором по инновациям в которой является добрый знакомый одного из авторов Дэйв Берч, известный специалист в области электронных денег и транзакций, предлагает свою трехфакторную классификацию (табл. 5).

Отечественные специалисты, также рассматривающие технологию по типу управления и ряду сопутствующих факторов, дают классификацию, которая содержит три элемента: открытый, закрытый и комбинированный блокчейн (табл. 6).


Мелани Свон выделяет три уровня в развитии блокчейн-технологии.

• Блокчейн 1.0 – создание и развитие криптовалют, блочной цепи, в алгоритм которой вписан экономический смысл и защита от посягательств третьих лиц с помощью криптографии.

• Блокчейн 2.0 – контракты, или классы экономических, рыночных и финансовых приложений, работающих с различными типами финансовых инструментов.

• Блокчейн 3.0 – приложения, область применения которых выходит за рамки денежных расчетов, финансов и рынков. Распространяются на сферы государственного управления, здравоохранения, науки, образования, культуры и искусства{126}.




Крайне интересное описание различных исторически сформированных видов блокчейна приведено в публично доступной презентации Д. Ермолаева{127}.

Блокчейн-среды 1.0 – это биткоин-подобные среды первого поколения, в которых средний размер записи довольно большой, около 800 байт. Протокол записей – жесткий. Учет ограниченный – всего одна единица в среде, то есть множественность видов учета нулевая. Яркие представители блокчейн-сред 1.0 – биткоин, Novacoin, EmerCoin. За пользование средой – то есть за внесение записей в блокчейн – взимается комиссия.

Также есть расширенные поверх протокола блокчейна версии с учетом многих единиц (цветные монеты, окрашенные токены), но у всех размер записи довольно большой. Есть разновидность технологии с разбивкой на разные цепочки – мультичейн. Она помогает решить вопрос снижения затрат на хранение данных отдельными узлами среды{128}.

Блокчейн-среды 2.0 – это NXT, NEM и другие среды с жестким протоколом, предназначенные для продажи активов. Размер записи здесь небольшой. Возможен учет разных единиц (активов, акций, товаров), то есть множественность хорошая. Но ориентированность этих сред на продажу, обменные операции и анонимность не позволяет их эффективно использовать для решения задач госучета.

Ethereum (блокчейн 2.0 с мягким протоколом). Очень большой плюс этого вида сред – мягкий (программируемый) протокол, когда в запись добавляются целые программы, так называемые смарт-контракты («умные» контракты). Такие среды очень удобны для разработчиков: можно на лету создать новый вид протокола или записи, не конфликтуя при этом с основной блокчейн-средой.

Но есть и минусы:

• большой размер записи с контрактами – в ней хранятся целые программы;

• медлительность – каждый раз для получения какого-либо результата смарт-контракт должен полностью просчитаться;

• велик размер самой базы данных, поскольку она хранит данные о текущем состоянии счетов всех участников и другую необходимую для работы программ информацию{129}.

Блокчейн-среды 3.0 (развитие из блокчейн 2.0) отличаются небольшими размерами записей, жестким протоколом с возможностью обновляться по решению администраторов. Основное отличие от блокчейна 2.0 – введение нескольких базовых единиц учета, отвечающих за разные аспекты работы среды. Главная единица – правовая – дает начальные права управления средой и право создавать блоки, а также определяет уровень прав участников. Вторая единица – поощряющая, ею оплачиваются комиссии за внесение записей и поддержку среды. Такое разграничение ролей позволяет создать гибкую и мощную систему прав и независимую от нее систему платы за услуги пользования средой и поощрения участников, поддерживающих среду{130}.

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

Для использования в реальных условиях важны:

• протокол среды (или правила создания и передачи записей);

• средний размер записи или блока;

• число учетных единиц, которые можно создавать на уровне протокола (у блокчейна 1.0 всего одна учетная единица);

• скорость проведения транзакций или обсчета записей;

• возможность на уровне протокола задавать права участников среды;

• кому принадлежит право создания начального звена цепочки – genesis block;

• кто на самом деле управляет средой – майнеры, частные компании или кто-то еще{131}.

Посмотрите табл. 7, подводящую итог этой классификации.


108Лопатин В. Блокчейн как источник инноваций: настоящее и будущее // Тезисы доклада. – 7-й Международный ПЛАС-форум. – М., 7–8 июня 2016.
109Исследование уровня сложности в основанных на блокчейне консенсусных системах дано в работе: Kraft D. Difficulty control for blockchain-based consensus systems // Peer-to-Peer Netw. Appl. 2016. – № 9. – P. 397–413.
110Вотинов М. В., Мартьянова И. В., Шокин Г. О. Цит. соч.
  Носов Н. Перспективы блокчейн в России // https://www.pcweek.ru/idea/article/detail.php?ID=182389 // 2016. – 8 февраля.
112Воронцова Е. А., Мелешенко Е. Г. Блокчейн: панацея или угроза для хранения и передачи информации // Синергия Наук. – 2016. – № 5.
113Стародубцев Д. Цит. соч.
6Приведем пример хеш-функции. Представим слово «кит» в виде числа. Каждой букве дадим порядковый номер (а = 1… я = 33), получится: 12, 10, 20. Перемножив все числа, получаем свертку (хеш) слова «кит»: 2400. После передачи основного сообщения этот хеш необходимо передать получателю информации как подтверждение, что все сходится. Если сообщение в процессе передачи изменилось и стало звучать как «кот», то свертка изменится и примет вид: 12 × 16 × 20 = 3840, но тогда получатель, зная изначальный хеш, догадается о фальсификации данных (Носов Н. Перспективы блокчейн…).
114Mod. Ch. Цит. соч.
115Mod. Ch. Цит. соч.
116Кузнецов В. А., Якубов А. В. О подходах в международном регулировании криптовалют (bitcoin) в отдельных иностранных юрисдикциях // Деньги и кредит. – 2016. – № 3.
117Боев И. Цит. соч.
118Дюдикова Е. И. Цит. соч.
119Piscini E., Guastella T., Rozman A., Nassim T. Ibid.
120Боев И. Цит. соч.
121Blockchain. Enigma, Paradox…
122Вотинов М. В., Мартьянова И. В., Шокин Г. О. Цит. соч.
123Стародубцев Д. Цит. соч.
124The great chain…
  Евтушенко А., Поляков Е. По цепочке до России // https://www.gazeta.ru/tech/2016/02/01/8038769/blockchain.shtml // 2016. – 1 февраля.
126Свон М. Цит. соч. – С. 19.
  http://datachains.world.   Datachains.world. «Государственный блокчейн» для бизнеса и жизни // Презентация во ФРИИ 30 мая 2016 года. // https://docs.google.com/document/d/16sGqvTTWLDjYbrdq1d-hDqged-2hAEVYBTMCLHw9g5A/edit?pref=2&pli=1#heading=h.samwyd7hs4rd.
129Там же.
130Вотинов М. В., Мартьянова И. В., Шокин Г. О. Цит. соч.
131DATACHAINS.world. Цит. соч.