Let’s understand BLOCKCHAIN!!!
With the invention of bitcoin in 2008 the world got introduced to a new concept which will revolutionize the society. This is something which will impact every other industry including- finance, govt and media. Some people categorize as revolution whereas some people say it as evolution and it will take some time before everyone accept. On the other many big organizations including private bank have started researching about this technology and started developing POCs(proof of concept). It is the next big disruption after internet. It is a technology that will impact on current technologies and has ability to change them at fundamental level.
Before we understand blockchain lets understand distributed systems(DS) because blockchain is decentralized distributed systems.
DS is a computing process where more than one nodes(computers) work with each other to achieve a common outcome. These machines/nodes/computers are designed and coded in such a way that end user see it as a single logical platform.
Functionalities of a node
- Nodes are individuals systems in a DS
- Nodes are capable of sending and receiving information from one node to another
- Nodes have their own memory and processor
- Node can exhibit fault behaviour which is called byzantine node.
WHY there was a need of decentralized distributed system when DS already exists?
Well. the main problem in DS is the coordination b/w nodes and fault tolerance. Means even if some nodes becomes faulty or network breaks the DS will break which should not happen ideally. Researchers have been putting efforts to overcome this issues. In 2002, Seth Gilbert and Nancy Lynch proposed a CAP theorem which states that:
DS cannot have Consistency(all nodes have latest copy of data), Availability of nodes and Partition tolerance( if ’n’ of nodes fails the DS continues to operate correctly) simultaneously. It has been proven that all three properties are extremely difficult to achieve in a DS. But blockchain manages to achieve all these properties.
In blockchain all the nodes are available 24x7. In order to achieve fault tolerance, replication is used. Consistency is achieved using consensus algorithm to ensure all nodes have same data copy.
Let’s define what is blockchain- it is a peer-peer distributed ledger that is secured cryptographically, hard to change(immutable) and is updated only by consensus/agreement among peers/nodes.
Blockchain can be thought as a layer build over internet. It is analogous to protocols(SMTP, HTTP, FTP) running over TCP/IP. On the other hand blockchaincan be defined as peer to peer exchange without any central trusted authority. This allows blockchain to be decentralized consensus mechanism where no authority is in charge of database.
There are different types of blockchain:
- Public blockchain- As the name reflects, it is an open/public blockchain and anyone can participate as a node in the decision making. Like your computer system can join the network and become a node. The ledgers will be updated on the network and no one owns the ledger. This is also called as permission- less ledgers/blockchain.
- Private blockchain- These blockchains deviate from the core idea of decentralization in blockchain technology. In specific private settings there might be a need of sharing data and provide some guarantee and authenticity.
- Tokenized Blockchain- Standard public blockchains thats generate tokens/cryptocurrency for transactions between peers. They do so my mining or ICOs(initial distribution)
- Tokenless- Blockchain where there is no need to transfer value between nodes however they only share data among trusted parties.
“Instead of putting the taxi driver out of a job, blockhchain puts Uber out of a job and lets the taxi driver work with the customer directly.”
I will be talking about generic terms used in blockchain, consensus and challenges in blockchain in the next articles. Please share your feedback..