Proof-of-Work Vs. Proof-of-Stake Explained
In the near future, Ethereum plans to switch from Proof-of-Work (PoW) based mining to Proof-of-Stake (PoS) mining. While both PoW and PoS are algorithms for reaching consensus on the blockchain, they go about it in different ways.
Since anyone can create a block, there needs to be a way that everyone on the blockchain can reach consensus, deciding together what block accurately represents recent transactions across the network. Without a central authority, trust comes from creating consensus algorithms that are very, very hard to cheat.
Proof-of-Work happens through miners trying to solve exceptionally difficult math problems. Finding a solution is basically a guessing game, but checking if a solution is correct is easy. Miners aren’t able to cheat the system because it takes real-world resources to work out these solutions.
That’s where a main issue with PoW stems from: these real-world resources are computers and electricity. It takes a lot of power to run the computers, or clusters of computers, that calculate different potential solutions. From an ecological standpoint, this isn’t ideal. This leads miners to have high energy costs and this is bad for the environment.
The fact that you need a serious amount of computing power, more than the average person could afford, or would even be able to work with, means the mining community is getting smaller and more exclusive. This goes against the idea of decentralization, and could potentially lead to a 51% attack.
A 51% attack is when a miner, or more likely a mining pool, controls 51% of the network’s computational power. With that ability, they could invalidate valid transactions and double spend funds. They’d achieve this through creating and confirming their own fraudulent blocks, and do it so quickly, the rest of the mining community creating genuine blocks would have their legitimate work invalidated.
That’s where PoS could really help. Even if someone owned 51% of a digital currency, it would not be in their interest to attack something in which they have a majority share. Also, it’s very unlikely that anyone would be interested in buying up 51% of a currency, due to it being prohibitively expensive. According to game theory, those with a larger stake in a cryptocurrency should want to maintain a secure network. Any attack would only serve to destabilize the digital currency, diminishing the value of their stake.
PoS happens by a miner putting up a stake, or locking up an amount of their coins, to verify a block of transactions. The cryptographic calculations in PoS are much simpler for computers to solve: you only need to prove you own a certain percentage of all coins available in a given currency. For example, if you somehow owned 2% of all Ether (ETH), you’d be able to mine 2% of all transactions across Ethereum.
PoS would be a more fair system than PoW, as technically anyone could become a miner. PoS offers a linear scale regarding the percentage of blocks a miner could confirm, since it’s based on that person’s stake in the cryptocurrency. That means someone with ten times more coins (e.g. - $10,000 vs. $1,000) would only mine ten times more blocks. Under PoW protocols, spending ten times as much money on mining hardware will produce higher computational power logarithmically, allow for more equipment due to the nature of reduced prices when buying in bulk, and might provide further advantages since highly expensive equipment often functions exponentially better than less expensive counterparts.
Switching to PoS could help to encourage more community participation in Ethereum, as well as aid decentralization. Taking mining out of the hands of the few pools of GPU farms doing the bulk of mining, which somewhat resembles an oligopoly, would distribute the work evenly across the network, leading to a more democratized system.
Making the Switch
Ethereum is planning a hardfork in the near future to switch from PoW to a PoS system, most likely using a protocol called Casper. Specifics are still undecided, and Casper may not ultimately be the protocol used in Ethereum. Gustav Simonsson, a contributor to Ethereum, was on Ethereum’s subreddit and spoke about potential options, “[a]t string.technology we're exploring PoS algorithms using BLS/threshold which we believe have interesting tradeoffs compared to Casper. We're aiming to open source & publish more info on BLS/threshold soon (for use in both private & public Ethereum-based chains).” So while Ethereum seems to be looking into many options and several variations of PoS protocols, Casper still appears to be the frontrunner.
PoS would do away with traditional miners, and create virtual miners, or validators. To become a validator you’d need to be bonded, meaning you’d commit a certain amount of Ether to the Casper contract. The probability of a validator producing a block is proportional to their stake, which is similar to PoW where the probability of producing a block is proportional to a miner’s computational hashing power.
Once you’ve staked your Ether (ETH), you no longer have access to it as long as you’re mining. Ethereum has mentioned a proposed minimum and maximum amount of Ether a validator could stake (e.g. - 1,500 ETH to 60,000 ETH.) The more you stake, the better your chance of solving a block. These specific numbers aren’t set in stone, and most likely won’t be until the protocol is fully designed. The idea is to make sure only a certain percentage of all coins mined could be locked up in the Casper contract. This would solve any issue where mass hoarding of coins could impact the overall value of the currency.
As a validator, the PoS protocol will randomly assign you the right to create a block, based upon the value of your stake against the value of all Ether. Every block, a sequence of validators is pseudorandomly selected to make the next block. The first person in the sequence will usually make the block. If they happen to be offline, during which time they’d incur penalties (which have yet to determined) and most likely be invalidated as a miner, the protocol would simply switch to the next validator in sequence, and so forth if necessary, until an online virtual miner creates a block.
When a validator wants to stop their virtual mining, they can withdraw their bond. Their Ether isn’t immediately returned though, they have to wait an (as of yet) unspecified amount of time (potentially 12-24 hours) before receiving their deposit. This is to ensure certain types of attacks and fraud aren’t possible, giving the blockchain enough time to grow so their deception can easily be invalidated.
While there are still many variables to be worked out, switching from Proof-of-Work to a Proof-of-Stake protocol isn’t just better for the environment, it helps to level the playing field for miners, and increases community participation. All of which is good for Ethereum.