Blockchain – Proof of Work (PoW)
Proof of Work consensus is the mechanism of choice for the majority of cryptocurrencies currently in circulation. The algorithm is used to verify the transaction and create a new block in the blockchain. The idea for Proof of Work(PoW) was first published in 1993 by Cynthia Dwork and Moni Naor and was later applied by Satoshi Nakamoto in the Bitcoin paper in 2008. The term “proof of work” was first used by Markus Jakobsson and Ari Juels in a publication in 1999.
Cryptocurrencies like Ethereum, Litecoin, and Bitcoin are currently using PoW.
Principle: A solution that is difficult to find but is easy to verify.
Purpose of PoW
The purpose of a consensus mechanism is to bring all the nodes in agreement, that is, trust one another, in an environment where the nodes don’t trust each other.
- All the transactions in the new block are then validated and the new block is then added to the blockchain.
- The block will get added to the chain which has the longest block height(see blockchain forks to understand how multiple chains can exist at a point in time).
- Miners(special computers on the network) perform computation work in solving a complex mathematical problem to add the block to the network, hence named, Proof-of-Work.
- With time, the mathematical problem becomes more complex.
Features of PoW
There are mainly two features that have contributed to the wide popularity of this consensus protocol and they are:
- It is hard to find a solution to a mathematical problem.
- It is easy to verify the correctness of that solution.
How Does PoW Work?
The PoW consensus algorithm involves verifying a transaction through the mining process. This section focuses on discussing the mining process and resource consumption during the mining process.
The Proof of Work consensus algorithm involves solving a computationally challenging puzzle in order to create new blocks in the Bitcoin blockchain. The process is known as ‘mining’, and the nodes in the network that engages in mining are known as ‘miners’.
- The incentive for mining transactions lies in economic payoffs, where competing miners are rewarded with 6.25 bitcoins and a small transaction fee.
- This reward will get reduced by half its current value with time.
Energy and Time consumption in Mining:
The process of verifying the transactions in the block to be added, organizing these transactions in chronological order in the block, and announcing the newly mined block to the entire network does not take much energy and time.
- The energy-consuming part is solving the ‘hard mathematical problem’ to link the new block to the last block in the valid blockchain.
- When a miner finally finds the right solution, the node broadcasts it to the whole network at the same time, receiving a cryptocurrency prize (the reward) provided by the PoW protocol.
- Currently, mining a block in the bitcoin network gives the winning miner 6.25 bitcoins.
- The amount of bitcoins won halves every four years. So, the next deduction in the amount of bitcoin is due at around 2024(with the current rate and growth).
- With more miners comes the inevitability of the time it takes to mine the new block getting shorter.
- This means that the new blocks are found faster. In order to consistently find 1 block every 10 minutes. (That is the amount of time that the bitcoin developers think is necessary for a steady and diminishing flow of new coins until the maximum number of 21 million is reached (expected some time with the current rate in around 2140)), the Bitcoin network regularly changes the difficulty level of mining a new block.
Bitcoin’s PoW System
Bitcoin uses the Hashcash Proof of Work system as the mining basis. The ‘hard mathematical problem’ can be written in an abstract way like below :
Given data A, find a number x such as that the hash of x appended to A results is a number less than B.
- The miners bundle up a group of transactions into a block and try to mine. To mine it, a hard mathematical problem has to be solved.
- This problem is called the proof of work problem which has to be solved to show that the miner has done some work in finding out the solution to the problem and hence the mined block must be valid.
- The answer to the problem needs to be a lower number than the hash of the block for it to be accepted, known as the ‘target hash’.
A target hash is a number that the header of a hashed block must be equal to or less than for a new block, along with the reward, to be awarded to a miner.
The lower a target is, the more difficult it is to generate a block.
- A miner continues testing different unique values (known as a nonce(s)) until a suitable one is produced.
- The miner who manages to solve the problem gets the bitcoin reward and adds the block to the blockchain by broadcasting that the block has been mined.
Note: The target hash adjusts once every 2016 block or approximately once every 2 weeks. All the miners immediately stop working on the said block and start mining the next block.
Common cryptographic protocols used in PoW: The most widely used proof-of-work consensus is based on SHA-256 and was introduced as a part of Bitcoin. Others include Scrypt, SHA-3, scrypt-jane, scrypt-n, etc.
Challenges With PoW
The Proof-of-Work consensus mechanism has some issues which are as follows:
- The 51% risk: If a controlling entity owns 51% or more than 51% of nodes in the network, the entity can corrupt the blockchain by gaining the majority of the network.
- Time-consuming: Miners have to check over many nonce values to find the right solution to the puzzle that must be solved to mine the block, which is a time-consuming process.
- Resource consumption: Miners consume high amounts of computing power in order to find the solution to the hard mathematical puzzle. It leads to a waste of precious resources(money, energy, space, hardware). It is expected that 0.3% of the world’s electricity will be spent to verify transactions by the end of 2018.
- Not instantaneous transaction: Transaction confirmation takes about 10–60 minutes. So, it is not an instantaneous transaction; because it takes some time to mine the transaction and add it to the blockchain thus committing the transaction.