Proof-of-work is one of the two most commonly used blockchain consensus algorithms (together with Proof-of-stake).
The Bitcoin network is permissionless; no central entity controls either the production of Bitcoins or is involved in their transfer. The Bitcoin Proof-of-work protocol is a form of Nakamoto consensus for node selection, and is designed principally to protect against Byzantine faults (i.e. principally against ‘double spend’ transactions by malicious nodes). Nodes attempt to solve a cryptographic problem where a) the probability of finding the solution is proportional to the computational effort expended, and b) the solution is computationally so difficult that it can only reasonably be achieved by making random guesses.
i) Any node in the network can attempt a solution;
ii) Large numbers of nodes will be competing over a material length of time (i.e. approximately 10 minutes) to solve the puzzle; and
iii) The solution can only be found randomly;
A node acting maliciously has little opportunity to impose its ‘double spending’ transaction block on the network, unless the attacker has ‘over 50%’ (actually, as little as 30% is required) of the computational resources of the network. Therefore, Proof-of-work renders a Sybil attack unfeasible unless an attacker can assemble these resources.
Sometimes, more than one node might find a solution at any given moment. When this occurs, each of these nodes will propose a block, and broadcast it to the network. These blocks will be picked up by nearby blocks and the blockchain will fork temporarily. However as more blocks are added on each of these chains, eventually one fork will become longer than the other, and the protocol will pick this as the official chain and drop the other. Bitcoin therefore guarantees eventual ‘consistency’ at the expense of ‘termination’ (see FLP Impossibility), due to the temporary forks.
The Bitcoin node elected to create a new block is compensated through new coins ‘mined’ with that block, and by receiving the fees associated with the transactions in that block. As the computational effort involved in mining coins is substantial, miners will focus on only a single fork of the blockchain, the one they believe to be the official chain (i.e. the one with the most blocks).
Several weaknesses are leveled against Bitcoin’s Proof-of-Work including Significant energy expenditure as considerable energy is consumed mining Bitcoin, but Proof-of-Work achieves nothing of value beyond the Bitcoin network; i.e. the cryptographic solutions are of no value in themselves.
As there are big differences in CPU power, well-intentioned users with low power CPUs lose out to malicious user with more powerful machines. Therefore, Bitcoin’s Proof-of-work fails to satisfy the requirement that a consensus algorithm should implement randomized node selection across the broadest possible population of participants. This weakness increases the risk of mining centralization (or dominance by a select group of nodes).
New blocks are generated approximately every 10 minutes. Waiting for confirmation that a given block has been accepted into the blockchain therefore implies waiting for several further blocks to be generated on top of it, to confirm that the transaction was not written into a block on a discarded fork. Confirmations might take up to an hour.
Low Transaction Rate
The maximum block size allowed under Bitcoin’s Proof-of-work consensus algorithm imposes a maximum transaction rate (7 transactions/second) on the Bitcoin network.