Blockchain as an emerging technology has not yet reached the ground level and yet the disruptive technology has seen five generations. While the first two generations, Bitcoin and Ethereum were public, permissionless blockchains, Hyperledger Fabric, Corda and Quorum are private and permissioned blockchains.
Why this paradigm shifts in technology when it was aimed to be a decentralized, permissionless technology? Because over public, permissionless blockchains, the data control doesn’t remain with a central entity. However, across industries, businesses wish to safeguard information and don’t wish third parties to access their sensitive data.
Ethereum being one of the most grown blockchain platform has facilitated the development of these enterprise blockchains. As a technology, Ethereum introduced smart contracts to the world and because of the functionality and flexibility of smart contracts, Ethereum has the largest number of use cases specifically in the case of enterprise blockchains.
When one looks at the whitepaper of Hyperledger Fabric, Corda and Quorum, it seems like all three took the open source code of Ethereum with very different visions in mind. Hyperledger Fabric built by IBM and Linux Foundation aims to offer modular and extenda ble framework which can be adopted across industries, from healthcare to supply chain to real estate to banking. Corda, the R3 consortium product is designed and developed to record and automate legal agreements between identifiable parties. Quorum developed by JP Morgan aims to provide the Finance Industry with a permissioned enterprise blockchain that supports transaction and contract privacy.
It is also in the news that Ethereum could be the first public blockchain to come on the Hyperledger platform. A proposal has been submitted and if the open-source consortium’s committee approves, Pantheon project would be on Hyperledger. Pantheon is a suite of Ethereum-based services which is used to develop enterprise applications with features like privacy and permissioning.
Participation of Peers
In the conventional data storage systems, it is one entity who gets to keep a copy of the ledger. As a result, it that entity is the one who gets to control the data and has a say over which data is contributed and which parties are allowed to contribute to that data. In the case of all three Hyperledger Fabric, Corda and Quorum, as they are permissioned enterprise blockchains, the participation is restricted. The participants are selected in advance and the network access is restricted to these members only.
In the case of Hyperledger Fabric, the understanding of consensus is broad, and it encircles the entire transaction flow beginning with initiating a transaction to the network and then committing it in the ledger. Like mentioned in the Hyperledger Fabric 2.0 documentation, that the architecture of this blockchain is radically different from the order-execute model of other blockchains. Fabric executes the transactions before finally committing it on the blockchain. This helps the blockchain to execute multiple nodes thus increasing the overall performance and scalability of the blockchain.
Hyperledger Fabric v2.0 introduced Raft as a crash fault tolerance consensus without KAFKA. Raft follows a “leader and follower” model wherein a leader node is elected for every channel and the decision taken by the leader node is replicated by the follower nodes. In case of failure, Raft ensures that the system is able to make decisions and process client requests.
In Corda, the concept of block and chains becomes state changes and transactions. Being developed by financial institutions and banks, this blockchain aims to achieve more scalability and resolve the privacy concerns faced by the banks. This happens in Corda by including “Notaries” in the network. The Notaries perform the function of the miners, they are the ones who validate the transactions. If a transaction is validated and timestamped by a notary, it can be included in the immutable chain. Notaries can be centralized (eg. R3 or the banks) or they can be distributed.
Quorum uses a consensus protocol called “QuorumChain”. The consensus here is relatively straightforward and a consensus is reached by simple majority voting. A certain number of nodes are relegated with the voting rights. These nodes only verify the transaction. Quorum uses Raft-based and Istanbul BFT for better fault tolerance, faster block time and better transaction finality.
When it comes to smart contract, Hyperledger Fabric 2.0 still uses “Chaincode” as the business logic of the technology. Chaincode takes the leverage from in-built trust of blockchain technology and underling consensus from the peers. Hyperledger Fabric 2.0 also allows you to write the ‘Chaincode’ aka smart contract code in any standard programming language. Smart Contract can be written in either Node.js, Go, and Java.
In Corda, the smart contracts don’t simply contain code, but in addition they support legal prose. The reason behind supporting both can be cited with the fact that the blockchain is designed for highly regulated financial and banking services environment. The legal prose better known as Ricardian Contract run to ensure that the required signatures are obtained transaction validity is achieved. For R3’s Corda, the Smart Contract can be written using Java or Kotin programming languages.
Quorum, soft forked from Ethereum supports both public and private contracts. The public contracts are built with Solidity whereas the private contracts which allows to specify which nodes in the network have the access to execute the contract. What’s more to understand here is that Quorum privacy design impose constraints, a private contract cannot be updated to a public contract and vice-versa.
Initially, Hyperledger Fabric didn’t support cryptocurrency although the platform did support tokens to be developed. In the Hyperledger Fabric version 2.0, the open-source community has offered a possibility to develop both cryptocurrencies as well as tokens. With Fabtoken, native currencies, as well as digital tokens, can be developed on Fabric with Chaincode.
According to Hyperledger documents-
FabToken is a token management system that allows you to issue, transfer, and redeem tokens using Hyperledger Fabric. Tokens are stored on channel ledgers and can be owned by any member of the channel. FabToken uses the membership services of Fabric to authenticate the identity of token owners and manage their public and private keys. Fabric token transactions are only valid if they are issued by a token owner with a valid MSP identifier.
In the Corda OS 3.0, R3 consortium offered the world a Token SDK that enables them to create native tokens on the blockchain. Developers were already building tokens on the blockchain but with the SDK, a common way has been established to:
- define types of token
- issue tokens
- use and trade tokens
Moreover, the UTXO (unspent transaction outputs) model that Corda uses has proven to be the most robust, powerful way of recording tokens on the blockchain.
We are all aware of the JPM Coin. The JPM Coin is essentially the tokenized cash available on the Quorum ledger.
Summary: Hyperledger Fabric vs. Corda vs. Quorum
With blockchain development firms like Truffle unveiling plans to offer support for blockchain protocols Corda, Hyperledger Fabric, it becomes easy for enterprises to adopt these blockchains.
However, to sum up the examined permssioned blockchains Fabric, Corda and Quorum offer privacy, enhances the performance of the blockchain with scalability and offer fine grained access control.
As Corda and Quorum are both consciously designed as DLT for the Banking and Financial Industry, the main focus is on financial services transactions. The architectural designs are simple when compared to Fabric.
As the framework of Fabric is modular it is pretty likely that it can be altered to resemble Corda or Quorum’s feature. There are efforts as of now only which seek to integrate Corda into the Hyperledger project. As a result, both Quorum and Corda cannot be seen as competition rather more as a complement.