What is Proof of Work?
By: Ofir Beigel | Last updated: 4/24/20
Proof of Work (POW) is the consensus mechanism used in Bitcoin mining. What does this confusing sentence mean? Keep on reading to find out.
What is Proof of Work Summary
Proof of Work is a term for the rules dictating who gets to update transactions on the Bitcoin blockchain.
It basically means that in order to gain the right to update the next block of transactions, you need to provide proof to a challenge that is hard to solve yet can be easily verified by the network. Hence providing proof that you’ve done work in solving it.
That’s Proof of Work in a nutshell. For a more detailed explanation keep on reading, here’s what I’ll cover:
Don’t like to Read? Watch Our Short Video Tutorial Instead
Bitcoin, at its core, is a decentralized ledger that is updated by everyone. Since you can’t really have each person having his own version of the ledger, you need to decide on some sort of consensus mechanism.
A consensus mechanism is a fancy way of describing rules that everyone agrees on, in regards to who gets to update the ledger. There are many types of consensus mechanisms, for example:
- Proof of Work (POW)
- Proof of Stake (POS)
- Delegated Proof of Stake (DPOS)
- Proof of Capacity (POC)
- Proof of Elapsed Time (POET)
- Practical Byzantine Fault Tolerance (PBFT)
- Directed Acyclic Graph (DAG)
- And so on….
Each one of these consensus mechanisms has different rules describing how you update a public ledger.
In order for a miner to gain the right to update the ledger, he will have to provide an answer, also known as a proof, to a specific challenge. This proof is difficult to produce but is very easily validated.
For example – guessing a combination to a lock is a proof to a challenge. It’s very hard to produce this since you will need to guess many different combinations – but once produced it’s easy to validate. Just enter the combination and see if the lock opens.
Another example could be solving a Rubik’s cube – again, very hard to produce, very easy to validate that the solution is correct.
In Bitcoin’s case, the challenge is finding a random number (nonce), that when you add it to your block of transactions and hash it (i.e. run some sort of mathematical formula on it), the result will be smaller than the target number set by the system.
Sounds confusing? It is. It all comes from the field of mathematics and the technicalities of the process aren’t really relevant for this post. What you need to remember is this:
It’s impossible to calculate this number, the only way to find it is through trial and error (i.e. guessing). So miners spend all day long guessing numbers until one of them finds the right one. Once that happens, the miner will present his solution to the network (i.e. his proof) and everyone will agree that his block will be the next block of transactions.
This mechanism makes sure that only someone who has invested enough computational power ( or “work”) in guessing the number will earn the right to update the ledger of transactions.
There’s a lot of criticism about the PoW consensus algorithm. Mainly, that a lot of computing power and electricity are wasted just for the sake of generating random guesses.
Additionally, since miners group together in mining pools, this can create a problem of centralization where a specific pool has so much mining power it may conduct a 51% attack (i.e. gaining control over the blockchain).
Last, with PoW, by scaling your mining operation you’re exponentially more likely to mine the next block. This gives richer miners an unfair advantage.
Due to the above, people have started to suggest different consensus mechanisms that are less power consuming, such as Proof of Stake.
One alternative suggested to the proof of work concept is Proof of Stake. Rather than requiring a miner to produce a proof to a challenge, the proof of stake system requires to stake a certain amount of money. Let me explain…
Proof of Stake (PoS) doesn’t involve miners, it has validators instead. In order to become a validator, you need to stake a certain amount of coins. The more coins you stake, the higher your chances to be randomly chosen as the next validator.
If you are chosen as a validator and maliciously approve fraudulent transactions, your stake will be taken away. This gives validators an economic incentive to follow the rules.
PoS is considered an easier, cheaper and less wasteful alternative to PoW. However, it has its share of disadvantages.
First, you can buy your way to a 51% attack. Granted, you’ll need around 51% of a coin’s market cap (several hundred billion in Bitcoin’s case), but it’s still possible. With PoW, this scenario is impossible to do on robust networks such as Bitcoin.
Second, if validators are chosen only by the amount of money they staked, we’re still giving an unfair advantage to rich people. More than that, we’re actually making them richer, as they will reap all of the network transaction fees.
If you want to create a decentralized network, you’ll need a consensus algorithm. While Proof of Work is the most popular one today, there are several alternatives.
For now, it seems that PoW has demonstrated its ability to safeguard the Bitcoin network from malicious actors, as no one has ever managed to conduct a 51% attack on the network or undo past transactions.
On the downside, the Bitcoin network consumes enormous amounts of power. Some would say this is a necessary tradeoff.
What’s your take on Proof of Work? Do you think it’s worth it? Have you heard of any other interesting consensus algorithms? Let me know in the comment section below.