Introduction to Blockchain
Blockchain recently has become a buzzword. It’s known to be a revolutionary technology for performing outright transactions between parties without the involvement of an intermediary. Let’s understand why blockchain before diving into the nitty-gritties with the help of an example. The current traditional electronic system relies absolutely on intermediaries for a transaction to be carried out. For instance, participants in a business network entrust bank (middleman) for transacting payments between them [Figure(a)]
The problem with such a setup is that if at any point the bank is hacked then the dependent participant’s records become ambiguous and inconsistent. The participants would have to keep faith in the privacy and security maintained by such intermediaries. In most cases, the users are compelled to provide too much personal information than necessary as part of the enrollment process. In the past, spammers have attacked systems to hold data as hostage like Ransomware attacks. The intermediaries charge a high transaction fees and take time for transaction execution in some cases. Therefore the current electronic systems that count on centralized institutions for their business transactions are inefficient, expensive and vulnerable. This led Satoshi Nakamoto (identity unknown) to devise a cryptocurrency based electronic system called Bitcoin. “A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution.” - Satoshi The original bitcoin white paper depicts a solution to the Double spending problem where in a single unit of cryptocurrency is spent multiple times leading to fraudulent transactions or money balances. Any cryptocurrency/digital money based system would have this problem. Bitcoin blockchain solves the double spending problem by proof-of-work mechanism in which timestamped transactions are stored on a public ledger called Blockchain. Blockchain is an append-only distributed digital ledger that stores transactions chronologically. This forms a single source of truth governed via consensus directives which is imposed with transparency.
The block structure in a bitcoin blockchain comprises of block header field which contains hash of previous block header and a merkle root hash along with timestamp. A new transaction can only be appended which has the hash of previous block header and merkle root hash of current block and so on forming a linked hash chain. [Figure(b)] which makes it immutable. The blockchain data store exists at every participant’s location and is replicated across all the nodes on the peer-to-peer network. [Figure(c)]
The validating nodes/ miners in a network determine which block should be appended next to the blockchain by solving a computationally hard mathematical puzzle proof-of-work in a Bitcoin blockchain implementation. This system is designed in such a way that the miners compete to be the first one to complete the computation for their proposed block to be entered in the blockchain. This forms the basis of a distributed consensus which ensures that no single node owns the entire ledger at any given point of time. The Bitcoin’s underlying blockchain concept led to the inception of several other implementations to make use of this transparent system to solve problems with centralized systems. There are several blockchain implementations which employ various flavors of distributed consensus architectures to achieve finality. That’s why blockchain is widely being used for several use cases like:
- Consumer Privacy
- Retail banking
- Management of digital assets
- Payment settlements
- Wallet implementations
- Supply chain management
- Financial ledger
- Crowd funding
- Cross border payments
The blockchain implementations could be broadly categorized into two categories based on the requirements of business use cases:
- Public: A public blockchain is open and anyone can take part in executing the transactions on the network
- Private: A private blockchain is closed and is restricted to invite-based participation.
Some blockchain implementations have support for smart contracts. Smart contracts are self- executing programs which contain business clauses and are embedded over a network. The validating nodes validate or accept transaction based on the rules programmed in a contract. Several implementations have support for different programming languages that could be utilized to implement a smart contract. Following table shows a comparison of a few popular blockchain implementations:
|Ownership||Bitcoin Developers||Ethereum Developers||The Linux Foundation|
|Smart Contracts||None||Solidity Programming Language||Chaincode supported with Java, Go|
Every implementation has its own pros and cons based on them being permission less or permissioned or for instance, Ethereum supports smart contracts in order to implement any generic use case while Bitcoin does not. Hyperledger has support for absolutely private blockchain and has components pluggable while Ethereum is not. The immutability of ledger records which form the single source of truth and transparent transaction execution has made blockchain revolutionary as compared to the traditional centralized systems that most businesses rely on today. Therefore large financial institutions and business networks involving transactions across several parties are devising new ways or migrating to distributed ledger technology which is the basis of Blockchain.