Blockchain showcase

Алан-э-Дейл       03.07.2022 г.

ETHEREUM DAPPS

DApps похожи на веб-приложения, однако у них есть несколько отличительных характеристик. В то время как интерфейс может быть на любом языке, DApps должны иметь smart contracts в качестве кода их бэкэнда.

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

Hyperledger Burrow is more like the Redis of Smart Contract Blockchains

Hyperledger Burrow maintainer, Silas Davis, often describes Burrow as the Redis of blockchains because Burrow was built to be a lightweight, efficient, and fast permissioned smart contract machine. By leveraging the hardened and speedy Tendermint protocol for consensus alongside Burrow’s Apache licensed Ethereum Virtual Machine, users have access to one of the fastest codebases available.

Speed in blockchains comes in a number of dimensions. The first dimension is the amount of transactional throughput of the codebase. We have observed in preliminary testing that Hyperledger Burrow can steadily process upwards of 200 transactions per second. This speed dimension for smart contract focused blockchains is largely a misnomer, however, because the speed of processing is strongly linked to the complexity of smart contracts operating on any one blockchains. The second dimension is the speed at which blocks are propagated within the network. Hyperledger Burrow’s blocktime is tunable, but by default produces blocks every two seconds.

The final dimension is less quantifiable but asks the question “when can my other systems rely upon the information within a given block as being final?’ Finality of blocks is a crucial issue — particularly when other business systems rely on information propagated by a blockchain network. Hyperledger Burrow was the first Ethereum style blockchain to offer its users strong finality. Relying upon the Tendermint protocol, Burrow produces a non-forking blockchain. This means that the instant that a block is added to the end of a chain that other business systems will be able to rely upon that information. Finality greatly increases the overall system speed by ensuring that upstream systems can rely on the information within a blockchain instantly.

Not only is Hyperledger Burrow, speedy, but it is also extremely lightweight. We routinely run Burrow nodes on very small cloud instances and even on Raspberry Pi’s. Burrow’s proof of stake consensus protocol is fully byzantine fault tolerant without relying on specialized hardware.

ТРЕБОВАНИЯ К ДЕЦЕНТРАЛИЗОВАННОЙ ПЛАТЕЖНОЙ СЕТИ

Один разработчик или группа под псевдонимом «Сатоши Накамото» создали сеть Биткойн. Это была peer-to-peer (P2P), т.н. одноранговая сеть, в которой пользователи могли отправлять цифровые деньги другим пользователям без какого-либо вмешательства со стороны банков и правительств. Перед разработчиками стояла задача внедрить 4 основных требования, а именно:

  • Сеть P2P должна быть децентрализована и не контролироваться какими-либо участниками.
  • Хакеры не должны иметь возможности похитить конфиденциальную информацию отдельных участников сети.
  • Децентрализованная сеть должна быть стабильной.
  • Валюта является цифровой и не имеет физической формы, и гарантий со стороны правительства. Учитывая это, участники не должны иметь возможность тратить одни и те же цифровые деньги дважды, что называется проблемой двойных расходов.

Smart Contract Runtimes

Before diving into the details of the EVM integration, let’s expand on the concept of a smart contract runtime. In general the runtime refers to what are the languages that are supported by a specific platform. But there are many other considerations that should be weighed in. Due to the nature of blockchain, these runtimes have to be evaluated in a distributed nature. Since many nodes, if not all of them, have to run and store these contracts, the network has to be mindful of the runtimes being supported. Languages affect how computationally intensive an arbitrary contract can be as well as the deterministic nature of them. Though neither is necessarily a limitation, they can place an unfair burden on the contract developer. Another important factor is what languages the contract developers themselves are experienced in. With the emergence of blockchain, there has been an increase in developers that do not have technical backgrounds, so picking up new languages is not always a practical solution. The implications of smart contract runtimes make choosing a blockchain network even more difficult. Through the introduction of an EVM, we hope to make sure that Solidity smart contracts and permissioned networks are not mutually exclusive.

Защита цифровых паролей и конфиденциальных данных

Поддержка HSM (Hardware Security Module) жизненно важна для защиты и управления цифровыми ключами для надежной аутентификации. Hyperledger Fabric предоставляет модифицированный и немодифицированный PKCS11 для генерации ключей, который поддерживает такую функцию, как управление идентификацией, которая нуждается в большей защите. Для сценариев управления идентификацией HSM повышает защиту ключей от взлома и конфиденциальных данных.

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

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

С каналами в Hyperledger Fabric вы можете предоставлять данные, которые необходимы только в разделённом виде, или хранить данные, чувствительные к разделам данных.

Конвертация структур данных

Интерфейс чейнкода предполагает что на вход подается массив массивов байт, каждый из элементов которого является атрибутом функции чейнкода. Для того чтобы в каждом обработчике функции чейнкода не проводить ручной анмаршаллинг данных из массива байт в golang тип данных (int, string, структура, массив) из аргументов вызова функций, в маршрутизаторе CCKit ожидаемые типы данных задаются в момент создания правила роутинга и тип преобразуется автоматически. В примере, который рассматривается далее, функция carGet ожидает аргумент строкового типа, а функция carRegister структуру CarPayload. Аргумент также именуется, что позволяет в обработчике получать его значение из контекста по имени. Пример обработчика будет дан ниже по тексту. Для описания схемы данных чейнкода также может использоваться Protobuf.

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

2017

Уход членов и сокращение финансирования

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

Согласно данным, опубликованным агентством Reuters, биржевые операторы CME Group и Deutsche Boerse решили сократить членство в рамках консорциума, начиная с конца января 2018 года, о чем было объявлено презентации заседания правления, состоявшейся 15 декабря 2017-го.

Блокчейн-консорциум Hyperledger теряет членов и финансирование

CME Group и Deutsche Boerse были главными членами группы, однако теперь они решили ограничиться общим участием.

Reuters сообщает, что главным участникам консорциума предоставляются позиции в совете директоров и им выплачивается сбор в размере $250 тыс. в год. Согласно данным сайта Hyperledger, стоимость членства составляет от $5 до $50 тыс. в зависимости от размера компании.

По данным издания, блокчейн-консорциум R3 также решил отказаться от своего статуса основного члена консорциума в 2018 году, говорится в документах. Представители CME Group и R3 подтвердили, что компании сократили количество своих представителей в консорциуме. В Deutsche Boerse отказались от комментариев.

Согласно сообщению Reuters, потеря финансирования и количество членов Hyperledger происходит на фоне увеличения финансирования криптовалюты и блокчейн-стартапов. 15 декабря 2017 года стоимость биткоина достигла рекордных $18 тыс .на бирже Bitstamp. Несмотря на это, технология блокчейн пока не используется ни в одном по-настоящему крупном проекте.

Ослабевающая поддержка Hyperledger некоторыми крупными членами означает, что крупные компании стали избирательнее в выборе проектов с использованием блокчейн-технологии. Ранее в 2017 году JP Morgan Chase покинул консорциум R3 после ухода Goldman Sachs, Banco Santander и других компаний.

SAP — премиум-участник сообщества блокчейн-технологий Hyperledger

В марте 2017 года стало известно, что SAP вступила в открытый блокчейн-проект для развития корпоративных технологий распределенного реестра. Доминик Хире (Dominik Heere), вице-президент SAP по инновационным разработкам и SAP Innovation Center Network, будет представлять компанию как премиум-участника в Управляющем совете Hyperledger.

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

Circulor

“Circulor is using distributed ledger technology to transform the supply chain for the metals in batteries used within electric vehicles and consumer electronics. Our mission is to help manufacturers ensure the materials they use are not mined using child labour, nor sourced from areas of conflict. We are excited to join Hyperledger because we believe in the efficacy of open-source software development. We also feel that Hyperledger is a thriving and growing community co-developing an enterprise-grade platform, which is familiar to many of our target industrial users.”

Douglas Johnson-Poensgen, CEO of Circulor.

Примеры чейнкодов

Помимо документации можно привести еще несколько примеров чейнкодов:

  • Blockchain insurance app (2018)
  • Marbles
  • Car-lease-demo (2017)s

Реализация чейнкодов в данных примерах довольно многословна и содержит много повторяющейся логики выбора вызываемой функций «маршрутизация»), проверки числа аргументов, json marshalling / unmarshalling:

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

CCKit — библиотека для разработки и тестирования чейнкодов

В библиотеке CCKit обобщаются практики разработки и тестирования чейнкодов. В части разработки расширений чейнкодов как пример использовалась библиотека расширений OpenZeppelin для смарт-контрактов Ethereum. CCKit использует следующие архитектурные решения:

ConsenSys

“At ConsenSys, we are steadfast believers in rigorous standards and governance for open source projects. Hyperledger is a stalwart institution in our space, and has done an exceptional job of bringing alignment, clarity, and collaboration among disparate projects and opening the doors to enterprise adoption. Through our membership in Hyperledger, we’re excited to continue bringing Ethereum, in its public mainnet form as well as via instantiations of private mainnet form as well as via instantiations of private permissioned networks using the technology, to the enterprise community, pushing our vision for Web 3.0 — the decentralized World Wide Web — forward.”

 Joe Lubin, Founder of ConsenSys and Ethereum co-creator

Boring deeper

Burrow is a fully fledged blockchain and smart contract framework. That is, you ought to be able to service the same use cases as with Hyperledger Sawtooth, Fabric, and Besu (whereas Iroha takes a slightly different approach to smart contracts).

The core of Burrow is a custom, fully compliant, Ethereum Virtual Machine (EVM) implementation with an authenticated state (Merkle tree) based on Tendermint consensus (A PBFT consensus variant which we embed as a library). Burrow has a coarse-grain Unix-style model of permissioning baked directly into its EVM implementation. Permissions are for things like SEND, CREATE (a contract), and BOND (become a validator).

There are many other features wrought from
our use of Burrow in the wild, both to run the Agreements Network and from
years of working on use cases when it was still called eris-db.

It is an explicit focus of Burrow to support
running permissioned networks that are, in some sense ‘open to the public.’
There are many shades of grey in terms of network participation with Burrow’s
permissions model; validators may be established on an invite-only basis,
contract creation may be limited to autonomous contracts rather than human
participants, or Burrow could be configured much like permissionless public
Ethereum. We are particularly interested in modes of operation that bridge the
gap between private chains and public permissionless ones. This bridge is why
we value BFT consensus so highly, and why we include quorum-based governance
primitives.

Burrow avoids relying on container
orchestration and virtual machines as part of its basic setup. These
technologies are powerful and can also hide a multitude of sins. Burrow
provides an ergonomic developer experience on bare metal — on your laptop or
server without needing docker or container orchestration in the first instance.
We still have high-quality Kubernetes
support for use in production, but you can also spin up a multiple node
network directly on your laptop. We aim to give a streamlined developer UX and
to help build developer intuition with our tools such as burrow examine, our JSON debug output or our curl-able HTTP info endpoint.

You can use our composable command line tools to spin up a simple chain:

We provide statically linked cross-compiled
binaries for Linux, macOS, and Windows.

We run over a Tendermint BFT consensus that
prioritises correctness and finality and provides good throughput for networks
with several validators in the low 100s. We only expose additional
configuration where it is necessary and try to provide higher level
configuration and sane default to reduce the numbers of levers you need to pull
on.

We provide a smart contract model
exclusively in the Ethereum world view (state lives in buckets called
‘accounts’) and assume the structure provided by the EVM ABI.

Our entire state is modelled in Google’s
Protocol Buffers, which is used in our GRPC layer down to our underlying state
storage.

Модульность¶

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

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

  • Сменный ordering service устанавливает консенсус в последовательности транзакций и затем передает сформированные блоки пирам.
  • Сменный membership service provider ставит в соответствие сущностям сети их криптографические учетные записи.
  • Опциональный peer-to-peer gossip service распространяет блоки, полученные от ordering service, среди пиров.
  • Смартконтракты (‘chaincode’) выполняются внутри контейнерного окружения для изоляции (например, Docker). Они могут быть написаны на стандартных языках программирования, но не имеют прямого доступа к состоянию реестра.
  • Реестр можно настроить так, чтобы поддерживать разные виды DBMS.
  • Сменные политики по подтверждению и валидации (endorsement and validation policies) могут быть настроены независимо для каждого приложения

Meet FireFly

Hyperledger FireFly brings together (1), (2), (3), and (4) to offer a pre-integrated set of runtimes via a highly pluggable framework. Note that FireFly is NOT attempting to replace or invalidate any specific runtime technology, but rather pulls together multiple complementary technologies into a coherent, larger system. Indeed, many of the infrastructure runtimes FireFly relies on are separate open source projects.  Industry consortia globally have been using this technology to accelerate time to value for their production solutions.

Enterprise blockchains are purpose built to deliver (1) with invaluable attributes like global ordering and finality. FireFly will support Hyperledger Fabric, Enterprise Ethereum (such as Quorum and Besu), and will investigate Corda support. (1) also includes global storage providers such as IPFS. FireFly also provides a significant amount of technology for (2) and (3) including cross-party messaging, cross-party private document transfer, and event propagation. All of these runtimes and connectors into the FireFly node. For (4), Hyperledger FireFly also provides a network map and registry that unifies all of the identity and bindings information needed.

In a FireFly network, each member of the network deploys and runs one or more FireFly Nodes. Each Node consists of a FireFly Core application, as well as its dependencies. Each dependency is abstracted from the Core by a modular plugin system, so underlying technologies, such as the database for example, can be changed if necessary.

To jumpstart the community around FireFly, the contributors held a virtual event to introduce the Lab and demo its capabilities:

https://youtube.com/watch?v=videoseries

About the author:

Steve Cerveny is co-founder and CEO of Kaleido. Steve has over fifteen years of experience in emerging technologies building, launching and growing enterprise products in a variety of business and technical roles. Prior to Kaleido, he led product teams at IBM, spearheading the creation of over a dozen cloud services and managed a strategic portfolio of software products. Steve launched the industry’s first blockchain managed service, developing new commercial approaches to meet the unique enterprise demands for privacy and scalability. Steve holds his Bachelor’s and Master’s degrees in Computer Engineering from Case Western and an MBA degree from Duke University.

Защита цифровых паролей и конфиденциальных данных

Поддержка HSM (Hardware Security Module) жизненно важна для защиты и управления цифровыми ключами для надежной аутентификации. Hyperledger Fabric предоставляет модифицированный и немодифицированный PKCS11 для генерации ключей, который поддерживает такую функцию, как управление идентификацией, которая нуждается в большей защите. Для сценариев управления идентификацией HSM повышает защиту ключей от взлома и конфиденциальных данных.

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

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

С каналами в Hyperledger Fabric вы можете предоставлять данные, которые необходимы только в разделённом виде, или хранить данные, чувствительные к разделам данных.

КАК СЕТЬ BITCOIN ПРЕПЯТСТВУЕТ «ДВОЙНОМУ РАСХОДУ»?

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

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

Как только хакер меняет 520-й блок, хэш для этого также меняется. Таким образом, хакер должен изменить 521-й блок. Эта проблема продолжается! К тому времени, когда хакер изменит множество блоков, все в сети узнают об этом, и план провалился провалится!

Чем отличается сеть Ethereum Blockchain?

Виталик Бутерин и его команда создали сеть Ethereum Blockchain, следуя основным принципам сети Биткойн. Он использует блоки такого же типа, сеть P2P, шифрование с открытым ключом и закрытым ключом, а также алгоритм согласования POW. Его родная криптовалюта — Эфир (ETH). Однако, в отличие от просто платежной сети P2P, использующей криптовалюты, блокчейн Ethereum может предложить больше.

Hyperledger Fabric все ещё новая инфраструктура

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

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

Создатели Hyperledger Fabric признают, что многое еще предстоит сделать. Вот, что сказал Крис Ферриса по этому поводу: «Конечно, это не конец. Есть еще много работы. Нам необходимо больше сотрудничества и новых инноваций на всех проектах Hyperledger». Феррис является председателем Технического руководства комитета Hyperledger и техническим директором Open Technology в IBM.

Поддержка сообщества

Сообщество, которое формирует и вносит изменения в Hyperledger Fabric, сегодня очень энергично.

При поддержке таких огромных компаний, как IBM и Toyota, использующих Hyperledger Fabric в своем производстве, сообщество Hyperledger Fabric и его поддержка продолжают расти быстрыми темпами.

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

С другой стороны, знакомые с блокчейном люди обратят внимание на относительно новую и эффективную инфраструктуру

Инфраструктура сети

Узел сети (Peer)

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

На уровне ПО узла сети текущее состояние цепи блоков (world state) может хранится в LevelDB или в CouchDB. Преимуществом CouchDB является поддержка расширенных запросов (rich query), использующих синтаксис MongoDB.

Orderer

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

Orderer не запускает смарт-контракты и не содержит цепь блоков и состояние цепи блоков. На текущий момент (1.3) есть две реализации orderer — solo для разработки и версия основанная на Kafka, обеспечивающая устойчивость к сбоям (crash fault tolerance). Реализация orderer, поддерживающая устойчивость к некорректному поведению некоторой доли участников (Byzantine fault tolerance) ожидается в конце 2018 года.

Сервис идентификации (Membership services)

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

Реализация чейнкода

Чейнкод может рассматриваться как объект, имеющий методы, реализующие определенную бизнес-логику. В отличие от классического ООП у чейнкода не может быть полей — атрибутов. Для работы с состоянием (state), хранение которого обеспечивает блокчейн-нлатформа HLF, используется прослойка , передаваемая при вызове методов Init и Invoke. Она обеспечивает возможность получить аргументы вызова функции и провести изменения в состоянии цепи блоков:

В смарт-контракте Ethereum, разработанном на Solidity, каждому методу соответствует публичная функция. В чейнкоде Hyperledger Fabric в методах Init и Invoke с помощью функции .GetArgs() можно получить аргументы вызова функции в виде массива массивов байт, при этом первый элемент массива при вызове Invoke содержит название функции чейнкода. Т.к. через метод Invoke проходит вызов любого метода чейнкода, можно сказать, что это реализация паттерна front controller.

Например, если рассматривать реализацию стандартного для Ethereum интерфейса токена ERC-20 смарт-контракт должен реализовывать методы:

  • totalSupply()
  • balanceOf(address _owner)
  • transfer(address _to, uint256 _value)

и др. В случае реализации HLF чейнкод в функции Invoke должен уметь обрабатывать случаи, когда первый аргумент вызова Invoke содержит название ожидаемых методов (например, “totalSupply” или “balanceOf”). Пример реализации стандарта ERC-20 можно увидеть здесь.

Use cases and applications

12. Put Hyperledger to work

Now that you’ve learned about all things Hyperledger, you might want to know where it works best. Hyperledger Composer supports production networks in many different areas such as financial services and trade finance, as well as for modeling networks in areas like supply chain and asset tracking. It can also be used in the government and healthcare sector. It is meant to be adaptable to any enterprise use case as defined by the developer.

13. Introducing smart contracts

In the IBM Blockchain Platform, there is a set of sample applications such as letters of credit, commercial paper, vehicle manufacture and marbles that are all meant to demonstrate how the Platform works for a specific use case. These are fully built applications that have smart contracts associated with them. There is a growing community of open source Hyperledger Fabric samples, ranging from streamlining automotive trading to tracking perishable goods.

Гость форума
От: admin

Эта тема закрыта для публикации ответов.