Block chain came into light on October 31, 2008, a Halloween day, when someone behind a “mask” Satoshi Nakamoto, came out with a whitepaper on it. This lead to the first implementation of this concept in the form of a cryptocurrency “Bitcoin” in 2009. Though the identity of the person or persons behind the alias Satoshi Nakamoto is still elusive, the concept introduced by the whitepaper was a big success. The concept of blockchain revolves around a server-less network of nodes using pear to pear communication for performing transactions, validating it and ensuring that no one tampers with it. It reinforces the idea of openness and transparency in internet. Lets dive deeper into the concept of blockchain.
Need for blockchain
You login to your online banking portal, go to the fund transfer section with the intention of transferring money to your friend. You select your friends bank account number , enter the amount you want to transfer and hit the transfer button. Exactly at the same time, in a remote data center,there are some updates in a database and you see a confirmation message that the amount has been transferred.
You may say, “OK? What is wrong in that ? Wasn’t that the way it was supposed to work?” There is nothing wrong in that. And that is exactly the way millions of digital transactions happens each day.
There is nothing wrong till you can trust the bank to keep their servers safe. Safe from any freak hacker, whole is constantly looking for any security loopholes in the system to steal your money. Trust that the bank would take all measures to protect your data in an event to physical damage to the server due to fire or a natural calamity.
All conventional digital transaction requires an authority you can trust. It can be a bank when you do a banking transaction, an insurance company when you purchase an insurance policy or any organization you trust.
What if I said it is possible to do a digital transaction where you don’t need to trust a central authority to safeguard your server because there is no central server but a network of thousands of distributed node collectively processing and storing your data. The data once written to it cannot be changed by design. A system that cannot be hacked.
Yes I am talking about a system based on blockchain. With blockchain we need not trust an individual or an organisation to protect data. The inherent design of the system ensures that our data is protected. It is ironic that the real identity of the inventor of the system, the purpose of which is to bring in transparency and build trust is still not known.
How blockchain works?
Let’s first understand what blockchain is. If we compare block chain to a database table, assume that it is database table allows only adding new records and reading existing records. This means existing records can neither be deleted or edited.
In addition to that each record has a unique identifier or hash which is derived from the unique identifier(hash) of previous record forming a chain of records. This record is called a block. The interlinking of the records or blocks ensures that it is possible to trace back from a record to the very first record in the chain. This means that if somebody modifies a block in the chain it can be easily detected because the chain will be broken unless all the blocks after the modified block is updated with a new hash.
Now imagine that this database is not maintained in just a single server, but will be copied to thousands of computers or nodes forming a network.
Now if a new block has to be added, all the nodes in the system will compete with each other to add the block. Only one node out of the thousands of node in the network win the race and add a new block winning an award in this process.
In order to add a block, the nodes complete by solving a puzzle which is usually a processor intensive task. The node that comes up with the solution first will get the opportunity to add the block, provided, rest of the nodes validates the calculation with a majority of more than 50%. This process of adding a new block is called mining.
Now let’s revisit the scenario where somebody tries to modify a block in the blockchain in between. They will have to validate the change by adding all the subsequent blocks with new hash. This change will have to be done in more than 50% of the systems in the network which is practically not possible in a big network. This makes blockchain one of the most secure systems.
Proof of work
In the previous section, we touched upon how various nodes compete with each other to add a block. Let’s go over that in more detail. Let’s see an example how this is done in case of Bitcoin. The essence of proof of work is to make the nodes participating in the mining process to spend a lot of computing power before they can add a block. This is to ensure that if a malicious node is trying to manipulate the system, that has to be an expensive affair. In Bitcoin, the nodes or miners compete with each other by solving a puzzle which is basically a process of guessing the input of a hashing function that would generate a specific output hash. Normally it takes around 10 minutes in Bitcoin network for a typical node to solve this puzzle. Usually a GPU based system is more efficient for such calculations due to which, the higher the number of GPUs available for any node, the more possible it is to solve the puzzle.
We mentioned earlier that in order for a hacker to change a block it will have to modify all the subsequent blocks. However since adding a block involves proof of work, by the time malicious node is trying to add new notes to cover-up malicious update, new blocks will be added in the system by genuine transactions. This makes tampering with data in a blockchain like Bitcoin almost impossible. Even if it is theoretically possible to add thousands of computers to the network so that more than 50% of the node in the system is malicious, it wouldn’t be financially viable to do that.
The process of adding a new block to block chain is termed as mining. All the nodes in the network will be racing to add a new block. However only one node will be successful in adding the block. All the mining nodes are part of the network expecting to gain a reward in return for adding a block. The credibility of the block chain depends on the number of nodes available in the network. Credibility of Bitcoin and Ethereum is high because of the large number of mining nodes which form the network.
In case of a blockchain adopting proof of work for mining, the systems required are systems with good GPU power .
Block chain classifications
Classifications based on access to block chain
Block chain can be classified based on who can access the block chain. Following are the classification
Permission less Blockchain
In a permission less block chain, any body is free to be part of it. It is available in public network. Anyone can add a node to the network and participate in mining or performance a wallet transaction. The only criteria is that they need to follow the rules set for the block chain.
Bitcoin and Ethereum are examples of permission less block chain.Source code of these types of block chain are normally maintained by open source communities.
Permissioned block chain
Permissioned block chain on the other hand is maintained by private organizations and are built to be used by specific user groups. Access to the block chain network is not open to everyone . Only those who are authorized to access the system can access it.
An example of permissioned block chain is Ripple. There a central authority builds the network of nodes and act as a transaction validator.
Classification based on the presence of a cryptocurrency
Blockchain made for cryptocurrency
Bitcoin the first blockchain ever built was made for a cryptocurrency. Here the main purpose of the blockchain was to build a digital currency as an alternative for dollar or similar fiat currencies, however without being restricted by national boundaries or central banks. Following are some advantages of a cryptocurrency like Bitcoin
Blockchain made for cryptocurrency and programmability
Though the first implementation of blockchain was for a cryptocurrency, it’s potential as a distributed platform for running programs in for of smart contracts were recognized quickly. Ethereum was a block chain built for this purpose.It is not only backed by a cryptocurrency but also supports execution of smart contracts which are basically programs written using programming language like solidity.
Blockchain for programmability only
Hyperledger is an example of a programming platform based on block chain. It is not backed by a cryptocurrency and it’s sole purpose is to write distributed applications.
Applications of blockchain
Today the concepts of blockchain is widely accepted and it has a very high potential of becoming an alternate way of storing value, data and executing contracts. Though blockchain is recognized as a platform for cryptocurrencies, its scope is not limited to that. Following are some examples of applications of blockchain.
Cryptocurrency is one of the most well known applications of blockchain. Some of the well known names are Bitcoin, Ethereum, Litecoin etc. Bitcoin was the first application of the blockchain concept and was introduced after the economic crisis of 2008 where many banks and financial institutions were on the verge of collapse. An argument in favor of Bitcoin, as a currency was that, no one could game the system by printing currency as needed. Bitcoins were created as part of a bitcoin mining process and there is a limit to the number of total Bitcoins that can be ever issued. This makes the cryptocurrency ‘inflation proof’ . Having mentioned that, the price at which bitcoin is bought or sold, in terms of dollar, is subject to speculations and its price changes subject to market forces. This has made cryptocurrencies an ideal candidate for investment and speculative trade, though the original purpose of cryptocurrencies were to be used as money for transactions
Blockchain is widely seen as a medium to store records like Land records, Medical records, Certificates etc. Today medical records of patients are owned by hospitals and not the patient themselves. This makes it difficult to track a patient’s medical history if the medical records are spread across different hospitals. It makes more sense if the medical records are maintained in blockchain in the ownership of the patient. The patients may grant a doctor access to his or her medical record for reference and updation whenever they visit them to treat an ailment.
Similar is the case of land records like sale deeds and other documents which needs to be transferred from one property owner to another on sale of the property .
Certificates issued by universities can also be through blockchain where it belongs to the candidate and could be easily verified by anyone.
Smart contracts are programs which performs a financial transaction on occurrence of a specific event.
An example of smart contract is an insurance policy issued through a smart contract where there policy amount will be released to the insurer on occurrence of a specific event like damage to the insured property.
Another example of a smart contract is a smart lottery ticket where the lottery amount will be transferred to a lucky winner when a lucky draw happens and a winner is selected.
Supply chain management
Another application of Blockchain in supply chain management where a product in supply chain can be traced back to its origin . These are used in supermarkets for tracking food items and other items where the customers may need to know the source of a product.
Internet of Things(IOT)
An application of Blockchain is for tracking IOT devices in real time.
Following are some of the challenges faced by block chain technology
In a blockchain that follows ‘proof of work’ principle for adding blocks , the mining process is known to be very energy intensive with use of GPU for processing. The energy consumption of one node need to be multiplied by the total number of nodes participating in a transaction to get the total energy consumption for a transaction. This is the cost the system has to pay for maintaining its trustworthiness .
A typical node of a blockchain stores the entire blocks of a blockchain . In the case of Bitcoin , the total size of the blockchain has been growing at an increasing rate. Now, when the article is being written, total size of Bitcoin blockchain is 230 GB. This means that if you want to set up your own bitcoin mining node with full blocks, you will have to download the entire 230 GB of data before you can start . As of now, though inconvenient, it is not an impossible task to download the entire blocks of the Bitcoin blockchain, but considering its current rate of growth things will be a lot tougher in years to come.
In a typical server based system, if the computational need of the system increases, it would be easy to scale it up by adding more server instances, but this rule cannot be applied the same way blockchain.
As the volume of transactions starts growing on blockchain, performance is going to be the next bottleneck where the blockchain adopts proof of work. Though thousands of nodes participate in the process of adding a block, the effective effort of only one node counts. This is because only one node is allowed to add a block. Moreover, the bulk of the computational effort goes into solving a puzzle and only a fraction of the effort goes into the real transaction and its validation. Taking the case of Bitcoin, it takes around 10 minutes for a new node to be added. For the entire duration of this 10 minutes all the nodes involved in the mining process compete with each other to solve a hash puzzle using brute force.
Consider millions of online financial transactions that take place across the globe each minute on thousands of servers . If blockchain is going to take over all financial transactions, it would be like funneling all these transactions through a single server which uses 99% of its computational effort on solving a puzzle rather than the main transaction itself
Even after considering all the challenges that the block chain technology is facing, the shear idea of distributed server less system with all the possibilities it brings to the table, it is hard to ignore. The technology is still evolving and lots of developments in the technology is taking place. Many alternates for the energy intensive Proof of Work are tried out in form of Proof of Selection, Proof of Stake,Proof of Burn,Proof Of Capacity,Proof of Elapsed Time etc.
Blockchain technology has to go a long way to replace the conventional server based technology . As of now, it will make more sense if we use the blockchain technology along with the conventional technologies to add more value to the system. Consider a supply chain management system built over the conventional web and mobile technology but some aspects of the system which relates to tracking an item may be done in blockchain. Huge success of Bitcoin as a cryptocurrency, built on block chain has proved that blockchain is a viable technology is it is here to stay.