# Niverel

### Site Tools

en:mathematics:hash-trees:pow

# Proof of work chains

Satoshi Nakamoto explains in an email how Proof of Work provides a probabilistic solution to the Byzantine Generals Problem, which means the confidence that a consensus is reached is growing with every block added to the chain, but it never reaches 100%.

In Blockchain, the PoW algorithm is used to confirm transactions and produce new blocks to the chain. Miners compete against each other to complete transactions on the network and get rewarded. Users send each other digital tokens and a decentralised ledger gathers all the transactions into blocks. The responsibility for confirming the transactions and arranging the blocks falls on special nodes called miners, and a process called mining.

The difficulty is to find an agreement among members (consensus) on the order of transactions which must be added. Proof of work is one of the mechanisms used in which this agreement can be made while guarding the security of the network, specifically that a new member must first be demonstrate involvement before its blocks can be added to the blockchain. In blockchain, this involvement requires putting computing capacity at the disposal of the members of the network. The computing power is used for how to find the input knowing the output (hash functions), calculating numbers as a multiplication of two other numbers (prime factorisation) and if need be, for finding a chain of hash function values (guided tour puzzle protocol).

Miners solve the puzzle, form the new block and confirm the transactions. How complex a puzzle is depends on the number of users, the current power and the network load. The hash of each block contains the hash of the previous block, which increases security and prevents block violation. If a miner manages to solve the sent puzzle, the new block is formed. The transactions are placed in this block and considered confirmed.

## Assumptions

The problem can be solved because all nodes agree on a common truth and nothing ever goes wrong:

• It doesn’t matter how much money you have in your wallet. What matters is to have large computational power to solve the puzzles and form new blocks. Thus, the holders of huge amounts of money are not in charge of making decisions for the entire network.
• Accurate work and speed of the Blockchain system using PoW depends on miners solving puzzles. Miners will not have to trust other nodes which would violate one of the most important features of Blockchain, transparency.
• PoW imposes some limits on actions in the network. Efficient attack requires a lot of computational power and a lot of time to do the calculations. Therefore, the attack is possible but kind of useless since the costs are too high.
• Most miners and node operators act either altruistic (true to the code no matter what comes) or economically egoistic (try to make as much money as possible). Purely destructive miners are a minority because it would not serve them a purpose.
• Network lag is negligible. It is assumed that no node will ever fall behind the chain, it will have received a block before the next one is mined.

## Reality

### Fairness

• That everybody has the same opportunity is not true. Computational power costs energy (electricity). The real world wallets are not the same to begin with.
• People figured out that if they pool their computing power together for the sake of mining, they can make money faster. Trust issue. To effectively pool mining power together in a PoW system, all poolers need to give control of their mining power to a central wallet (a localised centralisation), which claims the reward for all the blocks the pool mines and whose owner (hopefully) splits it among the miners based on their contribution.
• As the network grows, the algorithms need more and more computing power and the complexity can lead to situations where only mining farms and pools can still participate.

### Attacks

• When two blocks are competing for the same position in the blockchain, most cryptocurrencies follow a “Longest Valid Blockchain” rule, in which the network will adopt whichever block has the most blocks attached after it, so long as the block is valid. A pool can get enough mining power to mine faster than the rest of the network combined (more than 50% of the total mining power), and can modify a block. If the modified blockchain is longer than the original blockchain, it becomes accepted by the network. If done repeatedly, the attackers can modify the blockchain at will and have complete control over it; the blockchain becomes centralised. In short, a 51% attack is possible, which is not a profitable option, but a destructive option. Once it gets public exposure, the network is considered compromised, leading to an outflow of users and bringing the cryptocurrency price down. All funds lose their value.
• Some miners like governments, big companies or investors who shorted a cryptocurrency might get a benefit out of destroying it.

### Network

• Network lag is not negligible. The shorter the block time is, the higher the probability of two blocks being mined at the same time and therefore forking the chain. It is then the next block that makes one of the chains longer and causes all of the non-destructive nodes to switch to the longer chain and by that agreeing on a common truth again. That is why a transaction is not confirmed after only one block. After a few blocks have been mined, it is likely that a transaction is correct and will never be changed.