Blockchain and Block Header
Blockchain is a database, or broadly distributed database, used mainly for concurrent transactions and one of the most popular implementations of blockchain is Bitcoin. Blockchain has several blocks, also called nodes, and all the blocks are managed with the help of the block header.
Constituents of Block Header are :
- Merkle Root
- Difficulty Target
- Previous Hash
Timestamp in the blockchain is used as proof that the particular block is used at what instance of a time, also this timestamp is used as a parameter to verify the authenticity of any block.
It states the version that the particular block is using, there are three types of Blockchain version.
- Blockchain Version 1.0(cryptocurrency)-It used a public ledger to store the data, for example, Bitcoin.
- Blockchain Version 2.0(smart Contract)- It is called smart contracts which is self-executing programs, for example, Ethereum.
- Blockchain Version 3.0(DAPPS)- It is used to create a decentralized structure, for example, tor Browser.
- Blockchain Version 4.0(Blockchain for Industry)- It is used to create a scalable, affordable blockchain network such that more people could use it.
Merkle Root :
A Merkle root uses mathematical formulas to check if the data is not corrupted, hacked, or manipulated. For example, Suppose one block has 10 transactions, then to identify that block we need 10 transactions to combine and form one Hash Value, so it uses the concept of the binary tree to create the hash of the block and that value is called the Merkle Root(Please refer article Introduction to Merkle tree).
Difficulty Target :
It specifies the complexity and the computation power required to mine the network, if we are having a high difficulty target then it implies that we need more a computationally expensive machine to mine it. For example, in order to increase the difficulty target algorithms such as SHA-2, SHA-3. RIPEMD, MD5,BLAKE2 is used.
It is abbreviated as ‘number only used once’ and it is a number which blockchain miners are finding and on average, it takes almost 10 times to find out the correct nonce. A nonce is a 32-bit number, having the maximum value as 2^(32) total possible value, so the job of the bitcoins miners is to find out the correct integer value which is a random integer between 0 and 2^(32), so it becomes computationally expensive.
Previous Hash :
As Blockchain is a collection of several interconnected nodes also called a block, so previous hash stores the hashed value of the previous node’s address, First block in the blockchain is called the Genesis Block and has no previous block hash value.