Знакомство с блокчейном: что это и для чего используется?

Введение в блокчейн

Блокчейн - это очередная волна перемен, которая уже начала менять структуру деловых, социальных и политических связей, а также способы перемещения средств. С другой стороны, блокчейн — это не просто перемены, а некая сущность, которая никогда не стоит на месте. На момент подготовки этой книги более 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). Также мож­но позволить гражданам владеть и управлять своей цифровой идентичностью (Self­Sovereign 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-х годах массовое внедрение Интернета изменило способы ведения бизнеса и убрало препятствия для создания и распространения информации. Это, в свою очередь, проложило путь на новые рынки с большими перспективами. Точно так же блокчейн призван вывести Интернет на совершенно новый уровень, устранив препятствия в трех ключевых областях: управление, доверие и ценность.

  • Управление: блокчейн позволил распределить управление, сделав систему де­централизованной.
  • Доверие: блокчейн представляет собой неизменяемый, защищенный от несанк­ционированного доступа реестр. Это дает единый, общий источник истины для всех узлов, делая систему надежной без посредника. Для совершения сделок с каким-либо неизвестным лицом или организацией больше не требуется дове­рие, ибо оно заложено в саму сущность системы.
  • Ценность: блокчейн позволяет обмениваться ценностями в любой форме. Мож­но выпускать и перемещать активы без центральных органов или посредников.

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

Рекомендуемые источники

 

Вас заинтересует / Intresting for you:

Блокчейн: фундаментальные осно...
Блокчейн: фундаментальные осно... 472 просмотров Ирина Светлова Fri, 16 Oct 2020, 12:22:41
Способы подключения сетевых ка...
Способы подключения сетевых ка... 4759 просмотров Doctor Sat, 11 May 2019, 08:40:23
Что такое сети Cisco? Основные...
Что такое сети Cisco? Основные... 4481 просмотров Александров Попков Wed, 09 Oct 2019, 17:21:43
Краткий курс по операционной с...
Краткий курс по операционной с... 6145 просмотров Doctor Sun, 13 Oct 2019, 10:09:49
Войдите чтобы комментировать

apv аватар
apv ответил в теме #9799 22 дек 2020 20:07
Крутая статейка. Тот, кто хочет начать разбираться в технологии ВIосkchаin, тот уже будет "в теме" после ее прочтения. Материал изложен очень хорошо, доступно для понимания! Автору Спасибо.