Вступление

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

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

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

Для корпоративного использования необходимо учитывать следующие требования:

  • Участники должны быть идентифицированы/идентифицируемы
  • Сети должны быть с контролем доступа
  • Высокая скорость проведения транзакций
  • Низкая задержка при подтверждении транзакций
  • Конфиденциальность транзакций и данных бизнес-транзакций

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

Hyperledger Fabric

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

Одним из ключевых отличий является то, что консорциум Hyperledger был основан в рамках Linux Foundation, имеющего долгую и успешную историю развития проектов с открытым исходным кодом и открытым управлением, в которых развиваются крепкие сообщества и процветающие экосистемы. Hyperledger управляется техническим комитетом, а Hyperledger Fabric - командой разработчиков из различных организаций. С момента появления первого кода сообщество разработчиков выросло до более чем 200 человек более чем из 35 организаций.

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

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

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

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

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

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

Давайте более детально рассмотрим эти отличительные черты.

Модульность

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

На высоком уровне Fabric состоит из следующих модульных компонентов:

  • Подключаемый упорядочивающий сервис обеспечивает консенсус при установлении порядка транзакций и затем рассылает блоки одноранговым узлам.
  • Подключаемый провайдер услуг членства отвечает за ассоциацию сущностей в сети с криптографическими идентификаторами.
  • Необязательная служба gossip распространяет блоки, полученные из упорядочивающего сервиса, среди одноранговых узлов.
  • Умные контракты (»чейнкод») запускаются в отдельной контейнерной среде (например, Docker) для обеспечения их изоляции. Они могут быть написаны на обычных языках программирования и не имеют прямого доступа к состоянию реестра.
  • Реестр может быть настроен для работы с разными СУБД.
  • Подключаемое применение политик одобрения и валидации может быть независимо настроено для каждого приложения.

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

Нужен ли контроль доступа?

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

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

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

Умные контракты

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

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

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

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

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

Парадигму «order-execute» можно увидеть практически во всех существующих блокчейн-системах, от публичных платформ без контроля доступа, таких как Ethereum (с консенсусом на основе PoW), до платформ с контролем доступа, таких как Tendermint, Chain и Quorum.

Умные контракты, выполняемые в блокчейне, в котором принята парадигма «order-execute», должны быть детерминированными, иначе консенсус может быть никогда не достигнут. Чтобы решить проблему недетерминизма, многие платформы требуют написание умных контрактов на нестандартном, или специфическом, языке (например, Solidity), чтобы исключить недетерминированные операции. Это препятствует широкому внедрению, поскольку от разработчиков умных контрактов требуется изучение нового языка и может привести к ошибкам при программировании.

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

Новый подход

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

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

Такой подход радикально отличается от парадигмы «order-execute» тем, что Fabric выполняет транзакции до достижения конечного соглашения об их порядке.

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

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

Конфиденциальность

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

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

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

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

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

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

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

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

Подключаемый консенсус

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

В настоящее время Fabric предоставляет отказоустойчивую реализацию службы упорядочения, основанную на библиотеке etcd протокола Raft. Информацию о доступных в данный момент службах упорядочения вы можете найти в нашей документации.

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

Производительность и масштабирование

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

Было опубликовано несколько научных работ, посвященных изучению и тестированию производительности Hyperledger Fabric. В последней из них в сети Fabric было получено 20.000 транзакции в секунду.

Заключение

Любая серьезная оценка блокчейн-платформ должна включать Hyperledger Fabric.

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

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

Благодарности

Написанное выше взято из рецензируемого исследования «Hyperledger Fabric: A Distributed Operating System for Permissioned Blockchains» - Elli Androulaki, Artem Barger, Vita Bortnikov, Christian Cachin, Konstantinos Christidis, Angelo De Caro, David Enyeart, Christopher Ferris, Gennady Laventman, Yacov Manevich, Srinivasan Muralidharan, Chet Murthy, Binh Nguyen, Manish Sethi, Gari Singh, Keith Smith, Alessandro Sorniotti, Chrysoula Stathakopoulou, Marko Vukolic, Sharon Weed Cocco, Jason Yellick