Hyperledger vs Corda Pt.1

Tony Kent
Chain.Cloud company blog
5 min readDec 30, 2016

This is a first article in our “Hyperledger vs Corda” series. In this one, we are going to talk only about the similarities of these two systems.

Hyperledger Project

When some ask, “What is Hyperledger?”, the answer is usually “Do you mean the project called Hyperledger (more than 80 companies) by The Linux Foundation, or do you mean one of the technologies built by that project?”.

The first is just a group of companies, the second is usually a bunch of code.
Hyperledger Project core projects are: Hyperledger Fabric (IBM), Iroha (Soramitsu), and Sawtooth Lake (Intel).

Just 2 days ago (the 28th of December, 2016) Hyperledger Project announced addition of 8 new members.

Even more interesting — the R3 Corda will donate its code to Hyperledger Project. One more cool DLT technology that is open-sourced and supported by a great community.

What we do next is a comparison of the core technologies.

Hyperledger Fabric

From Wikipedia:

In early 2016, the Hyperledger Project started accepting proposals for codebases and other technology to incubate, for potential inclusion as core elements of Hyperledger. One of the first proposals was for a codebase combining previous work by Digital Asset Holdings, Blockstream’s libconsensus, and IBM’s OpenBlockchain. This was later named Fabric.

Hyperledger Fabric has taken a different approach than many other blockchain systems by removing what they consider unnecessary features and providing only shared replicated ledgers. In their view, this core technology, the distributed ledger, can then be integrated into existing systems to allow banks and financial institutions to settle in real time, mitigating risk and the need for expensive reconciliation without the need for a central party.

Consensus Algorithm

With identity and compliance in mind, Hyperledger Fabric enables operators to know all the participants in a network while still being interoperable with other pools. Hyperledger uses a scalable Practical Byzantine Fault Tolerance (PBFT) consensus algorithm which is capable of handling tens of thousands of transactions per second. It has existed for more than 15 years. Here are the comparison of Proof-of-Work and (P)BFT consensus algorithms — http://www.vukolic.com/iNetSec_2015.pdf.

BFT protocols were never really tested thoroughly for their node-scalability beyond, say, n_nodes = 10 or n_nodes = 20 nodes because of their intensive network communication which often involves as many as O (n2) messages per node.

In contrast, the BFT approach to consensus typically requires every node to know the entire set of its peer nodes participating in consensus. This in turn calls for a (logically) centralized identity management in which a trusted party issues identities and cryptographic certificates to nodes.

This explains why BFT consensus protocols are the technology of choice for so-called “permissioned” blockchains, which require blockchain participants’ identities to be known.

But PBFT is more scalable than BFT. Even more, Hyperledger Fabric allows you to change the consensus algorithm. This is a comment from Fabric’s online documentation:

The current performance goal for Hyperledger Fabric is to achieve 100,000 transactions per second in a standard production environment of about 15 validating nodes running in close proximity. The team is committed to continuously improving the performance and the scalability of the system.

Mining

Unlike Bitcoin, Hyperledger Fabric doesn’t have a cryptocurrency. Hyperledger Validating Peers (VPs) do not mine blocks and do not share the blocks between them. Here is how it works:

  1. A transaction is sent to one trusted VP.
  2. The VP broadcasts the transaction to all other VPs.
  3. All VPs reach consensus (using PBFT algorithm) on the order to follow to execute the transactions.
  4. All VPs execute the transactions “on their own,” following the total order, and build a block (calculating hashes mainly) with the executed transactions.

All the blocks will be the same because: the transaction execution is deterministic (or should be) and the number of TX in a block is fixed. You can still transact on a chain network by owning a non-validating node.

Raw transaction records are permanently stored in the ledger. While the contents of non-confidential transactions are open to all participants, the contents of confidential transactions are encrypted with secret keys known only to their originators, validators, and authorized auditors. Only holders of the secret keys can interpret transaction contents.

Smart contracts

Hyperledger Fabric features smart contracts that are usually written in Go or Java. You can see examples here.

Corda

Corda is a permissioned distributed ledger platform that features JVM smart contracts. It is open-sourced too, and built mostly for financial applications as well.

Corda contains the features of consensus, validity, uniqueness, immutability and authentication. Just like Hyperledger Fabric above, Corda is not a “real blockchain” and it doesn’t use any internal currency and mining.

Corda uses special Notary Nodes (see “Validating Peers” in Hyperledger Fabric) to reach consensus and the list of this nodes is known and fixed.

Please take a look at this previous post about Corda available here.

Basic Features — Table of comparison

Conclusion

In this article we were speaking only about the core similarities of these Distributed Ledger Technology (DLT) platforms. As a result, we see that Corda and Hyperledger Fabric are really same in many basic aspects. Hyperledger Fabric was released first, but it seems to me that Corda has more features. Even though they have many similar-looking features, I don’t think that they will compete with one another. The inclusion of Corda’s source code into Hyperledger Project (still not completed, but announced) is a proof of that.

We promise to continue the “Hyperledger vs Corda” series. Please stay tuned!

Anton.

p.s. According to Vitalik Buterin, the concept of “one blockchain to rule them all” — a unique blockchain carrying a unique digital currency and used for all distributed-ledger applications — is obsolete. The future belongs, instead, to a network of interoperable blockchains, built on different distributed-ledger technologies and carrying different digital currencies, which can be federated to handle different aspects of distributed applications.

--

--