Важные новости

Блокчейн — что это такое и сфера применения технологии

Содержание

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

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

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

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

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

Что такое блокчейн? Полное руководство

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

Глава 1. Введение в блокчейн

Что такое блокчейн?

Блокчейн – это особый тип базы данных. Возможно, вы также слышали термин «технология распределённого реестра» (DLT) – во многих случаях имеется в виду то же самое.

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

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

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

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

база данных в блокчейне

База данных, в которой каждая запись связана с предыдущей. Источник: binance.com

Если теперь посмотреть на четвёртую строку, то последний идентификатор – TH. Помните, мы говорили, что нельзя изменить или удалить предыдущие записи? Всё потому, что любой легко поймёт, что это имело место, и просто проигнорирует попытку изменений.

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

Как связаны блоки?

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

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

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

Вход Выход SHA256
BitNovosti 491fd0ac791d6ef2229de5cab423ca6eb21dfe16e129e3a89a6893682a80e219
Bitnovosti 950822b5e38e6c48e20add70a4593d7f4b66917c457d06ff929fe4e7e86d440a
bitnovosti 8b4cd5c3d8be54f7a19cae929f0e15b6de0bdda08ce929c327c90fa82611e2aa

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

Каждый блок содержит отпечаток предыдущего. Источник: binance.com

Блокчейны и децентрализация

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

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

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

Задача византийских генералов

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

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

Да, они могут общаться через гонца. Но что, если того перехватят с сообщением «атакуем на рассвете» и заменят его сообщением «атакуем ночью»? Что, если один из генералов предатель и намеренно вводит других в заблуждение, чтобы они потерпели поражение?

задача византийских генералов

Всех генералов ждёт успех при одновременной атаке (слева). Если одни отступают, а другие атакуют, то они будут побеждены (справа). Источник: binance.com

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

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

Зачем блокчейнам быть децентрализованными?

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

Что такое пиринговая сеть?

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

Централизованная сеть (слева) против децентрализованной (справа). Источник: binance.com

Взгляните на эту диаграмму. Слева A, чтобы отправить сообщение F, нужно переслать его через сервер. Но справа они соединены без посредников.

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

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

Что такое узлы (ноды) блокчейна?

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

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

Публичные и частные блокчейны

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

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

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

Как происходят транзакции?

Если Алиса хочет заплатить Бобу через банковский перевод, она уведомляет об этом свой банк. Для простоты предположим, что обе стороны используют один и тот же банк. Банк проверяет, есть ли у Алисы средства для проведения транзакции, после чего обновляет свою базу данных (например, Алиса -$50, Боб -$50).

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

Если Алиса хочет отправить Бобу 5 биткойнов, она транслирует сети соответствующее сообщение. Оно не сразу добавляется в блокчейн – узлы его увидят, но для подтверждения транзакции должны быть выполнены другие действия.

Когда транзакция добавлена в блокчейн, все узлы увидят, что она состоялась. Они обновят свою копию блокчейна, чтобы это отразить. Теперь Алиса не сможет отправить те же 5 монет Кэрол (двойное расходование), потому что сеть знает, что она их уже потратила.

Понятия имён пользователей и паролей здесь нет – чтобы доказать владение средствами, используется криптография с открытым ключом. Чтобы получить средства, Бобу нужен приватный ключ. Это просто очень длинное случайное число, которое практически невозможно угадать, даже имея в распоряжении сотни лет. Но если он кому-то сообщит свой приватный ключ, то такой человек сможет доказать, что средства Боба принадлежат ему (а следовательно, и потратить их). Поэтому важно держать приватный ключ в тайне.

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

Источник: binance.com

Боб сообщает публичный адрес Алисе, чтобы она знала, куда отправлять средства. Алиса создаёт транзакцию, которая говорит: отправить такие-то средства на такой-то публичный адрес. Затем, чтобы доказать сети, что она не пытается отправить средства, которые ей не принадлежат, она генерирует с помощью своего приватного ключа цифровую подпись. Любой может сравнить подписанное Алисой сообщение с её публичным ключом и с уверенностью сказать, что она имеет право переслать эти средства Бобу.

Кто изобрёл технологию блокчейна?

Эта технология обрела законченный вид в 2009 г. с запуском Биткойна – первого и самого популярного блокчейна. Однако её анонимный создатель Сатоши Накамото вдохновлялся более ранними технологиями и предложениями.

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

Преимущества и недостатки технологии блокчейна

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

Преимущества

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

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

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

У Биткойна больше 10 500 активных узлов, разбросанных по миру, так что скомпрометировать сеть будет практически невозможно даже хорошо обеспеченному ресурсами злоумышленнику. Стоит отметить, что есть также много скрытых узлов, невидимых для сети.

Недостатки

Блокчейны не панацея от всех проблем. Одновременно с описанными выше преимуществами у них есть и недостатки. Самое очевидное препятствие для массового принятия блокчейнов – их плохая масштабируемость.

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

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

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

Но в среде, где могут быть миллионы пользователей, вносить изменения значительно сложнее. Можно изменить какие-то параметры в ПО своего узла, но в итоге окажешься выброшенным из сети. Если изменённое ПО несовместимо с другими узлами, они это заметят и откажутся взаимодействовать с твоим узлом.

Допустим, ты хочешь изменить правило о том, каким может быть максимальный размер блоков (2 МБ вместо 1 МБ). Можно отправить больший блок узлам, к которым ты подключён, но у них есть правило, гласящее «не принимать блоки больше 1 МБ». Они не включат такой блок в свою копию блокчейна.

Единственный способ протолкнуть изменения – убедить большинство участников их принять. В больших блокчейнах могут понадобиться месяцы – а то и годы – напряжённых обсуждений, прежде чем удастся скоординировать изменения.

Глава 2. Как блокчейн работает?

Как блоки добавляются в блокчейн?

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

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

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

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

Майнинг (PoW или доказательство выполнения работы)

Источник: binance.com

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

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

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

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

Первым блокчейном с доказательством выполнения работы был Биткойн. После его создания механизм PoW заимствовали многие другие блокчейны.

Преимущества PoW

  • Проверенная эффективность: на данный момент PoW – самый зрелый консенсусный алгоритм, который способствовал безопасному переводу средств на миллиарды долларов.
  • Открытость: любой может присоединиться к конкуренции в майнинге или просто установить проверочный узел.
  • Децентрализация: майнеры соревнуются друг с другом в создании блоков, что означает, что никакая единственная сторона не контролирует вычислительную мощность.

Недостатки PoW

  • Расточительность: майнинг потребляет огромное количество электричества.
  • Повышающийся барьер входа: по мере того как к сети присоединяется больше майнеров, протокол повышает сложность задачи, решаемой майнерами. Чтобы оставаться конкурентоспособными, пользователи должны инвестировать в лучшее оборудование. Из-за этого многие майнеры могут выйти из игры.
  • Атаки 51%: хотя майнинг способствует децентрализации, всё же существует вероятность, что один майнер заполучит большую часть вычислительной мощности. Тогда он теоретически может отменить прошлые транзакции и подорвать безопасность блокчейна.

Стейкинг (PoS или доказательство доли владения)

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

В случае же доказательства доли владения (Proof of Stake, PoS) внешних издержек нет. Вместо майнеров здесь валидаторы, которые предлагают блоки. Для создания новых блоков они могут использовать обычный компьютер, но для этого нужно отдать под залог значительную часть своих средств. Для этого используется определённая сумма криптовалюты блокчейна согласно правилам протокола.

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

Чаще встречаются не «чистые» PoS-блокчейны, а блокчейны с DPoS (делегированным доказательством доли владения), где пользователи голосуют за узлы (свидетелей), которые будут валидировать блоки для всей сети.

Ethereum, ведущий блокчейн для смарт-контрактов, должен перейти на PoS в версии ETH 2.0.

Преимущества PoS

  • Экологичность: углеродный след PoS в разы меньше, чем у майнинга. Стейкинг устранят необходимость в ресурсоёмком хешировании.
  • Более быстрые транзакции: поскольку не нужно тратить дополнительную вычислительную мощность на решение задач, прописанных в протоколе, некоторые сторонники PoS утверждают, что это может увеличить пропускную способность.
  • Вознаграждение за стейкинг и проценты: вместо майнеров вознаграждения за обеспечение безопасности сети идут напрямую держателям токенов. Иногда PoS позволяет пользователям получать пассивный доход в виде эйрдропов либо процентов, начисляемых просто за резервирование своих средств.

Недостатки PoS

  • Сравнительно малая изученность: протоколы PoS пока ещё не протестированы в больших масштабах. В их реализации или криптоэкономике могут быть необнаруженные уязвимости.
  • Плутократия: существуют опасения, что PoS способствует экосистеме, где богатые становятся ещё богаче, так как валидаторы с большим залогом получают больше вознаграждений.
  • Проблема отсутствия личного риска: в PoW пользователи могут «ставить» только на один блокчейн – они майнят в том блокчейне, у которого, по их мнению, больше шансов на успех. В случае хард-форка они не могут посвящать одну и ту же вычислительную мощность разным блокчейнам. Однако валидаторы в PoS могут действовать в нескольких блокчейнах с минимальными дополнительными издержками, что может вызывать экономические проблемы.

Другие консенсусные алгоритмы

PoW и PoS – самые распространённые консенсусные алгоритмы, но есть также много других. Среди них есть как гибриды, сочетающие элементы этих двух систем, так и совершенно отличные методы.

Мы не будем здесь в них углубляться, но лишь назовём некоторые:

Можно ли отменить транзакции в блокчейне?

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

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

Что такое масштабируемость блокчейна?

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

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

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

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

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

Зачем блокчейну масштабироваться?

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

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

Что такое форк блокчейна?

Как и любое ПО, блокчейны нуждаются в обновлениях, чтобы исправить недочёты, добавить новые правила или убрать старые. Поскольку большинство ПО для блокчейнов имеет открытый исходный код, теоретически предложить изменения может любой.

Но надо иметь в виду, что блокчейны – это распределённые сети. Если ПО обновится, тысячи узлов, разбросанных по всему миру, должны иметь возможность взаимодействовать и перейти на новую версию. Но что, если участники не могут договориться, какие обновления принимать? Как правило, нет никакой организации, которая принимала бы решения. Это подводит нас к софт- и хард-форкам.

Софт-форки

Если есть общее согласие о том, как должно выглядеть обновление, то всё относительно просто. В таком случае ПО обновляется с помощью обратно совместимых изменений, что означает, что обновившиеся узлы по-прежнему могут взаимодействовать с теми, которые не обновились. Но в реальности ожидается, что со временем обновятся почти все узлы. Это называется софт-форк.

Хард-форки

Хард-форк более сложен. После его реализации новые правила будут несовместимы со старыми. Поэтому если узел, использующий новые правила, попытается взаимодействовать с узлом, использующим старые, ему это не удастся. Как следствие, блокчейн разделяется надвое: в одном блокчейне используется старое ПО, а в другом реализованы новые правила.

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

Глава 3. Для чего блокчейн используется?

blockchain, блокчейн, стетоскоп, медицинский работник

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

Блокчейн для цепочек поставок

Эффективные цепочки поставок – основа успешного бизнеса. Они отвечают за то, как товары попадают от производителей к потребителям. Координация различных участников в той или иной индустрии традиционно была непростой задачей. Однако технология блокчейна делает возможными новые уровни прозрачности во многих отраслях. Интероперабельная экосистема цепочек поставок, построенная на основе неизменяемой базы данных, – это как раз то, что нужно многим индустриям, чтобы стать более устойчивыми и надёжными.

Блокчейн и игровая индустрия

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

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

Блокчейн в здравоохранении

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

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

Блокчейн и денежные переводы

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

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

Интересно почитать:

Блокчейн и цифровая идентичность

фото цифровой отпечаток пальца

Существует острая необходимость безопасного управления личными данными в интернете. Невероятное количество наших личных данных хранится на централизованных серверах и анализируется алгоритмами машинного обучения без нашего ведома или согласия.

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

Блокчейн и интернет вещей (IoT)

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

Блокчейн в управлении

Распределённые сети могут определять и применять собственные правила в виде компьютерного кода. Поэтому неудивительно, что блокчейн может устранить посредников в управленческих процессах на локальном, национальном и даже международном уровне.

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

Блокчейн в благотворительности

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

иллюстрация биткойн благотворительность

«Криптофилантропия» сосредоточена на использовании технологии блокчейна, чтобы преодолеть эти ограничения. Полагаясь на характерные свойства этой технологии, чтобы обеспечить лучшую прозрачность, глобальное участие и меньшие расходы, эта новая область стремится максимизировать эффективность благотворительных организаций. Пример такой организации – Blockchain Charity Foundation.

Блокчейн для спекуляции

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

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

Краудфандинг на блокчейне

Онлайн-платформы для краудфандинга вот уже десять лет создают фундамент для пиринговой экономики. Успех подобных сайтов свидетельствует о реальном интересе к разработке продуктов, финансируемой путём сбора средств. Но так как такие платформы выступают попечителями средств, они могут вычитать значительную их часть в качестве комиссий. Кроме того, у каждой из них свои правила о том, как достигается соглашение между разными участниками.

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

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

Блокчейн и распределённые файловые системы

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

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

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

Участники предоставляют сети своё дисковое пространство и пропускную способность. Как правило, эти участники экономически мотивированы предоставлять эти ресурсы и экономически наказываются, если не следуют правилам или не справляются с задачей хранения и предоставления файлов.

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

Такие открытые протоколы, как InterPlanetary File System (IPFS), уже прокладывают путь к этому новому, более устойчивому и распределённому вебу. Хотя IPFS – это протокол и пиринговая сеть, это не совсем блокчейн. Однако здесь применяются некоторые принципы технологии блокчейна, чтобы улучшить безопасность и эффективность.

https://oracle-patches.com/net-cloud/4229-%D0%B7%D0%BD%D0%B0%D0%BA%D0%BE%D0%BC%D1%81%D1%82%D0%B2%D0%BE-%D1%81-%D0%B1%D0%BB%D0%BE%D0%BA%D1%87%D0%B5%D0%B9%D0%BD%D0%BE%D0%BC-%D1%87%D1%82%D0%BE-%D1%8D%D1%82%D0%BE-%D0%B8-%D0%B4%D0%BB%D1%8F-%D1%87%D0%B5%D0%B3%D0%BE-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D1%83%D0%B5%D1%82%D1%81%D1%8F

Что такое блокчейн? Полное руководство

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *