January 16, 2017 | Written by: John Palfreyman
Categorized: Industry Insights
Hyperledger Fabric is a revolutionary blockchain-based approach to transaction processing within business network – through sharing a ledger – which improves efficiencies, reduces settlement times and increases trust within the network. The four components of blockchain for business are shown in Figure 1; in this blog post I will focus on consensus.
Figure 1: Core Components of Blockchain for Business
Consensus is the process that the members of a blockchain business network use to agree that a transaction is valid.
Let’s step back a bit to look at the bitcoin cryptocurrency – where blockchain technology was first applied “in anger”. Bitcoin users are anonymous, and in general no trust exists between them. The bitcoin consensus process is known as “proof of work” which involves selected users (called “miners”) running a complex computer program (referred to as “cryptographic mining”) to prove that a set of bitcoin transactions are valid. Whilst subject to some well documented vulnerabilities and security concerns, this method has been proven to work for anonymous, untrusted networks – albeit with a computational cost overhead. The total amount of energy consumed in bitcoin cryptographic mining is reportedly equivalent to the electricity consumption of the country of Ireland!
In contrast, Hyperledger Fabric is aimed at business to business transactions across a “permissioned” network where all members are known and trusted. Within this type of network, consensus can be achieved at a fraction of the computational cost. Moreover, there is a wide range of methods to choose from. Where the trust is high, a simple majority voting may suffice, or the network may choose to use a more sophisticated method. One such method is known as Byzantine Fault Tolerance, and this is widely applied to computer failures in a fault tolerant computer system. To deal with the vast variety of cross industry use cases, Hyperledger blockchain supports pluggable consensus.
Learning from Customer Projects
2016 was the year of the blockchain proof of concept. IBM has worked over 70 first projects for customers in many industries and several countries. Key learnings led the community to re-think consensus for the version 1.0 release of Hyperledger Fabric to be released in the coming months. It was decided that Hyperledger Fabric v1 must allow us to:
- Specify who validates transactions, noting that not all members of the business network will need to validate all transactions.
- Support partitioned privacy, so network members only access and execute the smart contracts relevant to them.
Let’s look at practical examples of these consensus refinements, by referring to the vehicle leasing supply chain described in this short video and illustrated in Figure 2 below.
Figure 2: Vehicle Leasing Supply Chain
Hyperledger Fabric v1.0 introduces endorsement policies, which control who validates a transaction. In the case of a creation of a new car transaction, only the regulator and specific manufacturer (e.g. BMW) need to be involved in the consensus process. But on ownership change the regulator, specific lease company and leasee would need to be involved.
Hyperledger Fabric v1.0 also introduces channels for the business network members to communicate with the consensus service. Communications are kept within a channel, so that a lease company – dealer volume discount executed in a smart contract will be private to the parties involved and not accessible by competitors within the business network.
Whilst these concepts are quite subtle, we are convinced that they are the next major step in making blockchain real by more closely reflecting how business happens today. This will maximise blockchain’s transformational value to business and government alike!
More on blockchain?
- Blockchain for Government
- Proving Provenance with Blockchain
- Blockchain and Cyber Security
- Tackling Tax Evasion in a Digital Economy
- Blockchain for Asset Registration
- Building a Blockchain Business Network