Blockchain is really a big deal which is heard a lot nowadays. It sounds cool but non-technical guy really does not gets what it is. I personally don’t clearly understand deeply as well. But I know how to implement it to solve actual problems, how the data structure works and that is what we have to deal with.
A Blockchain is a continuously growing list of records, called blocks, which are linked and secured using cryptography.
Basically, a blockchain is a data structure like linked lists with a growing set of nodes or blocks. Most of us would have learned about linked lists at school. Each node has several attributes including id, data, next node’s address etc. So on the blockchain is a complex data structure.
In a blockchain, each node is called a “block” and each block has an index, timestamp, hash of itself, hash of the previous block and of the data. The data can be anything. In a cryptocurrency, the data is the details of the transaction like sender’s username, receiver’s username and amount and so on.
Actually Blockchain was implemented in 1991 to timestamp digital documents, to make sure they are not backdated or tampered. But at that time it didn’t get much attention as timestamping documents is not as cool as bitcoins.
The special thing about the blockchain is that it can’t easily be tampered.
The hash of each block gives it a unique identity like a fingerprint or eyeprint. And this hash is generated only once when the block is created. It’s generated using the values of all the other attributes of the block. So if any of the values are changed, the hash will no more be valid and the entire block will be invalid. So this way no one can tamper the values stored in the block.
One more thing is that if the hash is also recalculated, then it will not be detected as tampering. To avoid this, we store the hash of the previous block. This creates a chain of the blocks and if the hash of any block changes, the chain will be broken and the entire thing will be invalid. To successfully hack a blockchain, the hacker has to know the location of all blocks and simultaneously change all their hashes and relink the whole blockchain. This is not impossible but extremely tedious as there is a mandatory gap of 10 minutes between each transaction. So it beats the whole purpose of life.
Actually these blockchains are not stored in a centralized server. But the blocks are distributed across the internet and they are connected using a peer-to-peer network. When someone joins the network, they are given the full copy of the network. When they create a new block, the block is sent to all the peers and the validity of the chain is checked. If everything checks out the block is connected to the chain.