Decoding the Enigma of Blockchain
What is the difference in Bitcoin and Blockchain
Even today mainstream media refers to Bitcoin and Blockchain as almost being synonymous. But the comparison makes no sense. Think of it this way.
In the 70s, Xerox invented the computer mouse and their OS had a GUI interface with applications opening up in small ‘Windows’. It was a breakthrough technology back in the days. However, it was Apple computers and later Microsoft who unleashed the true potential of GUI, window-like interface and mouse as an input device. Similarly, Bitcoin is an electronic cash system whose purpose was to be a digital money for use on internet. Bitcoin is the the name of the token (or currency) and also of the protocol and the network. Bitcoin protocol is implemented by the concept of Blockchain. In fact, the Bitcoin whitepaper does not even make use of the word ‘Blockchain’, rather refers to it as ‘chain of blocks’. I have already discussed this in origins and philosophical ideology behind Bitcoin.
Ethereum is another crypto-currency like Bitcoin which has its own implementation of Blockchain and is second in market-cap of all 700+ crypto-currencies. It was the concept of ‘Smart contracts’ within Ethereum which attracted the attention of established Banking and financial institutions as well as IT vendors like IBM, Microsoft and Accenture for Blockchain. We will discuss Ethereum and Smart Contracts much later.
However to learn and understand Blockchain, one has to understand the techno-functional aspects of Bitcoin and I have already covered a few topics and will continue posting on Bitcoin.
Each node has the exact same copy of the ledger
What is Blockchain
Blockchain is a distributed ledger of all transactions that have ever taken place in the network. Every transaction in the ledger is fully transparent to each node and depending on the type of implementation it also visible to anyone on the internet.
Blockchain is a merge of a consensus algorithm, the protocol that the network implements and a group of nodes running that protocol. Hence this has to be differentiated from a database as ‘database’ is just a piece of software.
Each transaction entry in the blockchain is irreversible or immutable i.e it cannot be changed either by manual intervention or by any participating node of the network. Transactions are transmitted and added to the digital ledger by very strong cryptography techniques. Each time a new node is added then a majority of the participating nodes validate the newly connected node. Once validated then the node has to download the entire ledger and sync with the network. Now each transaction that gets appended to a block (and the block subsequently to the blockchain) then the newly added node will have a copy of it and is in sync with the entire network.
Technically speaking, blockchain is simply a data structure where each block is linked to another block. The blocks are linked to each other in a time-stamped chronological order. To access data of the first ever created block, you have to traverse from the last created block, then the block before that, so on and so forth till you reach the first block. Each block contains elements like the version # , reference of the address of the previous block, timestamp, transactional data, block size etc.
Each blockchain solution implements its own algorithm as a ‘consensus mechanism’. Since every node in the network has equal weightage in terms of authority, they have to execute the same algorithm to validate each transaction. The consensus in terms of blockchain means the collective agreement or the decision making process of majority nodes. The consensus is carried out to collectively depend upon the ‘state’ of the entire network. Consensus helps to solve Double spend and Byzantine’s General Problem of Distributed decentralized systems.
Especially for a public peer-to-peer network, there has to be some incentive involved so that nodes a) Participate in the network b) Play their part honestly (i.e not trying to hack it). The incentive is usually issued by some form of tokens (digital currency). These tokens can be redeemed for something on the network (like buying real world products) or even on the internet or exchanged for fiat currency or other crypto-currencies. This ensures that there are more honest nodes in the network than dishonest ones and the network becomes more and more secure and robust.
Most blockchain implementations also introduce a ‘difficulty level’. If the nodes are agreeing upon the consensus too quickly then the algorithm is designed in such a way that the difficulty increases and vice-versa. This has to ensure that the block creation time remains more or less constant.
Strictly speaking, Blockchain has to be public ledger where each participating node is equal in terms of authority and control. However, enterprise implementations of Blockchain are changing these definitions — much to the anger and dismay of the early adopters or the ‘true believers’ of blockchain. In fact Accenture has even filed for a patent for an ‘editable’ blockchain — which is like saying dealcoholized beer :)
Bitcoin was the first implementation of Blockchain and we will see in my next blog on how this was done. It will also cover advanced blockchain concepts of merkle trees, cryptography and forking.
Think of it as a custom implementation of Google Slides (Cloud solution of Google for creating presentations like MS Powerpoint). The Google slide document is public and everyone has read access to it. Each slide has a fixed template. Slides cannot be reordered among themselves and a slide can be added only before the last added slide. Each slide has details of say ‘Toronto weather forecast for the next 10 mins’ . The participants of the system (those who are added to view the document) use their own predictive model and guess what will be the weather of Toronto in next 10 mins. After 10 mins the forecast values are compared with the actual values. The slide which had values closest to the actual and submitted earliest is added to the document. This is the winner for that round and wins say Tim Hortons gift card :). Once the winning slide is added to the document then it remains as a permanent entry and this process goes on after every 10 minutes and for ever. The entire document and contents of each slide in it is visible to all participants. All participants agree mutually and without bias which will be the winning slide.
In the above example —
Google slides shared file : Distributed digital public ledger
Fixed template of each slide: Each slide is like a block in the blockchain with pre-defined structure.
Each participant is like each node
Guessing game or weather forecast is the ‘mining’.
Tim Hortons card is the incentive for the participant. Some private blockchain implementations might remove the concept of mining and incentives altogether but more on all of this later.
Mutual agreement among the participants is the consensus.
Advantages of Blockchain implementations
Getting rid of the middleman (i.e Clearance houses, payment networks etc)
Transparency in transactions and hence tracking is easy
To corrupt or hack a transaction of a certain block which contains that transaction, the hacker has to manipulate each block starting from the latest block added to the network. This needs tremendous computing power (which means very expensive machines), time and effort as well as cryptography skillset. Hence hypothetically speaking a strong and time-tested blockchain network like that of Bitcoin can never be hacked.
Save on tremendous amount of time and costs related to ‘clearance and settlement’ of the end-to-end lifecycle of a process
Solves Byzantine General’s Problem and Double Spend
Fast-paced innovation with startup and developing countries leading in it
Challenges with Blockchain implementations
Enterprise implementations suffer from the problem of agreement on technology stack as each organization have their own back office systems.
Complex regulations and slow adoption by Governments
A very high risk factor are security challenges especially for private blockchains.
Scalability is extremely tough as in the case of a time-tested peer-to-peer network like Bitcoin
Immutability nature is hated by regulators as there might be a scenario where it needs to be changed
Depending on the implementation, ownership of addresses associated with transactions is difficult (anonymity nature)
Blockchain implementations have a huge one time as well as very high maintenance costs
As of 2016, skilled workforce is unavailable to suffice the massive demand in banking and finance industry as well as all other sectors for blockchain use cases
To summarize, Blockchain -
Is a data structure
Merges Network and Data
Is a distributed digital public ledger
Is immutable and append-only
Is ordered and time-stamped
Is a decentralized implementation
Is implemented such that each transaction is fully transparent in the network (or even to anyone on the internet)
Uses cryptography for message transmission and updating the ledger
Is designed such that no node should have higher authority or control over any other node. However, private blockchains are changing this and we will see this later
Implements some consensus mechanism to validate each transaction
May incentivize the node owners in the form of tokens (currency to be used across the network or on internet) so as they in return, keep the network safe