by Jimjees Abraham, Solution Architect
Blockchain is the new buzz word in technology. World is talking about Bitcoins and wondering what's happening around us. Curiosity about what blockchain is all about is mounting. We receive questions from customers in different forms based on the context they are analysing and viewing blockchain. Point of view of a finance specialist to an economist to a technologist to a political analyst differs from their angles. Let's try to demystify the new world of blockchain by taking some simple real life example. This is just an example to understand the concept. (Real use cases will be much more complex)
Bob and Alice Let's take an example where Bob preforms a periodic maintenance service at Alice's home. Alice pays Bob at the end of the month by counting the number of visits Bob has made. Now there are different ways of handling this account. Option 1 : Alice maintains a record and every time Bob does a maintenance, Alice writes an entry into the record. Option 2: Bob maintains a record and every time Bob does the maintenance, he updates the record In Option 1 - Bob has to trust Alice about the entries and should trust Alice about maintaining it right and in a timely manner and also expects Alice not to tamper the record. In Option 2 - The situation is reversed- Alice has to now trust Bob about the record. In both these options, if there is a dispute in the payment, it can lead to a tough and lengthy audit procedure to figure out who is right.
If you can correlate this to the business world where large enterprises does business with each other and with many other parties with thousands of transactions happening, we could see how big this problem can be for an enterprise. Option 3 : After couple of disputes, Alice and Bob decides to keep the record with a common friend named George who is a third party. This eliminated the issue of trust between Alice and Bob, because George is trusted by both of them and George maintains the record. Now, George finds an opportunity to keep this record and manage it - and hence George decides to charge a fee for maintaining this - which Alice and Bob has to figure out how to deal with the fees.
One of the month ends, when Bob and Alice wanted to settle the monthly account, George was out of town, which made them wait till George comes back. (This is similar to the issue with the availability of the third party systems and services in a business world) Things were going smooth till one day when there was a flooding at George’s house which destroyed the book. Luckily George had taken a copy of the book 10 days back, and kept the copy in a different location at his neighbour Simon’s house. This reduced the impact to some extend because there was a copy up till 10 days back. (Issue of single point of failure) In the current systems landscape, all the above options are nothing but centralized applications. You would have noticed that all the parties has to trust the centralized application. There can be a single point of failure as we saw, there could be down times, there could be fee overheads and so on.
What if Alice and Bob decides to maintain records with everyone, i.e. with Alice, Bob, George & Simon -- and everybody maintains the entries real-time? This definitely eliminates the issue of trust, because all have the same ledger. This eliminates the issue of single source of failure or unavailability of information - because the probability of all the parties failing at the same time is very low. Neither Bob nor Alice can change or tamper the record, as it will become un-matched with the rest of the ledgers, and it becomes very obvious. The likelihood of Bob or Alice influencing all to make a change is low. With this distributed approach - the data is secured, data is immutable and all the parties has consensus and trust about the data.
Now, Bob decides to give Alice a discount of 10% in price for his services after the 10th visit in a calendar month. What does that mean from a system point of view? This means, apart from keeping the count in a distributed ledger, there should be a logic which should get executed based on the trusted data. This logic is nothing but a smart contract or chain code. Since the data is trusted, and the agreement exists between all parties to react to the data or an event, this could be easily automated and hence - Smart contracts / chain code residing in the distributed landscape comes into existence. The concept of combining the distributed trusted data along with smart logic that could be executed in each node to react to the data or events - led to the entry to new types of blockchain namely Ethereum and Hyperledger. Ethereum In Ethereum , similar to Bitcoin world, there are miners / nodes who are keeping the records ( blocks ) and executing the logic - that are named as smart contracts. These miners gets rewarded for executing the smart contracts for their processing power by Ethereum cash named as Ether. Anyone who can provide the computing power can become miners and can get rewarded for executing transactions in Ethereum. All the miners keep the copy of the ledger. The fact that the ledger is public and becoming a peer is also public, classifies Ethereum as public blockchain.
Hyperledger In an enterprise world, the need for an enterprise ready blockchain was becoming more and more. The typical issues for enterprises not to use public blockchain for a B2B scenario are many. Key thoughts, to list a few, for an enterprise in a blockchain journey are:
More about Hyperledger in the next blog