Блокчейн - это очередная волна перемен, которая уже начала менять структуру деловых, социальных и политических связей, а также способы перемещения средств. С другой стороны, блокчейн — это не просто перемены, а некая сущность, которая никогда не стоит на месте. На момент подготовки этой книги более 40 ведущих финансовых учреждений и множество фирм в различных отраслях начали осваивать блокчейн — чтобы снизить транзакционные издержки, ускорить прохождение транзакций, снизить риск мошенничества и устранить посредников. Некоторые фирмы пытаются с его помощью перестроить устаревшие системы и сервисы, чтобы вывести их на следующий уровень, а также предложить новые виды услуг.
Мы будем детально исследовать блокчейн на протяжении всей серии статей в моем блоге. Если вы новичок, то можете последовательно изучать статью за статьей или выбрать только те блоги, которые вам нужнее. Эта статья расскажет о том, что такое блокчейн, как он развивался, где применяется и почему так важен в современном мире. Вы получите из нее общее представление о блокчейне, которое поможет вам глубже погрузиться в его изучение.
Происхождение блокчейна
Одним из первых переломных моментов цифровой истории стало появление в 1970-х годах протокола TCP/IP, на котором основан современный Интернет. До появления TCP/IP мы жили в эпоху коммутируемых каналов, которые нуждались в прямом физическом соединении между двумя устройствами.
Когда в начале 1990-х годов Интернет явился общественности в виде «сетевой паутины» World Wide Web (WWW), ему пришлось обеспечивать связь всех со всеми. Это связано с тем, что Интернет построен поверх открытого и децентрализованного протокола TCP/IP. Когда какие-либо новые технологии, особенно революционные, попадают на рынок, они либо умирают сами по себе, либо приобретают такое влияние, что становятся общепринятой нормой. Общество приспособилось к сетевой революции и по-своему воспользовалось возможностями, которые она предлагала. В результате сеть сформировалась, пожалуй, не совсем в том виде, как это было задумано. Она могла бы стать более открытой, доступной и равноправной. Однако многие новые технологии начали накладываться на существующие структуры, и к сегодняшнему дню Интернет стал таким, каков он есть, — более централизованным. Люди склонны привыкать к ограничениям технологии. Нынче они вполне довольны, если международный перевод средств занимает несколько дней, или обходится слишком дорого, или недостаточно надежен.
Давайте подробнее рассмотрим банковскую систему и ее эволюцию. Начиная с первобытной меновой системы и вплоть до фиатных валют , между сделкой и ее подтверждением не было никакой реальной разницы, поскольку они не были двумя отдельными действиями. Например, если Алисе нужно заплатить 10 долларов Бобу, она просто передает Бобу банкноту номиналом 10 долларов. На этом сделка полностью завершена. Банку не нужно было списывать 10 долларов со счета Алисы и записывать на счет Боба или служить поручителем, чтобы Алиса не обманула Боба. Однако прямое взаимодействие с каждым человеком весьма затруднительно. Поэтому в банковской сфере появилось множество услуг, включая денежные переводы из любого уголка мира. Появление Интернета сломало последние преграды, и банковское дело стало проще, чем когда-либо. Но не только банковское дело — Интернет облегчил и другие способы перемещения ценности через сетевую паутину.
Традиционная технология позволяет кому-либо из Индии совершить денежную сделку с кем-либо в Соединенном Королевстве, но с некоторыми издержками. Для урегулирования таких транзакций требуются дни, и вдобавок они дорого обходятся. Банку всегда необходимо гарантировать доверие и обеспечить безопасность для таких сделок между двумя или более сторонами. А что, если найдется технология, которая может обеспечить доверие и безопасность без этих посредников и централизованных систем? По какой-то причине эта часть технологии— обеспечение доверия — отстала в развитии, и в результате расплодились централизованные системы, такие как банки, службы условного депонирования, клиринговые палаты, регистраторы и многие другие подобные учреждения. Блокчейн стал той недостающей частью интернет-революции, которая превращает уязвимую систему обмена ценностями в криптографически защищенную крепость.
Тот, кто ныне скрывается под всемирно известным псевдонимом Сатоши Накамото, прекрасно понимал, что банковская система образца 1980-х годов отстала от технологической революции. Банки создали централизованные организации, которые хранят транзакционные записи, контролируют взаимодействие, обеспечивают доверие и безопасность и регулируют всю систему. Вся коммерция опирается на эти финансовые учреждения, которые служат доверенными посредниками при обработке платежей. Посредничество финансовых учреждений увеличивает затраты и время на прохождение транзакции, а также ограничивает размеры транзакций. Посредники необходимы для разрешения споров, но по сути это означает, что совершенно необратимая транзакция невозможна — ведь посредник может ее отменить. Это следует из ситуации, когда для совершения сделки с контрагентом требуется доверенный посредник. Разумеется, эта бюрократическая система рано или поздно должна измениться, чтобы идти в ногу с наступающей цифровой трансформацией экономики. Итак, Сатоши изобрел криптовалюту под названием биткойн, в основу которой заложен блокчейн. Биткойн — это всего лишь частный случай использования блокчейна, который учитывает внутреннюю уязвимость моделей, основанных на доверии. В этой книге мы рассмотрим фундаментальные основы как биткойна, так и блокчейна.
Что такое блокчейн?
Интернет радикально изменил многие аспекты жизни, общества и бизнеса. Однако в предыдущем разделе мы отмечали, что способы проведения транзакций между людьми и организациями за последние несколько десятилетий не сильно изменились. Блокчейн, как мы уже говорили, ставит все на свои места и делает систему транзакций более открытой, доступной и надежной.
Чтобы понять сущность блокчейна, вы должны посмотреть на него как с точки зрения бизнеса, так и с технической точки зрения. Давайте сначала рассмотрим блокчейн в контексте бизнес-транзакций, чтобы понять что он дает, а в следующих статьях углубимся в техническую составляющую, чтобы понять как он это делает.
Итак, блокчейн— это система записей о переносе любой ценности (а не только денег!) по принципу «от равного к равному» (peer-to-peer). Это означает, что нет необходимости в посредниках, таких как банки, брокеры или другие службы депонирования, которые служат доверенной третьей стороной. Например, если Алиса заплатит Бобу 10 долларов, почему они обязательно должны проходить через банк? Взгляните на рис. 1.
Давайте рассмотрим другой пример. Типичная операция с акциями происходит за доли секунды, но сведение балансов через клиринговую палату длится недели. Приемлемо ли это в цифровую эпоху? Конечно же, нет! На рис. 2 показана текущая ситуация.
Но если кто-то хочет купить акции у компании или у человека, они могут, используя блокчейн, купить их напрямую и с немедленной регистрацией сделки, без
необходимости участия брокеров, клиринговых палат или других финансовых учреждений. Децентрализованное и одноранговое решение такой задачи может выглядеть, как показано на рис. 3.
Рис. 1. Транзакция через посредника и прямая транзакция
Рис. 2. Биржевая торговля через клиринговую палату
Рис. 3. Сделка в одноранговой сети
Обратите внимание, что транзакция и подтверждение сделки не являются двумя разными сущностями в среде блокчейна! Транзакции здесь аналогичны денежным сделкам, где, к примеру, кто-то платит банкнотой номиналом 10 долларов и больше не владеет ею, а банкнота физически передается новому владельцу.
Теперь, когда вы поняли функциональную суть блокчейна на верхнем уровне, давайте взглянем на его устройство с технической точки зрения, и нам станет понятно, почему блокчейн называют именно этим словом. Сейчас мы увидим, что это такое, а изучение того, как это работает, оставим для следующей статьи.
- Блокчейн — это одноранговая система передачи ценности без участия доверенной третьей стороны.
- Это общий, децентрализованный и открытый реестр транзакций. База данных реестра реплицируется (копируется) на большое количество узлов.
- База данных реестра работает только в режиме добавления записей и не может быть изменена или исправлена. Это означает, что каждая запись является постоянной и неизменной. Любая новая запись появляется во всех копиях базы данных, размещенных на разных узлах.
- Нет необходимости, чтобы доверенные третьи стороны выступали в качестве посредников для проверки, обеспечения безопасности и подтверждения транзакций.
- Блокчейн — это еще один функциональный слой поверх Интернета, и он может сосуществовать с другими интернет-технологиями.
- Точно так же, как протокол TCP/IP был разработан для создания открытой системы обмена данными, технология блокчейна была разработана для подлинной децентрализации обмена ценностями. Руководствуясь этой идеей, создатели биткойна открыли исходный код, чтобы на него могли опираться разработчики других децентрализованных приложений.
Типичный блокчейн в общем виде выглядит так, как показано на рис. 4.
Рис. 4. Структура данных Блокчейна
Каждый узел в сети имеет идентичную копию блокчейна, условно показанную на рис. 1.4, где каждый блок представляет собой совокупность транзакций и связь с предыдущим блоком — отсюда и происходит название технологии . Как вы можете видеть, каждый блок состоит из двух частей: заголовка и тела блока. Заголовок ссылается на предыдущий блок в цепочке. Каждый заголовок блока содержит хэш предыдущего блока, поэтому никто не может незаметно изменить транзакцию в предыдущем блоке. Тело блока содержит список проверенных транзакций, их суммы, адреса сторон и некоторые другие подробности. Таким образом, имея последний блок, можно получить последовательный доступ ко всем предыдущим блокам в цепочке блоков.
Чтобы понять, как работает эта система, рассмотрим практический пример и проследим, как происходят транзакции и обновляется реестр.
Предположим, что есть три участника: Алиса, Боб и Чарли, которые проводят некоторые денежные транзакции между собой в сети блокчейна. Давайте проследуем по пути транзакций шаг за шагом, чтобы понять, как работают открытые и децентрализованные функции блокчейна.
Шаг1
Допустим, что у Алисы в кошельке было 50 долларов, что является генезисом (начальной точкой) всех транзакций, и каждый узел сети знает об этом (рис. 5).
Рис. 5. Генезис - начальный блок в цепочке транзакций
Шаг 2
Алиса совершает сделку, заплатив 20 долларов Бобу. Обратите внимание, что блокчейн обновился на каждом узле (рис. 6).
Рис. 6. Первая транзакция
ШагЗ
Боб совершает другую сделку, заплатив 10 долларов Чарли, и блокчейн снова обновляется (рис. 7).
Рис. 7. Вторая транзакция
Обратите внимание, что данные транзакций в блоках неизменяемы. Все транзакции полностью необратимы. Любое изменение породит новую транзакцию, которая будет подтверждена всеми участниками. У каждого узла есть своя копия блокчейна.
Если сейчас у вас появились разные вопросы, например: «Что, если Алиса одновременно выплатит Дейву такую же сумму, как и Бобу (двойное списание), или что, если она запустит транзакцию, не имея достаточного количества средств на своем счете?», «Как обеспечивается безопасность?» — это замечательно!
Централизованные и децентрализованные системы
Причина, по которой мы обсуждаем централизацию и децентрализацию, состоит лишь в том, что блокчейн создан для децентрализации и отвергает централизованный подход. Тем не менее, термины «децентрализованный» и «централизованный» не всегда понятны. Зачастую они очень плохо определены и вводят в заблуждение. Дело в том, что почти не существует систем, которые являются чисто централизованными или децентрализованными. Большинство идей и примеров в этом разделе основано на заметках Виталика Бутерина, основателя блокчейна Ethereum.
Что такое распределенная система! Чтобы не примешивать это понятие к текущему обсуждению, давайте сначала разберемся с ним и отложим в сторону. Дело в том, что независимо от того, централизована или децентрализована система, ее все равно можно распределить. Централизованная распределенная система — это такая система, в которой есть главный узел, ответственный за дробление задач или данных и распределение нагрузки между узлами. Напротив, децентрализованная распределенная система — это такая система, где нет главного узла как такового, но все же вычисления могут быть распределены. Блокчейн — один из таких примеров, и позже мы рассмотрим различные графические представления блокчейна.
Рис. 8. Пример распределенной системы с централизованным управлением
Пример того, как может выглядеть централизованная распределенная система, показан на рис. 1.8.
Например, это представление соответствует тому, как реализована сеть распределенных вычислений Набоор. Хотя вычисление в таких проектах происходит быстрее благодаря распределению, оно также страдает от ограничений из-за централизации.
Вернемся к обсуждению вопросов централизации и децентрализации. Крайне важно отметить, что централизация или децентрализация системы определяется не только технической архитектурой. Мы хотим подчеркнуть, что система может быть централизованной или децентрализованной с технической точки зрения, но логически или политически может быть устроена совершенно иначе. Давайте рассмотрим эти аспекты архитектур, чтобы иметь возможность правильно спроектировать систему, исходя из потребностей пользователей.
- Технический аспект. Система может быть централизованной или децентрализованной с точки зрения технической архитектуры. Здесь мы анализируем, сколько физических компьютеров (или узлов) используется для создания системы, количество отказов узлов, которые она может выдержать до того, как вся система рухнет, и т. д.
- Политический аспект. Здесь мы анализируем контроль, который человек, группа людей или организация имеют над системой в целом. Если все компьютеры системы контролируются узким кругом лиц, то система совершенно очевидно централизована. Однако если ни один конкретный индивид или группа не контролируют систему, и у всех пользователей есть равные на нее права, то в политическом смысле это децентрализованная система.
- Логический аспект. Система может быть логически централизована или децентрализована, исходя из ее устройства, — вне зависимости от того, централизована она или децентрализована технически или политически. Это можно пояснить таким примером: представьте, что вы вертикально разрезаете систему пополам, причем каждая половина имеет своих поставщиков услуг и потребителей. Если обе половины могут работать как независимые единицы, значит, они логически децентрализованы. В противном случае это логически централизованная система.
Все вышеупомянутые подходы имеют решающее значение при разработке реальной системы и определении ее как централизованной или децентрализованной. Давайте обсудим некоторые из примеров смешанного подхода, чтобы устранить любую путаницу:
- если вы рассматриваете корпорации, то они централизованы архитектурно (один головной офис), централизованы политически (управляются генеральным директором или советом директоров) и они также централизованы логически (вы не можете разрезать их пополам);
- наш язык общения децентрализован со всех точек зрения — как в архитектурном, так и в политическом плане, а также логически. Когда общаются два человека, их язык не обусловлен политически, а также логически не связан с языком общения других людей;
- системы торрентов— такие как BitTorrent— также децентрализованы со всех точек зрения. Любой узел может быть поставщиком или потребителем, поэтому, даже если вы разрезаете систему на половинки, она по-прежнему функционирует;
- с другой стороны, сеть доставки контента является децентрализованной по архитектуре, а также децентрализованной логически, но политически она централизована, поскольку принадлежит корпорациям. Примером может служить Amazon CloudFront;
- теперь рассмотрим блокчейн. Назначение блокчейна заключается в том, чтобы обеспечить децентрализацию. Действительно, он децентрализован технически. Кроме того, он децентрализован с политической точки зрения, поскольку его никто не контролирует. Однако блокчейн централизован логически, т. к. существует единственное общее согласованное состояние, и вся система ведет себя как один глобальный компьютер.
Рассмотрим теперь понятия централизованных и децентрализованных систем по отдельности и сопоставим их, чтобы убедиться, что блокчейн действительно децентрализован по своему устройству.
Централизованные системы
Как следует из названия, централизованная система имеет централизованное управление со всеми административными полномочиями. Такие системы легко разрабатывать, поддерживать, навязывать им доверие и управлять ими, но они страдают от многих неотъемлемых ограничений, а именно:
- у них есть центральная точка отказа, поэтому они менее стабильны;
- они более уязвимы для атаки и, следовательно, менее защищены;
- централизация власти может привести к неэтичным действиям;
- масштабирование их в большинстве случаев затруднено.
Типичная централизованная система может выглядеть, как показано на рис. 9.
Рис. 9. Централизованная система
Децентрализованные системы
Как следует из названия, децентрализованная система не имеет центрального органа управления, и каждый ее узел обладает равными полномочиями. Такие системы сложно разрабатывать, поддерживать, управлять или навязывать им доверие. Однако они не страдают от ограничений обычных централизованных систем. Децентрализованные системы предлагают следующие преимущества:
- у них нет центральной точки отказа, поэтому они более стабильные и отказоустойчивые;
- устойчивость к атакам, т. к. они не имеют центральной точки, доступной для легкой атаки, и, следовательно, более защищены;
- представляют собой симметричную систему с равными полномочиями для всех, поэтому в ней меньше объем неэтичных операций, и она демократична по своей природе.
Типичная децентрализованная система может выглядеть, как показано на рис. 10.
Рис. 10. Децентрализованная система
Рис. 11. Децентрализованная пиринговая система «каодый-с-каждым»
Обратите внимание, что распределенная система также может быть децентрализованной. Примером может служить блокчейн. Однако, в отличие от обычных распределенных систем, в блокчейне задача не разделяется и не делегируется узлам, т. к. в блокчейне нет руководителя, который делал бы это. Распределенные узлы не работают над частями вычислений. Напротив, заинтересованные или выбранные случайным образом узлы в одиночку выполняют всю работу. Типичная децентрализованная и распределенная система, которая, по сути, представляет собой пиринговую сеть, может выглядеть, как показано на рис. 11.
Уровни блокчейна
На момент подготовки этой книги публичные варианты блокчейна, такие как Ethereum, находятся в процессе развития, и создание сложных приложений поверх этих блокчейнов может быть не очень хорошей идеей. Имейте в виду, что блокчейн — это не просто технология, а сочетание принципов бизнеса, экономики, теории игр, криптографии и инженерных наук. Большинство прикладных приложений весьма сложны по своей природе, поэтому бывает целесообразно разрабатывать блокчейн-решения с нуля.
Цель этого раздела заключается только в том, чтобы взглянуть на различные уровни блокчейна с высоты птичьего полета, а углубляться в фундаментальные основы мы будем в следующих статьях. Для начала давайте вспомним общее понятие стека протокола TCP/IP. Многоуровневый подход в стеке TCP/IP фактически является стандартом для построения открытой системы. Наличие уровней абстракции не только дает возможность лучше понять стек, но также помогает создавать продукты, совместимые со стеком. Кроме того, наличие отделенных друг от друга уровней делает систему более надежной и простой в обслуживании. Любое изменение любого из уровней не влияет на другие уровни. С другой стороны, пример TCP/IP не является полной аналогией блокчейна. TCP/IP — это протокол связи, которым пользуется каждое интернет-приложение, включая блокчейн.
Вернемся к блокчейну. Пока не существует согласованных глобальных стандартов, которые бы четко разделяли компоненты блокчейна на отдельные уровни. Нам хотелось бы иметь общепризнанную многоуровневую гетерогенную архитектуру, но пока это еще впереди. Итак, мы попытаемся дать свою формулировку уровней блокчейна, чтобы лучше понять технологию и увидеть связи между сотнями рыночных вариантов блокчейна и криптовалют. Посмотрите на обобщенное многоуровневое представление блокчейна (рис. 12).
Рис. 12. Различные уровни блокчейна
Вы можете спросить, почему выделено именно пять уровней и почему не больше или меньше? Очевидно, что не должно быть слишком много или слишком мало уровней— нужен компромисс между сложностью, надежностью, адаптивностью и т. д. И снова наша цель состоит не в том, чтобы стандартизировать технологию блокчейна, а в том, чтобы добиться лучшего понимания. Не забывайте, что все эти уровни присущи всем узлам сети.
В других статьях моего блога мы будем создавать децентрализованное приложение с нуля и узнаем, как блокчейн функционирует на всех уровнях при выполнении реальной работы.
Прикладной уровень (application layer)
Благодаря свойствам блокчейна — таким как неизменность данных, прозрачность для участников, устойчивость к атакам и пр., может быть создано несколько типов приложений. Некоторые приложения просто находятся на прикладном уровне (уровень конечного пользователя) и обслуживают любое применение блокчейна, а остальные приложения встроены в прикладной уровень и переплетаются с другими уровнями блокчейна. По этой причине прикладной уровень следует рассматривать как часть блокчейна.
Это уровень, на котором вы пишете код нужных функций и создаете из него приложение для конечных пользователей. Обычно он включает в себя традиционный технологический цикл разработки программного обеспечения - такой как программные конструкции на стороне клиента, сценарии, API, платформы разработки и т. п. Приложения, которые рассматривают сеть блокчейна как распределенную среду выполнения, могут быть размещены на веб-серверах, а для этого потребуется разработка веб-приложений, программирование на стороне сервера и API-интерфейсы. В идеале, хорошие приложения блокчейна не используют модель «клиент- сервер», и не существует централизованных серверов, к которым обращаются клиенты. Именно так работает Bitcoin.
Возможно, вы что-то слышали о сетях вне блокчейна (off-chain network). Идея состоит в том, чтобы создавать приложения, которые не будут задействовать блокчейн для всех операций подряд, а станут использовать его с умом. Другими словами, эта концепция заключается в том, чтобы обеспечить выполнение тяжелой работы на локальном уровне или организовать громоздкие хранилища данных вне блокчейна, чтобы базовая цепочка блоков была легкой и эффективной, а сетевой трафик не был слишком большим.
Уровень выполнения (execution layer)
Уровень выполнения — это уровень, на котором происходит выполнение инструкций, сформированных приложениями, на всех узлах сети блокчейна. Инструкции могут быть простыми командами или набором инструкций в форме умного контракта. В любом случае необходимо где-то выполнить программу или сценарий, чтобы обеспечить правильное прохождение транзакции. Все узлы в сети блокчейна должны выполнять программы/сценарии независимо друг от друга. Детерминированное выполнение программ/сценариев на одном и том же наборе входных данных и условий всегда дает одинаковый выходной результат на всех узлах, что помогает избежать несоответствий.
В случае с Bitcoin — это простые сценарии, которые не являются полными по Тьюрингу и допускают выполнение лишь небольшого набора инструкций. Системы Ethereum и Hyperledger, с другой стороны, допускают сложные сценарии. Код Ethereum — его умные контракты, написанные на языке Solidity, — компилируются в байт-код или машинный код, который выполняется на собственной виртуальной машине Ethereum. Hyperledger реализует более простой подход к своим умным контрактам. Он поддерживает запуск скомпилированных машинных кодов внутри Docker-образа и поддерживает несколько языков высокого уровня, таких как Java и Go.
Семантический уровень (semantic layer)
Семантический уровень — это логический уровень, потому что в транзакциях и блоках есть упорядоченность. Транзакция, действительная или недействительная, имеет набор инструкций, которые проходят через уровень выполнения, но проверяются на семантическом уровне. Если это Bitcoin, то на семантическом уровне проверяется, совершает ли кто-либо законную транзакцию, не является ли она атакой двойного расхода (например, у кого-то есть только десять долларов и он пытается заплатить эту сумму одновременно нескольким людям), авторизован ли он на совершение этой транзакции и т. п. В следующих моих блогах вы узнаете, что биткойны фактически существуют в виде транзакций, представляющих состояние системы. Чтобы иметь возможность потратить биткойны, вы должны опираться на одну или несколько предыдущих транзакций, потому что в системе Bitcoin нет понятия личного счета. Это означает, что когда кто-то совершает транзакцию, он использует одну из предыдущих транзакций, по которой получил как минимум ту сумму, которую тратит сейчас. Новая транзакция должна быть проверена всеми узлами путем обхода предыдущих транзакций, чтобы определить, является ли она допустимой транзакцией. В системе Ethereum, напротив, имеется система балансовых счетов. Это означает, что после сделки будет обновлен счет того, кто отправил транзакцию, и счет того, кто ее получил.
На этом уровне могут быть определены правила системы, такие как модели данных и структуры. Могут возникать ситуации, которые немного сложнее по сравнению с простыми транзакциями. Сложные наборы команд часто кодируются в виде умных контрактов. Умный контракт — это особый тип учетной записи с исполняемым кодом и частными состояниями. Состояние системы обновляется, если при получении транзакции сработал код умного контракта. Блок обычно содержит несколько транзакций и несколько смарт-контрактов. Структуры данных — такие как дерево Меркла — формируются на этом уровне через корень Меркла в заголовке блока и поддерживают связь между заголовками блоков и набором транзакций в блоке (обычно это пары «ключ-значение», хранящиеся на диске). Также на этом логическом уровне могут быть определены модели данных, режимы хранения диск/па- мять и пр.
Кроме того, семантический уровень определяет, как блоки связаны друг с другом. Каждый блок в блокчейне содержит хэш предыдущего блока, вплоть до генезиса. Хотя конечное состояние блокчейна достигается за счет вкладов всех уровней, на семантическом уровне необходимо определить связь блоков друг с другом. В зависимости от варианта использования, вы можете закодировать в этом слое дополнительные функции.
Уровень распространения (propagation layer)
Предыдущие уровни были скорее индивидуальным явлением— у них невелика координация действий с другими узлами в системе. Уровень распространения — это уровень одноранговой связи, который позволяет узлам обнаруживать друг друга, а также общаться и синхронизироваться друг с другом относительно текущего состояния сети. Когда сделка совершена, она распространяется (или, как иногда говорят, транслируется) по всей сети. Точно так же, когда узел предлагает новый блок, он немедленно распространяется по всей сети, чтобы другие узлы могли использовать его в качестве последнего блока цепочки. Таким образом, на этом уровне определяется распространение транзакций/блоков в сети, и это распространение обеспечивает устойчивость всей сети. По своей конструкции большинство блок- чейнов спроектировано таким образом, что они незамедлительно направляют тран- закцию/блок сразу ко всем подключенным узлам, как только становится известно о новой транзакции или блоке.
В асинхронной сети Интернет часто возникают проблемы с задержкой распространения транзакций или блоков. Иногда распространение происходит в течение нескольких секунд, а иногда занимает больше времени, — в зависимости от пропускной способности узлов, пропускной способности сети и некоторых других факторов.
Уровень консенсуса (consensus layer)
Уровень консенсуса обычно является главным для большинства блокчейновых систем. Основное назначение этого уровня — добиться от всех узлов согласия с одним определенным состоянием реестра. В зависимости от варианта использования блокчейна, могут применяться разные способы достижения консенсуса между узлами. Именно на этом уровне формируется безопасность и надежность блокчейна. В сети Bitcoin или Ethereum консенсус достигается с помощью методов поощрения, называемых майнингом. Для того чтобы открытый блокчейн не нуждался в центральном руководящем узле, должны существовать какие-то механизмы стимулирования, которые не только помогают поддерживать сеть, но и обеспечивают согласие между узлами— консенсус. Bitcoin и Ethereum используют механизм консенсуса Proof of Work (PoW, доказательство работы) для случайного выбора узла, который может найти и предложить сети новый блок. Как только новый блок найден и распространен на все узлы, они проверяют, является ли этот блок допустимым блоком со всеми законными транзакциями, и правильно ли решена головоломка PoW. Затем узлы добавляют этот блок в свою собственную копию блокчейна. Существует множество вариантов протокола консенсуса — таких как: Proof of Stake (PoS, доказательство владения), PoS с разделением полномочий (delegated Pos, dPoS), прикладная византийская парадигма отказоустойчивости (Practical Byzantine Fault Tolerance, PBFT) и другие, которые мы подробно рассмотрим в следующих главах.
Почему блокчейн так важен?
Мы рассмотрели особенности устройства централизованных и децентрализованных систем и получили некоторое представление о технических преимуществах децентрализованных систем по сравнению с централизованными системами. Мы также узнали о различных уровнях блокчейна. Блокчейн, представляющий собой децентрализованную одноранговую систему, имеет свои преимущества и недостатки. Имейте в виду, что блокчейн — это не волшебная палочка, которая может решить все проблемы в мире, но есть конкретные случаи, когда он помогает прямо сейчас. Бывают также ситуации, когда добавление блокчейна в существующее решение делает его более надежным, прозрачным и защищенным. Тем не менее, внедрение блокчейна может привести к катастрофе, если не будет реализовано правильно! Давайте теперь проанализируем блокчейн с точки зрения функциональности.
Ограничения централизованных систем
Если вы окинете взглядом положение дел в области программного обеспечения, то увидите, что многие программные решения имеют централизованный характер. Причина не в том, что их легко разрабатывать и поддерживать, а в том, что мы привыкли к такому устройству, чтобы иметь возможность доверять системе. Нам всегда нужна надежная третья сторона, которая может удостоверить, что нас не обманывают, и мы не станем жертвами мошенничества. Мало кто захочет иметь дело с теми, кого не знал раньше.
Давайте приведем пример из повседневной жизни. Сегодня, когда мы заказываем что-то из Amazon, мы чувствуем себя в безопасности и уверены в доставке товара. Производитель товара — это одна сторона сделки, а покупатель — другая сторона. Тогда какую роль здесь играет Amazon? Он действует в качестве доверенного посредника, а также упрощает транзакции. Покупатель доверяет продавцу, хотя доверительные отношения фактически навязаны посредником. Блокчейн говорит нам, что в современную цифровую эпоху на самом деле не нужна третья сторона, которая навязывает доверие, и технология уже достаточно развита, чтобы обойтись без посредника. В блокчейне доверие является неотъемлемой частью системы по умолчанию, о чем мы поговорим подробнее в следующих статьях.
Бегло перечислим некоторые недостатки обычной централизованной системы:
- проблема доверия;
- проблема безопасности;
- проблема конфиденциальности — персональные данные постоянно продают;
- стоимость и временной фактор транзакций.
Можно назвать и некоторые преимущества децентрализованных систем:
- устранение посредников;
- более простая и достоверная проверка транзакций;
- повышенная безопасность с меньшими затратами;
- большая прозрачность;
- отсутствие уязвимого центра и неизменность.
Долго ли ждать блокчейн?
Блокчейн явился миру в 2009 году вместе с цифровой криптовалютой биткойн через простой список рассылки. Вскоре после запуска биткойна люди смогли оценить истинный потенциал блокчейна, далеко выходящий за рамки криптовалюты. Некоторые компании предложили новые варианты применения блокчейна, такие как Ethereum, Hyperledger и тому подобные. Microsoft и IBM предложили SaaS (Software as a Service, программное обеспечение как услуга) на своих облачных платформах Azure и Bluemix соответственно. Были созданы различные стартапы, а многие признанные компании выступили с инициативами внедрения блокчейна для решения некоторых бизнес-задач, которые раньше было нелегко решить.
Сейчас уже поздно говорить, что блокчейн обладает огромным потенциалом, чтобы так или иначе встряхнуть практически все отрасли, — революция уже идет. Она сильно повлияла на рынок финансовых услуг. Трудно назвать глобальный банк или финансовую организацию, которые не исследуют блокчейн. Помимо финансового рынка, энергичные исследования уже ведутся в таких областях, как медиа и развлечения, торговля энергоресурсами, рынки прогнозирования, розничные сети, системы поощрения лояльности, страхование, логистика и цепочки поставок, медицинские документы, а также органы государственного управления.
На момент подготовки этой книги текущая ситуация такова, что многие стартапы и компании хорошо представляют, как система, основанная на блокчейне, может решить некоторые болезненные проблемы. Тем не менее, разработка прикладного применения блокчейна является сложной задачей. Есть несколько действительно хороших идей для продуктов или решений на основе блокчейна, но их одинаково трудно как разработать, так и внедрить. Есть несколько вариантов использования, которые могут быть построены только на открытом (общедоступном) блокчейне. Разработка самодостаточного блокчейна с надлежащей экосистемой майнинга является весьма сложной задачей, и когда дело доходит до существующих открытых блокчейнов для создания приложений без криптовалюты, тут-то и оказывается, что нет ничего, кроме блокчейна Ethereum. Вопрос о том, должно ли приложение блокчейна быть только «оберткой» и использовать базовые слои готового блокчейна такими, как они есть, или приложение должно быть построено с нуля, включая инфраструктуру блокчейна, — это вопрос, на который трудно ответить однозначно. Есть и чисто технические проблемы. Технология блокчейна все еще развивается, и для массового внедрения может потребоваться еще несколько лет. На сегодняшний день существует несколько подходов к решению проблемы масштабируемости блокчейна. В нашей книге мы постараемся сформировать ясное понимание всех этих перспектив. А пока давайте рассмотрим некоторые конкретные варианты использования блокчейна.
Практическое применение блокчейна
В этом разделе мы рассмотрим лишь некоторые примеры, которые можно встретить в таких отраслях, как финансы, страхование, банковское дело, здравоохранение, правительство, логистика, IoT (Internet of Things, Интернет вещей), а также средства массовой информации и развлечения. Однако возможности блокчейна безграничны! Истинная экономика совместного пользования, которую было трудно построить в централизованных системах, становится возможной с использованием технологии блокчейна (например, пиринговые версии Uber и AirBNB). Также можно позволить гражданам владеть и управлять своей цифровой идентичностью (SelfSovereign Digital Identity) и на основе технологии блокчейна монетизировать использование персональных данных.
В блокчейне можно зарегистрировать любой тип имущества или активов, будь то физические или цифровые активы — такие как ноутбуки, мобильные телефоны, бриллианты, автомобили, недвижимость, электронная регистрация, цифровые файлы и т. д. Это решает проблемы передачи активов от одного человека к другому, ведения журнала транзакций и проверки действительности документа или права собственности. Кроме того, могут быть разработаны услуги цифрового нотариуса, подтверждение существования, индивидуальные схемы страхования и многие другие варианты использования.
- Существует множество вариантов финансового применения блокчейна — таких как трансграничные платежи, торговля акциями, система лояльности и вознаграждений, банковская система «Знай своего клиента» (Know Your Customer, КУС) и др. А первичный выпуск монет (Initial Coin Offering, ICO) — на момент подотовки этой книги — является сейчас одним из самых популярных видов использования блокчейна. На сегодняшний день ICO — это лучший способ краудсорсинга с использованием криптовалюты в качестве цифровых активов. Монету в ICO можно рассматривать как цифровую акцию предприятия, которую очень легко покупать и продавать.
- Блокчейн может быть задействован для того, чтобы позволить «Мудрость толпы» взять на себя инициативу и переформатировать бизнес, экономику и прочие национальные институты, используя коллективную мудрость! Финансовые и экономические прогнозы, основанные на мудрости толпы, децентрализованных рынках прогнозирования, децентрализованном голосовании, а также на торговле акциями, могут быть реализованы при помощи блокчейна.
- Процесс распределения лицензионных платежей всегда был запутанным. Ин- тернет-сервисы потоковой трансляции музыки облегчили выход авторов на рынок, но усложнили определение роялти. Эта проблема может быть в значительной степени решена с помощью блокчейна путем ведения общедоступного реестра информации о правах собственности на музыку, а также авторизованного распространения медиаконтента.
- Мы вошли в эру Интернета вещей (Internet of Things, IoT) с миллиардами IoT- устройств по всему миру. Наличие несогласованных производителей, моделей и протоколов связи затрудняет создание централизованной системы управления устройствами и общей платформы обмена данными. Это также область, где блокчейн можно использовать для построения децентрализованной одноранговой системы, чтобы устройства IoT могли обмениваться данными друг с другом. ADEPT (Autonomous Decentralized Peer-To-Peer Telemetry, Автономная децентрализованная одноранговая телеметрия)— это совместная инициатива IBM и Samsung, которые разработали платформу, использующую элементы базовой структуры биткойна для построения распределенной сети устройств — децентрализованного Интернета вещей. ADEPT задействует три протокола: BitTorrent — для обмена файлами, Ethereum— для умных контрактов и TeleHash— для обмена сообщениями между равноправными узлами на платформе. Еще одной такой инициативой является фонд ЮТА.
- В государственном секторе блокчейн также набрал обороты. Существуют области деятельности, для которых необходима техническая децентрализация, но политически они должна регулироваться государством: регистрация земли, регистрация собственности и права на управление транспортными средствами, электронное голосование и др. Цепочки поставок — это еще одна область, в которой есть несколько примеров использования блокчейна. Цепочки поставок постоянно оказывались предметом споров по всему миру, т. к. всегда было трудно под держивать прозрачность в этих системах.
Заключение
В этой статье мы рассмотрели эволюцию блокчейна, его историю, преимущества его устройства и почему это так важно в некоторых случаях. Давайте подведем итог рассуждениям о технологической революции, которая меняет правила игры.
В 1990-х годах массовое внедрение Интернета изменило способы ведения бизнеса и убрало препятствия для создания и распространения информации. Это, в свою очередь, проложило путь на новые рынки с большими перспективами. Точно так же блокчейн призван вывести Интернет на совершенно новый уровень, устранив препятствия в трех ключевых областях: управление, доверие и ценность.
- Управление: блокчейн позволил распределить управление, сделав систему децентрализованной.
- Доверие: блокчейн представляет собой неизменяемый, защищенный от несанкционированного доступа реестр. Это дает единый, общий источник истины для всех узлов, делая систему надежной без посредника. Для совершения сделок с каким-либо неизвестным лицом или организацией больше не требуется доверие, ибо оно заложено в саму сущность системы.
- Ценность: блокчейн позволяет обмениваться ценностями в любой форме. Можно выпускать и перемещать активы без центральных органов или посредников.
В следующем блоге мы рассмотрим основные базовые знания, которыми должен обладать программист, для создания приложений блокчейн.
Рекомендуемые источники
- Значение децентрализации: Buterin, Vitalik, «The Meaning of Decentralization», Medium, https://medium.coni/@VitalikButerin/the-nieaning-of-decentralization- a0c92b76a274, February 6,
- Технология блокчейна:
- Crosby, Michael; Nachiappan; Pattanayak, Pradhan; Verma, Sanjeev; Kalyanaraman, Vignesh, «BlockChain Technology: Beyond Bitcoin» Berkeley, CA: Sutardja Center for Entrepreneurship & Technology, University of California.
- http://scet.berkeley.edu/wp-content/uploads/BlockchainPaper.pdf, October 16, 2015.
- Torpey, Kyle, «Eric Lombrozo: Bitcoin Needs Protocol Layers Similar to the Internet», Coin Journal. https://coinjournal.net/eric-lombrozo-bitcoin-needs-protocol-layers-similar-to- the-internet/, January 28, 2016.
- Blockbench: платформа для анализа частных блокчейнов: Dinh, Tien Tuan Anh; Wang, Ji; Chen, Gang; Liu, Rui; Ooi, Beng Chin; Tan, Kian-Lee, «Blockbench: A Framework for Analyzing Private blockchains», https://arxiv.org/pdf71703.04057.pdf, March 12, 2017.