Top 5 Differences between Ethereum and Hyperledger Fabric
Both Public Ethereum and Hyperledger Fabric frameworks are Distributed Ledger Technologies (DLT) built on top of the concept of blockchain. However, despite the similar origins and underpinnings, these two frameworks also offer distinctly different visions and value propositions. Specifically, Hyperledger Fabric is a permissioned private blockchain, focused on helping solve B2B and Enterprise use cases while Ethereum is a public blockchain built to enable distributed computing capabilities.This article will explore 5 key differences that users should evaluate while determining which framework is most appropriate for a particular use case.
Peer Participation and Confidentiality
A good starting point when considering the differentiating factors is consideration of the builders intent with regard to peer participation and confidentiality. Ethereum is public and permissionless, meaning that anyone can utilize it and inspect data stored within its Ledger. Users build and deploy Decentralized Apps (dApps) on top of Ethereum and utilize the over 9100  nodes currently running the Ethereum software. Hyperledger Fabric is the opposite, it is private and permissioned. In order to connect to a Fabric network, you need to have both network and read level access. One of the key differences in Fabric is a concept called channels: a private subnet, or group, of two or more members in the network. Channels allow organizations to have private communications in order to retain confidentiality of information, such as private pricing, and organizations can have many channels open within a network with different organizations. Keep this differentiation in mind when determining which to employ. Do you want to encourage broad semi-anonymous chain participation or are you looking for more controlled and discrete access?
Smart Contracts and Chaincode
The second area of differentiation relates to smart contracts and chaincode. Many DLT’s feature smart contracts, or code written to the blockchain, allowing for predetermined functionality. Ethereum smart contracts are coded in a custom built language, Solidity, which run on the Ethereum Virtual Machine, and allows for specific functionality to extend Ethereum. Fabric uses the term chaincode synonymously with smart contracts and is coded using Java, NodeJS, or Go. Importantly, these languages have widespread adoption, even outside the Blockchain industry. Thus, although smart contracts are available on each chain framework, understanding and leveraging your existing code and expertise may make one framework more attractive.
A third main area of differentiation is the functioning of “consensus”.Consensus is the agreement required for a transaction to be commit to the blockchain. Ethereum’s consensus requires all parties agreement, through a process called Proof of Work (PoW) committing transactions onto the blockchain ledger in “block” increments. This process is required, as transaction order matters; if there was no consensus, than an individual could use the same coin to make two parallel transactions (double spend attack). Within this style of consensus, a user is recommended to wait for the committed transaction to “age,” and be firmly set into the blockchain with other blocks committed afterwords to reduce the risk of the aforementioned double spend attack.
Hyperledger takes a different approach to this, and aims to create consensus within the channel the transaction is operating within using an execute-order-validate architecture. The consensus algorithm is modular and allows for custom ordering systems, such as Byzantine Fault Tolerance, Apache Kafka, or Raft.
Execute: The transaction is executed in any order using chaincode by endorsing peers.
Order: When enough peers agree on the results of the transaction, the transaction is sent to all peers for inclusion on the ledger.
Validate: Each peer validates later transactions received at the execute stage, discards any transactions that are now considered invalid using the updated ledger.
This differentiation is most important when considering transaction speeds, risk of fraud, and effort required for transaction validation. Depending upon the specific use case requirements, one chain’s methodology may offer a clear advantage over the other.
The last major differentiation is the use of cryptocurrency for transactions. Critically, Ethereum transactions require a cryptocurrency called “Ether” to send transactions onto the blockchain. Ether is generated by mining blocks, and is used to compensate nodes that contribute towards providing consensus. Further currencies and tokens (ERC-20) can be built on top of Ethereum using smart contracts for more specialized use cases. Fabric does not have an inherently built in currency, as consensus isn’t achieved through mining. Tokens and cryptocurrencies can be generated on Fabric to represent items or concepts, such as a reservation of a 10 ton container space on a freight vessel. Again, users need to weigh the competing benefits of each chain and factor in the additional consideration of token requirements.
Ethereum and Fabric are two widely adopted DLT’s, and both come with their benefits and caveats. Ethereum is a powerful foundation to building decentralized applications which extend into the public domain, while Hyperledger Fabric helps businesses create private networks that allow permissioned interaction with fine grained access controls.
Varun Jain is the Director of Solution Architecture at BlocWatch, a startup focused on monitoring, analytics and alerting on Distributed Ledger Technologies. Learn more at https://www.blocwatch.com.