Hyperledger Fabric: The Enterprise Blockchain
My team has been connected to the distributed systems landscape since the time bitcoin demonstrated its worth as a system of true global importance. For the very first time in human history, the bitcoin system gave a naive user the opportunity to take part in a network that could include every single human on Earth. This inclusiveness is what blown its popularity out of proportions and soon Bitcoin proved to be the mother of all market penetrations. This demonstration of inclusiveness raised a possibility of having a solution providing real time data sharing between organizations that were considered isolated thus far. As a result, the technology finally succeeded in getting the attention of the whale: Enterprise IT! In Late 2015, under the governance of Linux Foundation, Major IT Organizations like IBM started evaluating the capabilities of the technology that made bitcoin possible. The Blockchain!
During the initial days of research in 2015, moving in the direction of employing Blockchain to the enterprise domain, most of the industry experts believed that Blockchain is a system that offers solutions to some of the most challenging problems that enterprise has to deal with on a daily basis. The problem of establishing accountability in a multiple party business scenario in an objection-free and transparent manner. Solving this problem may cut down turnaround times as well as losses in the form of disputes. Despite the promises, most experts believed that this technology arrived ahead of its time and may see initial adoption only by around 2027, i.e. 10 years from now.
However, the recent developments made, directly as a result of huge investments pumped in by major Enterprise IT players like IBM, Microsoft and SAP towards the adoption of this technology has already accelerated the growth and adoption of this technology. For instance, IBM and SAP both have launched commercial versions of one of the most promising and client friendly Blockchain platforms named “Hyperledger Fabric”. This blog will give you an overview of the Blockchain technology\platform in question and what it has to offer to the Enterprise IT landscape.
The four building blocks of Blockchain are:
- Distribution of Information to multiple hosts.
- Signed Transactions powered by Public Key Infrastructure.
- Cryptographic hashing
- Democratic Digital Consensus
The Blockchain ledger that keeps a record of all the transactions that ever happened on it, replicates itself on a several nodes or peers in a Blockchain network. Each of these nodes has a complete copy of the ledger on it. There are many benefits of keeping multiple instances of the entire ledger. Some of the notable ones are:
- Mitigate risks in case one or more copies are corrupted or destroyed.
- Detection of bad copies in the ledger as a result of intentional attempted manipulation of the ledger.
- De-centralization as no one owns the “central ledger”. An individual copy of the ledger is the complete ledger in its own rights.
To visualize this, you will first need to understand how digital signatures work in the context of public key infrastructure. Consider this example: A transaction is initiated by a user Tom. This transaction can be a transfer of money or transfer of some arbitrary business asset. The transaction is digitally-signed using Tom’s Private key, that only Tom has access to. The transaction is then broadcast to the whole network of nodes. Then Each node must verify whether Tom is the person who initiated this transaction. All that is needed to verify the transactions authenticity is Tom’s public key, which everybody else in the network has access to. With the help of this public key, It is a simple 1 step process to verify whether Tom’s private key was used to sign this transaction, i.e. establishing the fact that Tom was indeed the person who fired this transaction. If this transaction originated from a intentional bad player, the digital signature on the transaction won’t match up upon verification against Tom’s public key. If the bad player somehow tapped into Tom’s transaction and changed values, that will render the digital signature corrupt and this will be caught when the other nodes verify the transaction against Tom’s public key. Please note that digital signatures have been around for decades and were in practical use even before the bitcoin system.
The asset data is stored on a Blockchain ledger in its entirety. However, there is a second level of information that is stored too. This information is the cryptographic hash(SHA-256) of the asset data. This hash is stored to ensure that the data is not manipulated by an intentional bad player or a back-door entry. Moreover, hashes are stored across the whole Blockchain blocks. i.e. Block 2 will be the hash of the data so far recorded in the Blockchain. This block will contain the hash it calculated, and also the hash that was calculated by the previous one. Now, if a bad player somehow updates the data in one of the blocks, the hash fingerprint of entire Blockchain blocks will get corrupted and this will instantly be reported by the system.
Democratic Digital Consensus
This is by far the most talked about feature of a Blockchain. Let’s revisit what a Blockchain is: It is a network of connected nodes. Whenever a transaction is fired at this network, it will be committed to the ledger if and only if majority of the nodes agree on the information contained in the transaction. In the original bitcoin Blockchain this was implemented using a scheme called as “Proof of Work”. Ethereum introduced Proof of State and DPOS. Hyperledger fabric, the enterprise version of Blockchain, relies on PBFT(Practical Byzantine Fault Tolerance). There are other consensus mechanisms at play in the Blockchain landscape with more and more Crypto-currencies being invented every now and then.
It is worth noting, however, that some of the building blocks of the Blockchain technology have been in existence since 70s. What bitcoin brought forward was a completely integrated system, exploiting the capabilities of these technologies like decentralization, hashing and digital signatures.
What Hyperledger Fabric has to offer?
Hyperledger Fabric is a permissioned Blockchain infrastructure, originally contributed by IBM and Digital Asset, providing a modular architecture with a delineation of roles between the nodes in the infrastructure, execution of Smart Contracts (called “chaincode” in Fabric) and configurable consensus and membership services. A Fabric Network comprises “Peer nodes”, which execute chaincode, access ledger data, endorse transactions and interface with applications. “Orderer nodes” which ensure the consistency of the Blockchain and deliver the endorsed transactions to the peers of the network, and MSP services, generally implemented as a Certificate Authority, managing X.509 certificates which are used to authenticate member identity and roles.
Let us summarize few of the most prominent features of Hyperledger Fabric as described on ibm.com:
1) Permissioned membership
Hyperledger Fabric is a framework for permissioned networks, where all participants have known identities. When considering a permissioned network, you should think about whether your Blockchain use case needs to comply with the data protection regulations. Many use cases — in the financial sector and healthcare industry, in particular — are subject to data protection laws that require knowing who the members of the network are and who is accessing specific data. For example, consider a private equity company. By definition, a private equity is not publicly traded on the stock exchange, and its investors are typically venture capital firms, private equity firms, or angel investors. The participants in this network need to be known and have credibility in capital to invest to be able to participate in the Blockchain.
2) Performance, scalability, and levels of trust
Hyperledger Fabric is built on a modular architecture that separates transaction processing into three phases: distributed logic processing and agreement (“chaincode”), transaction ordering, and transaction validation and commitment. This separation confers several advantages: Fewer levels of trust and verification are required across node types, and network scalability and performance are optimized.
3) Data on a need-to-know basis
Businesses, due to competitiveness, protection laws, and regulation on confidentiality of personal data dictate the need for privacy of certain data elements, which can be achieved through data partitioning on the Blockchain. Channels, supported in Hyperledger Fabric, allow for data to go to only the parties that need to know.
For example, many financial entities express concern over competitors seeing even the number of transactions being processed. Some financial institutions do not consider cryptography “enough” to protect their data. Given that some financial instruments can take 10 years or more to come to value, the risk of cryptography breaks over time could allow private information to become public. Channels help provide a data-partitioning capability where only those that need to know the data will see the number of transactions and the data itself.
4) Rich queries over an immutable distributed ledger
CouchDB offers a complete set of query language that can be used to query the ledger in the language business understands.
5) Modular architecture supporting plug-in components
The modularity of Hyperledger Fabric architecture enables network designers to plug in their preferred implementations for components, which is an advantage. One of the most requested areas for modularity is “bring your own identity.” Some multi-company networks already have identity management and want to reuse instead of rebuild. Other components of the architecture that can be easily plugged in include consensus or encryption, where some countries have their own encryption standards.
6) Protection of digital keys and sensitive data
HSM (Hardware Security Module) support is vital for safeguarding and managing digital keys for strong authentication. Hyperledger Fabric provides modified and unmodified PKCS11 for key generation, which supports cases like identity management that need more protection. For scenarios dealing with identity management, HSM increases the protection of keys and sensitive data.
The future of bitcoin looks uncertain! However, the future of enterprise Blockchain looks promising. It has brought forward the possibility of establishing accountability powered by true real time information sharing between organizations involved in a multi-party business setup. Responding to the needs of businesses, Hyperledger Fabric has grown a lot in the last couple of years and now encapsulates most of the features that Enterprises can rely on. It seems It is just a matter of time before Hyperledger Fabric becomes the de-facto implementation standard for Enterprise Blockchains.
In its early days, IBM's Blockchain was provided to the world basically for free and now they require only a small investment from the developers to use it on a subscription basis. However, they are still heavily involved with updating Hyperledger underlying code, pretty much on a daily basis. However, anyone can contribute to the project and sandbox it pretty much for free on either their laptops or through the cloud.
SAP have the opportunity to wrap the blockchain integration within their HANA express cloud offering and thus show a path to integrating blockchain into the enterprise at the database layer.
Bitcoin is still there and although its fate can be questioned it has been the most successful and the longest running blockchain that is still accessible for free to an average laptop or cloud user. Though highly unlikely, one can still submit a change proposal to the bitcoin github repository for any changes that they think would help keep it accessible and make it more agile to anyone.
Thanks for the insights.