Giter VIP home page Giter VIP logo

hyperledger's Introduction

Hyperledger

Studies

*https://www.hyperledger.org/about

https://www.hyperledger.org/

https://training.linuxfoundation.org/training/blockchain-for-business-an-introduction-to-hyperledger-technologies/#prerequisites

https://www.edx.org/course/blockchain-for-business-an-introduction-to-hyperledger-technologies

https://hbr.org/2017/02/a-brief-history-of-blockchain

https://creativecommons.org/licenses/by-sa/3.0/deed.en

https://commons.wikimedia.org/wiki/File:Bitcoin_Block_Data.png

https://prod-edxapp.edx-cdn.org/assets/courseware/v1/d387060c18e43cb6f676f10c56443ce7/asset-v1:LinuxFoundationX+LFS171x+2T2019+type@asset+block/Centralized_Databases_vs_Blockchain.png

https://www.weforum.org/reports/the-global-risks-report-2018

https://prod-edxapp.edx-cdn.org/assets/courseware/v1/99e70ee58cba3930923df89a997e65be/asset-v1:LinuxFoundationX+LFS171x+2T2019+type@asset+block/Network_Architectures.png

https://prod-edxapp.edx-cdn.org/assets/courseware/v1/7b24ffd61a0fcdc9c147463892a273da/asset-v1:LinuxFoundationX+LFS171x+2T2019+type@asset+block/BLOCKCHAIN_IMMUTABILITY.png

https://prod-edxapp.edx-cdn.org/assets/courseware/v1/ec30b3736f17bdbbc1a7bc6e08380094/asset-v1:LinuxFoundationX+LFS171x+2T2019+type@asset+block/Blockchain_and_Smar_Contracts_-_Flow_Diagram.png

https://www.linkedin.com/pulse/blockchain-consensus-algorithm-proof-of-work-satyakam-chakravarty/

https://en.bitcoin.it/wiki/Proof_of_burn

https://sawtooth.hyperledger.org/docs/core/releases/latest/introduction.html

https://blog.acolyer.org/2015/05/18/practical-byzantine-fault-tolerance/

http://hackingdistributed.com/2016/08/04/byzcoin/

https://crushcrypto.com/what-is-practical-byzantine-fault-tolerance/

https://blockonomi.com/practical-byzantine-fault-tolerance/

https://www.hyperledger.org/wp-content/uploads/2017/08/HyperLedger_Arch_WG_Paper_1_Consensus.pdf

https://www.hyperledger.org/blog/2018/12/03/all-are-welcome-here

https://www.forbes.com/sites/shermanlee/2018/01/22/explaining-directed-acylic-graph-dag-the-real-blockchain-3-0/

https://medium.com/fantomfoundation/an-introduction-to-dags-and-how-they-differ-from-blockchains-a6f703462090

https://cryptoslate.com/beyond-blockchain-directed-acylic-graphs-dag/

https://en.wikipedia.org/wiki/Directed_acyclic_graph

https://www.hyperledger.org/blog/2017/09/12/3431

https://www.hyperledger.org/blog/2018/10/01/growing-the-enterprise-blockchain-ecosystem-through-open-standards-and-open-source-code

https://tendermint.com/docs/introduction/what-is-tendermint.html#what-is-tendermint

https://ec.europa.eu/commission/priorities/justice-and-fundamental-rights/data-protection/2018-reform-eu-data-protection-rules_en

https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32016R0679&from=EN#d1e1374-1-1

https://eur-lex.europa.eu/eli/reg/2016/679/oj

https://gdpr-info.eu/

https://en.wikipedia.org/wiki/Privacy_by_design

https://breachlevelindex.com/

https://iroha.readthedocs.io/en/latest/before_start/architecture.html#block-consensus-yac

https://iroha.readthedocs.io/en/latest/before_start/architecture.html#synchronizer

https://iroha.readthedocs.io/en/latest/before_start/architecture.html#ametsuchi-blockstore

https://iroha.readthedocs.io/en/latest/before_start/architecture.html#world-state-view

https://iroha.readthedocs.io/en/latest/before_start/architecture.html

https://raft.github.io/

https://en.wikipedia.org/wiki/Paxos_(computer_science)

https://sawtooth.hyperledger.org/docs/raft/nightly/master/*

Distributed Ledger Technology (DLT)

A distributed ledger is a type of data structure which resides across multiple computer devices, generally spread across locations or regions. Distributed ledger technology (DLT) includes blockchain technologies and smart contracts. Bitcoin blockchain marks the convergence of a host of technologies, including timestamping of transactions, Peer-to-Peer (P2P) networks, cryptography, and shared computational power, along with a new consensus algorithm.

In summary, distributed ledger technology generally consists of three basic components:

  • A data model that captures the current state of the ledger.
  • A language of transactions that changes the ledger state.
  • A protocol used to build consensus among participants around which transactions will be accepted, and in what order, by the ledger.

Blockchains

A blockchain is a peer-to-peer distributed ledger, forged by consensus, combined with a system for smart contracts and other assistive technologies. Together, these can be used to build a new generation of transactional applications that establish trust, accountability, and transparency at their core, while streamlining business processes and legal constraints. Each block will include one or more transactions. Smart contracts are simply computer programs that execute predefined actions when certain conditions within the system are met. Consensus refers to a system of ensuring that parties agree to a certain state of the system as the true state. One person may transfer ownership of a digital asset, like a cryptocurrency, from one person to another, and that asset will move from one person's wallet to another person's wallet, and then, that transaction will be shown on a blockchain. So, this distributed ledger transaction, such as a payment, will move from peer-to-peer throughout the network, and there's no intermediaries, like a bank, or a payment company, to process this transaction. Blockchain is actually not Bitcoin (cryptocurrency), or vice versa. Blockchain is a distributed ledger. The blockchain then tracks various assets, other than cryptocurrencies, such as Bitcoin. Those transactions are grouped into blocks, and there can be any number of transactions per block. Turns out, nodes or machines on a blockchain network group up these transactions and they send them throughout the network. The process of blockchains syncing up have to do with a concept of consensus - an agreement among the network peers. Eventually, each machine has an exact copy of the blockchain throughout the network.

Blockchain is a specific form or subset of distributed ledger technologies (DLTs), which constructs a chronological chain of blocks, hence the name "block-chain".

A block refers to a set of transactions that are bundled together and added to the chain at the same time.

Blockchains opens up the world of possibilities for solving problems that have plagued for many years. It breaks down to being able to create distributed consensus between mutually distrustful parties, in many ways, allowing to create an instantaneous single source of truth.

With blockchains, can record things in real time, and it provides with sort of an up-to-date accounting of the state of the world. Doing validation in real time, and always knowing the state of the world.

Also applies to every other process in the world where it has to track materials and effort, and money, so on...

Merkle Tree

Also known as a binary hash tree, is a data structure that is used to store hashes of the individual data in large datasets in a way to make the verification of the dataset efficient. It is an anti-tamper mechanism to ensure that the large dataset has not been changed. The word "tree" is used to refer to a branching data structure in computer science.

IMG -> //https://commons.wikimedia.org/wiki/File:Bitcoin_Block_Data.png

Merkle trees are used to summarize all the transactions in a block, producing an overall digital fingerprint of the entire set of transactions, providing a very efficient process to verify whether a transaction is included in a block.

Transactions

The record of an event, cryptographically secured with a digital signature, that is verified, ordered, and bundled together into blocks, form the transactions in the blockchain. In the Bitcoin blockchain, transactions involve the transfer of bitcoins, while in other blockchains, transactions may involve the transfer of any asset or a record of some service being rendered.

A smart contract within the blockchain may allow automatic execution of transactions upon meeting predefined criteria.

Cryptography has a key role to play both in the security, as well as in the immutability of the transactions recorded on blockchains.

For blockchain technologies, cryptography is used to prove that a transaction was created by the right person. It is also used to link transactions into a block in a tamper-proof way, as well as create the links between blocks, to form a blockchain.

Differences Between Blockchains and Databases

A blockchain is a write-only data structure, where new entries get appended onto the end of the ledger. Every new block gets appended to the blockchain by linking to the previous block's "hash". There are no administrator permissions within a blockchain that allow editing or deleting of data.

In a relational database, data can be easily modified or deleted. There are database administrators who may make changes to any part of the data and/or its structure.

Blockchains were designed for decentralized applications, whereas relational databases, in general, were originally designed for centralized applications, where a single entity controls the data.

IMG -> https://prod-edxapp.edx-cdn.org/assets/courseware/v1/d387060c18e43cb6f676f10c56443ce7/asset-v1:LinuxFoundationX+LFS171x+2T2019+type@asset+block/Centralized_Databases_vs_Blockchain.png

Types of Blockchains

A blockchain can be both permissionless (like Bitcoin or Ethereum) or permissioned (like the different Hyperledger blockchain frameworks).

A permissionless blockchain is also known as a public blockchain, because anyone can join the network.

A permissioned blockchain, as known as private blockchain, requires pre-verification of the participating parties within the network, and these parties are usually known to each other.

Peer-to-Peer Network Architecture

Peer-to-peer (P2P) networks consist of computer systems which are directly connected to each other via the Internet, without a central server.

Peers contribute to the computing power and storage that is required for the upkeep of the network. P2P networks are generally considered to be more secure than centralized networks, as they do not have a single point of attack, as in the case of a server-based network, where the security of the entire network can be compromised if the central server is successfully attacked.

Permissionless P2P systems do not require a set amount of peers to be online and are generally slower. Permissioned P2P networks have to guarantee uptime and require a high level of quality of service on the communication links.

IMG -> https://prod-edxapp.edx-cdn.org/assets/courseware/v1/99e70ee58cba3930923df89a997e65be/asset-v1:LinuxFoundationX+LFS171x+2T2019+type@asset+block/Network_Architectures.png

A blockchain network is a group of computers that informally are organized in a Peer-to-Peer architecture. Consensus is a process whereby the peers synchronize the data on the blockchain.

Immutability of Data

Once a transaction is written onto the blockchain, no one can change it, or, at least, it would be extremely difficult to change it, it is extremely hard to change without collusion, and if you try, it's extremely easy to detect the attempt.

It is extremely hard to change the transactions in a blockchain, because each block is linked to the previous block by including the previous block's hash. This hash includes the Merkle root hash of all the transactions in the previous block. If a single transaction were to change, not only would the Merkle root hash change, but so too would the hash contained in the changed block. In addition, each subsequent block would need to be updated to reflect this change.

IMG -> https://prod-edxapp.edx-cdn.org/assets/courseware/v1/7b24ffd61a0fcdc9c147463892a273da/asset-v1:LinuxFoundationX+LFS171x+2T2019+type@asset+block/BLOCKCHAIN_IMMUTABILITY.png

Blockchain Applications

Applications built on top of a blockchain provide a gateway to accessing information that sits on that blockchain. In other words, clients/users interact with the blockchain through applications.

Smart Contracts

Computer protocols used to facilitate, verify, or enforce the negotiation of a legal contract. A smart contract is a phrase to describe computer code. Smart contracts facilitate the exchange of value, including money, content, property, or shares between a fixed number of parties.

Smart contracts are simply computer programs that execute predefined actions when certain conditions within the system are met. Smart contracts provide the language of transactions that allow the ledger state to be modified. They can facilitate the exchange and transfer of anything of value (e.g. shares, money, content, property).

IMG -> https://prod-edxapp.edx-cdn.org/assets/courseware/v1/ec30b3736f17bdbbc1a7bc6e08380094/asset-v1:LinuxFoundationX+LFS171x+2T2019+type@asset+block/Blockchain_and_Smar_Contracts_-_Flow_Diagram.png

Consensus Algorithms

Consensus in the network refers to the process of achieving agreement among the network participants as to the correct state of data on the system. Consensus leads to all nodes sharing the exact same data. A consensus algorithm, hence, does two things:

  • It ensures that the data on the ledger is the same for all the nodes in the network.
  • Prevents malicious actors from manipulating the data.

The consensus algorithm varies with different blockchain implementations.

There are variety of consensus algorithms, like the Proof of Stake, Proof of Burn, Proof of Capacity, Proof of Elapsed Time, and many others, depending on their unique requirements.

Proof of Work (PoW)

The Proof of Work consensus algorithm involves solving a computational challenging puzzle in order to create new blocks. Colloquially, the process is known as 'mining', and the nodes in the network that engage in mining are known as "miners". The incentive for mining transactions lies in economic payoffs, where competing miners are rewarded.

Proof-of-work (PoW) is the outcome of a successful mining process and, although the proof is hard to create, [it] is easy to verify.

PoW requires a huge amount of energy to be expended, given the computationally heavy algorithm. PoW has a high latency of transaction validation, and the concentration of mining power is located in countries where electricity is cheap. In terms of the network security, PoW is susceptible to the "51% attack", which refers to an attack on a blockchain by a group of miners controlling more than 50% of the network's computing power.

Proof of Stake (PoS)

Proof of Stake algorithm is a generalization of the Proof of Work algorithm. In PoS, the nodes are known as the "validators" and, rather than mining the blockchain, they validate the transactions to earn a transaction fee. There is no mining to be done, as all coins exist from day one. Nodes are randomly selected to validate blocks, and the probability of this random selection depends on the amount of stake held. if node X owns 2 coins and node Y owns 1 coin, node X is twice as likely to be called upon to validate a block of transactions.

The specific implementation of PoS can vary. Instances include Proof of Deposit and Proof of Burn. The PoS algorithm saves expensive computational resources that are spent in mining under a PoW consensus regime.

Proof of Deposit:

  • Is an improved version of original Proof-of-Stake idea. Here, each validator node has to pay some security deposit to earn the right to create new blocks. If a validator node produces an invalid block, it is penalised. Its security deposit may be forfeited and right to create blocks curtailed.

Proof of Burn:

  • Is a method for distributed consensus and an alternative to Proof of Work and Proof of Stake. It can also be used for bootstrapping one cryptocurrency off of another. The idea is that miners should show proof that they burned some coins - that is, sent them to a verifiably unspendable address. This is expensive from their individual point of view, just like proof of work; but it consumes no resources other than the burned underlying asset.

Proof of Elapsed Time (PoET)

Developed by Intel, the Proof of Elapsed Time consensus algorithm emulates the Bitcoin-style Proof of Work. Hyperledger's Sawtooth implementation is an example of PoET at work. Instead of competing to solve the cryptographic challenge and mine the next block, as in the Bitcoin blockchain, the PoET consensus algorithm is a hybrid of a random lottery and first-come-first-serve basis. In PoET, each validator is given a random wait time.

The validator with the shortest wait time for a particular transaction block is elected the leader. This "leader" gets to create the next block on the chain.

Simplified Byzantine Fault Tolerance (SBFT)

The Simplified Byzantine Fault Tolerant consensus algorithm implements an adopted version of the Practical Byzantine Fault Tolerant (PBFT) algorithm.

The basic idea involves a single validator who bundles proposed transactions and forms a new block. The validator is a known party, given the permissioned nature of the ledger. Consensus is achieved as a result of a minimum number of other nodes in the network ratifying the new block. In order to be tolerant of a Byzantine fault, the number of nodes that must reach consensus is 2f+1 in a system containing 3f+1 nodes, where f is the number of faults in the system. For example, if we have 7 nodes in the system, then 5 of those nodes must agree if 2 of the nodes are acting in a faulty manner.

Practical Byzantine Fault Tolerance:

  • Is an algorithm that optimizes aspects of Byzantine Fault Tolerance (in other words, protection against Byzantine faults) and has been implemented in several modern distributed computer systems, including some blockchain platforms. The pBFT model primarily focuses on providing a practical Byzantine state machine replication that tolerates Byzantine faults (malicious nodes) through an assumption that there are independent node failures and manipulated messages propagated by specific, independent nodes. The algorithm is designed to work in asynchronous systems and is optimized to be high-performance with an impressive overhead runtime and only a slight increase in latency.

Proof of Authority (PoA)

Proof-of-Authority (PoA) is a consensus algorithm which can be used for permissioned ledgers. It uses a set of "authorities", which are designated nodes that are allowed to create new blocks and secure the ledger. Ledgers using PoA require sign-off by a majority of authorities in order for a block to be created.

Hyperledger

Hyperledger is an open source effort created to advance cross-industry blockchain technologies. Hosted by The Linux Foundation, it is a global collaboration of members from various industries, including finance, banking, Internet of Things (IoT), supply chain, manufacturing, healthcare and more. Hyperledger boasts a host of enterprise-ready solutions. Hyperledger is about communities of software developers building blockchain frameworks and platforms.

Hyperledger is an umbrella of open source projects, some of which are blockchain distributed ledger frameworks such as Fabric, Sawtooth, and Iroha. Hyperledger may be thought of as an open system for marketplaces, including decentralized data sharing networks and digital communities.

Hyperledger Blockchains: Permissioned or Permissionless?

Hyperledger blockchains are generally permissioned blockchains, which means that the parties that join the network are authenticated and authorized to participate on the network. Hyperledger’s main goal is to create enterprise grade, open source, distributed ledger frameworks and code bases to support business use cases.

Advantages of Using a Permissioned Blockchain over a Permissionless Blockchains

In an permissionless blockchains, anyone can join the network, as well as write and read transactions. The actors in the system are not known, which means there could be some malicious actors within the network.

Hyperledger reduces these security risks and ensures that only the parties that want to transact are the ones that are part of the transaction and, rather than displaying the record of the transactions to the whole network, they remain visible only to the parties involved. Permissioned blockchains offer more efficient transaction performance, thus being highly scalable, and have a clearly defined governance structure.

Chain Core

Chain Core is an enterprise permissioned blockchain system, created by chain.com, has initially been designed for financial service institutions, and for things like securities, bonds, derivatives, gift cards, loyalty points, and currencies. Their company has strong ties with Visa, Citigroup, Capital One, Nasdaq, etc...

Corda

The Corda distributed ledger platform is designed to record, manage, and automate legal agreements between businesses. It was created by the R3 company, which is a consortium of over a hundred global financial institutions. Launched in 2016, Corda is an open source distributed ledger platform, which features a blockchain-style P2P network; however, it is not a blockchain platform. Unlike blockchains, which involve global availability of data across the network and third party validators, Corda only allows information access and validation functions to parties actually involved in the transaction.

Quorum

Quorum is a permissioned implementation of Ethereum (a fork of the Ethereum public blockchain), which supports data privacy, uses a voting-based consensus algorithm to facilitate an enterprise-focused distributed ledger and smart contract platform. Quorum achieves this data privacy through allowing data visibility on need-to-know basis by a voting-based consensus algorithm. Interestingly, Quorum was created and open sourced by JPMorgan. This open source blockchain platform is designed to support "both transaction-level privacy and network-wide transparency".

IOTA

Is an open source permissionless distributed ledger technology that has been around since 2015; it has a cryptocurrency called mIOTA. "It is the first cryptocurrency that provides the whole ecosystem based on blockless blockchain" to enable machine-to-machine (M2M) transactions.

IOTA, however, is more than just a cryptocurrency. Essentially, the platform entails a generalization of the blockchain protocol (the technology called Tangle) that sits at the backend of the IOTA platform. The platform uses a Decentralized Acyclic Graph (DAG) instead of a blockchain to store its ledger.

Instead of paying miners to validate the transactions, the architecture of the network involves peer-based validation. We can think of a simple analogy, that of a teacher grading students' homework: the students are the clients/users in the Bitcoin protocol, and the teacher is the miner/validator. Tangle technology asks students (users) to grade each other's homework, making the need for a teacher (external validator) redundant, and avoiding expenses related to the teacher's/validator's work. This allows the platform to be completely free of cost, without facing the scaling challenges that are inherent in the first generation of blockchains.

IOTA focuses mainly on enabling the emerging Internet of Things (IoT), but also plans to go beyond this, on being the transaction settlement and data integrity layer for the Internet of Everything (IoE).

***DAG - Is a directed graph data structure that uses a topological ordering. The sequence can only go from earlier to later. DAG is often applied to problems related to data processing, scheduling, finding the best route in navigation, and data compression.

directed acyclic graph (DAG) is a finite directed graph with no directed cycles. That is, it consists of finitely many vertices and edges (also called arcs), with each edge directed from one vertex to another, such that there is no way to start at any vertex v and follow a consistently-directed sequence of edges that eventually loops back to v again. Equivalently, a DAG is a directed graph that has a topological ordering, a sequence of the vertices such that every edge is directed from earlier to later in the sequence.

A directed graph (or digraph) is a graph that is made up of a set of vertices connected by edges, where the edges have a direction associated with them. IMG -> https://upload.wikimedia.org/wikipedia/commons/a/a2/Directed.svg

A directed cycle graph is a directed version of a cycle graph, with all the edges being oriented in the same direction. IMG -> https://upload.wikimedia.org/wikipedia/commons/5/50/DC8.png

A vertex (plural vertices) or node is the fundamental unit of which graphs are formed: an undirected graph consists of a set of vertices and a set of edges (unordered pairs of vertices), while a directed graph consists of a set of vertices and a set of arcs (ordered pairs of vertices). IMG -> https://upload.wikimedia.org/wikipedia/commons/5/5b/6n-graf.svg IMG -> https://upload.wikimedia.org/wikipedia/commons/2/2f/Small_Network.png

An edge is (together with vertices) one of the two basic units out of which graphs are constructed. Each edge has two vertices to which it is attached, called its endpoints. Edges may be directed or undirected; undirected edges are also called lines and directed edges are also called arcs or arrows. In an undirected simple graph, an edge may be represented as the set of its vertices, and in a directed simple graph it may be represented as an ordered pair of its vertices. An edge that connects vertices x and y is sometimes written xy.

A topological sort or topological ordering of a directed graph is a linear ordering of its vertices such that for every directed edge uv from vertex u to vertex v, u comes before v in the ordering. For instance, the vertices of the graph may represent tasks to be performed, and the edges may represent constraints that one task must be performed before another; in this application, a topological ordering is just a valid sequence for the tasks. A topological ordering is possible if and only if the graph has no directed cycles, that is, if it is a directed acyclic graph (DAG). Any DAG has at least one topological ordering, and algorithms are known for constructing a topological ordering of any DAG in linear time.

IMG -> https://upload.wikimedia.org/wikipedia/commons/c/c6/Topological_Ordering.svg IMG -> https://upload.wikimedia.org/wikipedia/commons/f/f8/Transitive_Closure.svg***

-------------------------------------------------------------------------

Hyperledger (Navroop Sahdev)

Hyperledger is an open source effort created to advance cross-industry blockchain technologies. It's a global collaboration hosted by The Linux Foundation that encompasses various industries and organizations worldwide.

Hyperledger works as an operating system for marketplaces, data sharing networks, microcurrencies, and decentralized digital communities. A shared goal is to significantly reduce the cost and complexity of doing business.

Hyperledger blockchains are permissioned blockchains, which means that the parties that join the network are generally authenticated via an identity module, and essentially, Hyperledger blockchains are specifically designed to be enterprise solutions.

Hyperledger reduces 'permissionless blockchain' security risks, and ensures that only the parties that want to transact are the ones that are part of the transaction.

Hyperledger provides all the capabilities of blockchain architecture, data privacy, information sharing, immutability, with a full stack of security protocols, all for the enterprise.

Hyperledger

Hyperledger incubates and promotes a range of business blockchain technologies, including distributed ledger frameworks, smart contract engines, client libraries, graphical interfaces, utility libraries, and sample applications. Hosted by The Linux Foundation, collaborators include industry leaders in technology, finance, banking, supply chain management, manufacturing, and IoT.

As of May 2019, there are 14 projects in the Hyperledger greenhouse, six of which are distributed ledger frameworks. The other eight projects are tools that support these frameworks. IMG -> https://www.hyperledger.org/wp-content/uploads/2019/09/HL_Greenhouse_Current_091119.png

Hyperledger provides an alternative to the cryptocurrency-based blockchain model, and focuses on developing blockchain frameworks and tools to support global enterprise solutions. The focus of Hyperledger is to provide a transparent and collaborative approach to blockchain development.

Comparing Hyperledger with Bitcoin and Ethereum

The following table explores the differences between Hyperledger's permissioned distributed ledgers and the Bitcoin and Ethereum permissionless blockchains. If you are considering blockchain solutions for your business requirements, it is important to pay attention to all these elements and weigh in on those that are most important for your use case.

IMG -> Pictures/hyperledgervsbtcvseth.png

***Sawtooth can be configured to be permissionless.

Key Hyperledger consensus protocols are Apache Kafka in Hyperledger Fabric, PoET and RAFT in Hyperledger Sawtooth, RBFT (Plenum) in Hyperledger Indy, Tendermint in Hyperledger Burrow, and Yet Another Consensus (YAC) in Hyperledger Iroha. For more details, see the Hyperledger Architecture, Volume 1 paper (https://www.hyperledger.org/wp-content/uploads/2017/08/Hyperledger_Arch_WG_Paper_1_Consensus.pdf).**

Hyperledger Goals

Hyperledger has taken a leadership role to develop cross-industry standards and provide a neutral space for software collaboration. The financial services industry, in particular, is witnessing an unprecedented level of collaboration between institutions that have traditionally been competitors. The advent of a new foundational or infrastructural technology like the blockchain - much like the Internet - requires collaboration of various actors in order to realize the full benefits of the technology. Unless all actors use a certain standard, the pace of technological dissemination will continue to be slow. Technological adoption is characterized by network effects, where the costs decrease with the increase in use of a certain technology. Since shifting to distributed ledger technology involves significant costs, open source software, communities and ecosystems that develop around these have a significant part to play.

IMG -> https://prod-edxapp.edx-cdn.org/assets/courseware/v1/91890fc035a1199d4480f76b6fc743eb/asset-v1:LinuxFoundationX+LFS171x+2T2019+type@asset+block/Hyperledger_Goals.jpg

Blockchain for Business

Hyperledger is a unique platform that is developing permissioned distributed ledger frameworks specifically designed for enterprises, including those in industries with strong compliance requirements. Enterprise use cases require capabilities such as scalability and throughput, built-in or interoperable identity modules for the parties involved in a transaction or a network, or even access to regulators who can access all data in the ledger as read-only to ensure compliance. The latter is particularly important because, regardless of the innovation, it has to operate within the current regulatory framework, as well as comply with any new rules that come into place specifically targeted at blockchain technologies.

Components of Hyperledger Frameworks

Hyperledger business blockchain frameworks are used to build enterprise blockchains for a consortium of organizations. Hyperledger frameworks include:

  • An append-only distributed ledger.
  • A consensus algorithm for agreeing to changes in the ledger.
  • Privacy of transactions through permissioned access.
  • Smart contracts to process transaction requests.

IMG -> https://prod-edxapp.edx-cdn.org/assets/courseware/v1/0747265232da64643d21679294cbbe19/asset-v1:LinuxFoundationX+LFS171x+2T2019+type@asset+block/Components_of_blockchain.jpg

Hyperledger Burrow

Hyperledger Burrow is a modular blockchain framework in the Hyperledger greenhouse with a permissioned smart contract interpreter, developed partly to the specifications of the Ethereum Virtual Machine. Smart contracts provide the base functionality and computational muscle within blockchain networks. Smart contracts are written into lines of code, and distributed across blockchain networks. They can be configured to manage processes, exchange value, or perform calculations, all without intermediaries. Because of its lightweight and fast smart contract design, and the Byzantine fault tolerant consensus algorithm with transaction finality, Burrow is optimized for sharing processes across organizations. Burrow operates as Hyperledger's library for Ethereum Virtual Machine-based smart contracts. If you wrote Solidity contracts for the public Ethereum network, Hyperledger Burrow allows you to bring those smart contracts over to Hyperledger. Burrow helps organizations better meet their cross-functional business needs and opens the door for other Hyperledger projects to incorporate the Ethereum Virtual Machine into their platforms.

Burrow is an implementation of the Ethereum Virtual Machine and Ethereum transaction mechanics, with additional features for a name-registry, permissions, and native contracts, and an alternative blockchain API. It uses Tendermint as its consensus engine, and provides a particular application state. Hyperledger Burrow is a permissionable smart contract machine that provides a "modular blockchain client with a permissioned smart contract interpreter partially developed to the specification of the Ethereum Virtual Machine (EVM)". Hyperledger Burrow components are:

  • Consensus Engine - Hyperledger Burrow uses the Byzantine fault-tolerant Tendermint protocol to order and finalize transactions
  • The API Gateway provides interfaces for systems integration and user interfaces
  • The Smart Contract Application engine facilitates integration of complex business logic (maintaining the networking stack between the nodes and ordering transactions)
  • Permissioned Ethereum Virtual Machine - it is built to observe the Ethereum operation code specification, and asserts the correct permissions have been granted
  • Application Binary Interface (ABI) - transactions must be formulated in a binary format, which is processed by the blockchain node.
  • The Application Blockchain Interface (ABCI) provides interface specification for the consensus engine and smart contract application engine to connect.

***Tendermint - Is software for securely and consistently replicating an application on many machines. Tendermint works even if up to 1/3 of machines fail in arbitrary ways, every non-faulty machine sees the same transaction log and computes the same state. Secure and consistent replication is a fundamental problem in distributed systems; it plays a critical role in the fault tolerance of a broad range of applications, from currencies, to elections, to infrastructure orchestration, and beyond.

**The ability to tolerate machines failing in arbitrary ways, including becoming malicious, is known as Byzantine fault tolerance (BFT).**The theory of BFT is decades old, but software implementations have only became popular recently, due largely to the success of "blockchain technology" like Bitcoin and Ethereum. Blockchain technology is just a reformalization of BFT in a more modern setting, with emphasis on peer-to-peer networking and cryptographic authentication. The name derives from the way transactions are batched in blocks, where each block contains a cryptographic hash of the previous one, forming a chain. In practice, the blockchain data structure actually optimizes BFT design.

Tendermint consists of two chief technical components: a blockchain consensus engine and a generic application interface. The consensus engine, called Tendermint Core:

  • Ensures that the same transactions are recorded on every machine in the same order. The application interface, called the Application BlockChain Interface (ABCI):
  • Enables the transactions to be processed in any programming language.

Unlike other blockchain and consensus solutions, which come pre-packaged with built in state machines (like a fancy key-value store, or a quirky scripting language), developers can use Tendermint for BFT state machine replication of applications written in whatever programming language and development environment is right for them.***

Hyperledger Fabric

Hyperledger Fabric is an enterprise-grade, permissioned distributed ledger platform in the Hyperledger greenhouse that offers modularity and versatility for a broad set of industry use cases. The modular architecture for Fabric accommodates the diversity of enterprise use cases through plug-and-play components, such as consensus, privacy, and membership services.

One of the many compelling Fabric features is the enablement of a network of networks. Members of a network work together, but because businesses need some of their data to remain private, they often maintain separate relationships within their networks. Rather than an open, permissionless system, Fabric offers a modular, scalable and secure platform that supports private transactions and confidential contracts.

Fabric helps members manage confidential obligations to each other without first passing it through a central authority. That way, personal data isn't available to the entire network. If a member is not an agreed-upon party, the transaction shouldn't appear on their ledger. This architecture allows for solutions developed with Fabric to be adapted for any industry, thus ushering in a new era of trust, transparency, and accountability for businesses.

Hyperledger Fabric is an open source, production ready, permissioned blockchain framework implementation that was designed to serve as a foundation for developing applications or solutions with a modular architecture.

Key characteristics of Hyperledger Fabric are:

  • High-performance, secure, permissioned blockchain network.
  • Features powerful container technology to host any mainstream language for smart contracts development.
  • Code written in Go, chaincode written in Go, Javascript, or Java, SDKs written in Node.js, Java, Go, RERT and Python.

Its modular architecture allows components such as consensus and membership services to be plug-and-play. One of the key advantages of Hyperledger Fabric is that it allows entities to conduct confidential transactions without passing information through a central authority. This is accomplished through different channels that run within the network, as well as the division of labor that characterizes the different nodes within the network.

Hyperledger Grid

Hyperledger Grid is a platform for building supply chain solutions that include distributed ledger components. It's an ecosystem of technologies, frameworks, and libraries that work together, allowing application developers to chose which components are best for their industry or market model. It intends to:

  • Produce reference implementations of supply chain-centric data types, data models, and smart contract-based business logic based on existing open standards and industry best practices.
  • Provide authentic, practical ways to combine components from the Hyperledger Stack into a single, effective business solution.

Hyperledger Indy

Hyperledger Indy, one of the frameworks in the Hyperledger greenhouse, is a distributed ledger that provides tools, libraries, and reusable components for creating and using independent decentralized identities. As the world becomes more interconnected, individuals are disclosing personal information creating multiple usernames and passwords and leaving digital traces across platforms.

Indy represents the idea of a self-sovereign identity, which would dispose of the need for multiple logins and passwords. Rooted on a distributed ledger, this digital identity interoperates across different domains, applications and organizational silos. Additionally, Indy puts identity control in the hands of the user, not the organization. Individuals will not have to rely on big organizations to store and share their personal data. Instead, the user controls what data they want to provide access to and for how long.

Indy provides strong privacy guarantees because private data is not written on the ledger, but exchanged over peer-to-peer encrypted connections. A unique ID for each relationship ensures that data doesn't leak from one relationship to the next. Indy also ensures that both individuals and institutions always know who they are dealing with. Companies can store less personal data and spend less time and money trying to protect it. This combination of privacy and trust enables meaningful interactions. By providing a solution for digital credentials that preserves privacy, Indy makes self-sovereign identities possible and practical for individuals, institutions and Internet of Things.

Hyperledger Indy is a distributed ledger purpose-built for doing distributed identity, allowing to have a route of trust to manage the keys, schemas, proofs, and other information needed, in order to enable trusted peer interactions between different identities, as stored on a Hyperledger Indy blockchain instance.

Identity it belongs to user, and only user, and none can pull the plug on user. And user can use that identity to manifest different correlatable pieces of data between user and other identities user want to interact with, without leaking private information or disclosing information that user don't want shared across all those different aspects of who user are. When user control its own identity, it makes it so that user are also a party to the kinds of data sharing, claims, and proofs that can be made about user, as information is shared across all the different interactions user might do online.

Hyperledger Indy is a distributed ledger purpose-built for decentralized identity, that upholds the standards mandated by GDPR (General Data Protection Regulation). Hyperledger Indy "provides tools, libraries, and reusable components for providing digital identities rooted on blockchains or other distributed ledgers so that they are interoperable across administrative domains, applications, and any other silo."

GDPR is - Regulation (EU) 2016/679 of the European Parliament and of the Council of 27 April 2016 on the protection of natural persons with regard to the processing of personal data and on the free movement of such data, and repealing Directive 95/46/EC (General Data Protection Regulation) (Text with EEA relevance)

Since 2013, over 14 billion data records were lost or stolen. What is striking is that, out of these, only 4% were encrypted, and hence, rendered useless after being stolen (also called "secure breaches"). Satistics: https://breachlevelindex.com/

IMG -> https://prod-edxapp.edx-cdn.org/assets/courseware/v1/a7fbe5fb8ab08e8db000c4c1374d7476/asset-v1:LinuxFoundationX+LFS171x+2T2019+type@asset+block/Screen_Shot_2019-06-12_at_1.37.09_PM.png

One of the key principles of Hyperledger Indy is its "privacy by design" approach. Given the immutable nature of the DLT (Distributed Ledger Technology), it is all the more important that digital identities be handled with the utmost care, keeping human values front and center.

Privacy by design - Calls for privacy to be taken into account throughout the whole engineering process. The concept is an example of value sensitive design, i.e., to take human values into account in a well-defined manner throughout the whole process and may have been derived from this.

Hyperledger Iroha

Hyperledger Iroha is a permissioned blockchain framework in the Hyperledger greenhouse designed for simple and easy management of digital assets. Iroha helps bring greater trust and reliability into business. Only participants granted access to a Hyperledger Iroha network may join the network, query data, or perform commands. Iroha' robust permission system ensures that all interactions within the system are secure and controlled. Iroha's features are helpful for creating applications for end users.

With Iroha, a business can create and manage simple or complex digital assets, from cryptocurrency to personal medical data. Iroha's built-in smart contracts, called commands, allow developers to incorporate blockchain into their business processes. Iroha presents users with lower complexity and lower risk by allowing them to perform common functions using built-in commands. This simplifies tasks, improves performance efficiency, and allows less room for error. Compared to other platforms, these commands also free up developers by ridding them of the need to write complex smart contracts.

In Iroha, can set up a network, create assets, and make a transaction in about 5 minutes time. Iroha's consensus algorithm allows full Byzantine fault tolerance with no mining, making it ideal for businesses that require verifiable data consistency at low cost. Users are able to interact with Iroha similarly to how they would with a client server.

Hyperledger Iroha is a free, open source blockchain framework, is a simple blockchain platform that can be used to make trusted, secure, and fast applications that leverage the power of permission-based blockchain with Byzantine fault-tolerant consensus.

Among its key features are:

  • Simple deployment and maintenance
  • Variety of libraries for developers
  • Role-based access control
  • Modular design, driven by command-query separation principle
  • Ready-to-use set of commands and queries
  • Multi-signature transactions
  • Uses a high-performance Byzantine fault-tolerant consensus algorithm called YAC (Yet Another Consensus).

***YAC is consensus algorithm called Yet Another Consensus, which is user by Iroha. Distinctive features of YAC algorithm are its scalability, performance and Crash fault tolerance. To ensure consistency in the network, if there are missing blocks, they will be downloaded from another peer via Synchronizer. Committed blocks are stored in Ametsuchi block storage.

Synchronizer - Is a part of consensus. Adds missing blocks to peers’ chains (downloads them from other peers to preserve consistency).

Ametsuchi - Iroha storage component, which stores blocks and a state generated from blocks, called World State View. There is no way for the client to directly interact with Ametsuchi.

World State View - As know as WSV, it reflects the current state of the system, can be considered as a snapshot. For example, WSV holds information about an amount of assets that an account has at the moment but does not contain any info history of transaction flow.***

According to the Hyperledger Iroha documentation, "it can be used to manage digital assets, identity and serialized data, and can be useful for applications such as interbank settlement, central bank digital currencies, payment systems, national IDs, and logistics, among others".

Hyperledger Iroha emphasizes mobile application development with client libraries for Android and iOS, making it distinct from other Hyperledger frameworks. Inspired by Hyperledger Fabric, Hyperledger Iroha seeks to complement Hyperledger Fabric and Hyperledger Sawtooth, while providing a development environment for C++ developers to contribute to Hyperledger.

Hyperledger Sawtooth

Hyperledger Sawtooth design philosophy targets development of decentralized ledgers and secure, scalable smart contracts. The Sawtooth security model uses a single node type, which simplifies deployment. Plenty of examples exist for both on-prem and cloud installations.

On chain governance lets enterprises manage all aspects of the Sawtooth network with the network itself. Participants add policies and agree on configuration changes using Sawtooth transactions.

In fact, even consensus algorithms can be changed real time in a running network: Start with Raft, them harden with PBFT (Practical Byzantine Fault Tolerant), or switch to Proof of Elapsed Time as the network grows.

***Raft is a consensus algorithm that is designed to be easy to understand. It's equivalent to Paxos in fault-tolerance and performance. The difference is that it's decomposed into relatively independent subproblems, and it cleanly addresses all major pieces needed for practical systems. We hope Raft will make consensus available to a wider audience, and that this wider audience will be able to develop a variety of higher quality consensus-based systems than are available today.

Paxos is a family of protocols for solving consensus in a network of unreliable processors (that is, processors that may fail). The Paxos family of protocols includes a spectrum of trade-offs between the number of processors, number of message delays before learning the agreed value, the activity level of individual participants, number of messages sent, and types of failures. Although no deterministic fault-tolerant consensus protocol can guarantee progress in an asynchronous network (a result proved in a paper by Fischer, Lynch and Paterson[6]), Paxos guarantees safety (consistency), and the conditions that could prevent it from making progress are difficult to provoke.***

Sawtooth software development kits cover a wide variety of languages. The smart contract model supports deploying any and all of these languages alongside each other. Ethereum contracts, for example, can be deployed alongside WebAssembly and Java contracts.

Sawtooth distributed ledger technology can integrate with existing internal databases by keeping internal relational and key/value databases in sync with the Sawtooth network. Whether you are using Sawtooth for healthcare, supply chain, or financial services, your internal systems can make use of all the data managed on the Sawtooth blockchain.

Hyperledger Sawtooth, is an open source blockchain framework that utilizes a highly modular platform for building, deploying, and running distributed ledger applications and networks, making smart contracts safe, particularly for enterprise use.

Some of its key characteristics are:

  • Uses pluggable consensus algorithms, which allows consensus to be changed by transaction on the fly .
  • Smart contracts can be written in almost any language.
  • Parallel transaction execution for added throughput, while at the same time preventing double spending.
  • Ethereum contract support via Hyperledger Burrow integration.
  • No central authority or implementation. This increases security as there is no centralized service that could leak transaction patterns or any other confidential information.
  • Supports creating and broadcasting events.

Distributed ledger solutions built with Hyperledger Sawtooth can utilize various consensus algorithms based on the size of the network. Hyperledger Sawtooth is designed for versatility, with support for both permissioned and permissionless deployments. This technology simplifies blockchain application development and deployment by clearly separating the core system from the application domain.

Sawtooth is designed so that it grows the size of the network, can change the consensus mechanism on the fly... A unique characteristic of Sawtooth amongst all of the other ledgers is, can submit as a transaction and then have a policy within the network to accept that new consensus, and then, in that network can move from a PBFT-style consensus to something like PoET, or some sort of random leader election consensus... It allows to have tens, or hundreds, or potentially thousands of different nodes on the network, and can not beat that kind of availability and integrity guarantees, or that kind of flexibility for a network that needs to be up for years.

///////////////////////////

hyperledger's People

Contributors

sistemaon avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.