btc
bch
eth

Сравнение Ethereum, Corda и Fabric

Введение

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

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

Консенсус

Эфириум. 

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

Блокчейн Эфириума публичен, то есть информация обо всех адресах и транзакциях доступна любому наблюдателю. Разумеется, этот факт негативно влияет на приватность участников. Именно эту проблему постарались решить создатели Fabric и Corda.

Fabric. 

Понятие консенсуса в сети Fabric охватывает весь жизненный цикл транзакций. В процессе верификации узлы сети берут на себя разные роли, в отличие от Эфириума, в котором функция нод неизменна. [Ноды Эфириума]

В случае с Fabric узлы делятся на 3 категории – clients, peers и orderers. Client берёт на себя роль пользователя, инициировавшего транзакцию. Он взаимодействует с остальными двумя типами узлов. Peers выполняют функцию поддержания блокчейна и получения сообщений об обновлениях от orderers. Последние предоставляют остальным коммуникационный канал, по которому транслируются сообщения, содержащие транзакции.

Функцию верификации осуществляют endorsers, являющиеся подмножеством peers. Они выполняют проверку условий, на которых основаны правила консенсуса.

Проблема заключается в том, что среди orderers нет доверия, и появляется возможность появления неправильных сообщений. Как следствие, возникает потребность в алгоритме консенсуса, который будет работать несмотря на ошибки (например, нарушение порядка транзакций). В Fabric алгоритм консенсуса «замещаемый», то есть его можно менять в зависимости от особенностей разрабатываемого решения. Например, для обеспечения робастного функционирования в ситуации появления случайных или злонамеренных попыток дублирования транзакций используется Byzantine fault-tolerant algorithm (BFT-алгоритм, применяемый для решения задачи византийских генералов).

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

Опишем роль узлов в терминах потока транзакций. Client отправляет сообщение с транзакцией подключённым endorsers, инициируя процедуру обновления реестра. Далее множество endorsers должно прийти к консенсусу относительно предлагаемой транзакции. Если транзакция корректна и подлинна, client получает подтверждение от всех endorsers. Теперь верифицированная транзакция отправляется подключённым orderers, которые снова запускают процедуру прихода к консенсусу. В конце концов сообщение пересылается на адреса всех peers, хранящих актуальную версию реестра в своей памяти. Последние записывают транзакцию в блокчейн.

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

Corda. 

Консенсус в Corda достигается на транзакционном уровне, как и в Fabric. Верификация затрагивает как валидность, так и уникальность транзакции. Валидность подтверждается при помощи смарт-контрактов, ассоциируемых с транзакциями. Проверяется действительность цифровых подписей и валидность тех транзакций, на которые ссылается данная транзакция. Проверка уникальности затрагивает input states (входные состояния) транзакции. Данная процедура включает удостоверение в том, чтобы рассматриваемая транзакция была уникальным потребителем всех своих input states. Другими словами, не существует такой транзакции, которая включает в себя такие же states. Эта процедура предотвращает double spending в сети.

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

Смарт-контракты

Если вы не знакомы с данным термином, читайте ознакомительную статью «Что такое смарт-контракты и зачем они нужны». 

Все три рассматриваемые платформы поддерживают смарт-контракты, программируемые на различных языках. В Fabric смарт-контракты называются chaincode. С точки зрения языков программирования, разработчики Ethereum создали и продолжают создавать специфические не Тьюринг-полные языки (что подразумевают невозможность реализовать на нем те или иные вычислимые функции), в которых отсутствуют циклы. Это делается для исключения DDoS-атак на сеть в виде бесконечных вычислений. Самым распространённым из них является язык Solidity. Рассматриваемые же корпоративные платформы применяют популярный компилируемый язык Java.

 

Платформа

Язык программирования смарт-контрактов

Вид смарт-контракта

Ethereum

Solidity, Serpent (устарел), Viper (в разработке)

Программный код

Fabric

Go, Java

Программный код

Corda

Java, Kotlin

Программный код и юридические правила

 

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

Встроенная криптовалюта

Платформа

Встроенная валюта

Валюты на базе платформы

Эфириум

Эфир (ETH), gas

ERC20-токены

Fabric

 –

В разработке

Corda

 –

 –

 

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

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

Полезные ссылки

Как работает Ethereum

Консенсус в Corda

Notary Nodes в Corda

 

 

Похожие материалы

Комментарии

Your browser is out of date!
Install the latest version of your browser.