The Ethereum frontier network currently uses a proof of work (PoW) consensus algorithm, while a future version of the network plans to utilise a proof of stake (PoS) algorithm instead. What's the difference between these two types of algorithm?
Let us start by what they have in common: they are both algorithms for reaching consensus on the blockchain.
Without going into too much details, we need consensus because anyone can create a block; while we only want an unique chain, so we want a way to decide which block we should trust.
Proof of work has the nice property that you can use Bayes' Theorem and the laws of Thermodynamics to prove that a given block has indeed required a certain amount of work to be mined. That way, users can simply pick the longest valid chain with the highest amount of work as the correct chain.
But this implies that Proof of Work is extremely inefficient in term of energy, and therefore also very expensive; which incentivize miners to centralize the hashing power -- obviously not desirable for a network whose goal is to minimize the need to trust third parties.
Proof of Stake isn't about mining, it's about validating. In effect blocks still need to be created by someone, and who gets to create the next block depends on the specific Proof of Stake algorithm, but the selection process must have some kind of randomness, or at least distribute voting shares properly (otherwise we revert to a centralized system).
In PoS, each validator owns some stake in the network, ether in the case of Ethereum, that they bond. Bonding stake means you deposit some money into the network, and in some sense use it as a collateral to vouch for a block. In PoW you know a chain is valid because lots of work is behind it, while in PoS you trust the chain with the highest collateral.
There are important differences between the various Proof of Stake algorithms that are being developed. This question is about PoW vs. PoS so I'm keeping the answer very general.
Ethereum is going to use Casper, where the stake of malicious validators is going to get (partially) slashed, for example if they sign two (competing) blocks with too high a probability.
The goal of a consensus algorithm in a public blockchain network is to let many different users agree on the current state of the blockchain even though they don't trust each other or any central authority. This is a challenging problem, and until the Bitcoin network was launched, it had remained unsolved.
Bitcoin's solution was to use something called Proof of Work (or "mining", or "hashing"), where participating users worked to solve difficult mathematical problems, and then published the solutions. Because it takes real-world resources like computers and electricity to find these solutions, there's no way to "cheat" and pretend that you represent a bigger portion of the mining power on the network than you actually do. As a result, PoW algorithms are able to use the number and difficulty of solutions being found to measure how much of the network agrees on the current state of the blockchain. The only way to prevent the legitimate users from coming to agreement about the state of the blockchain is to control enough of the total computing power that you can pretend the group disagrees with itself, or even that your opinion is the real consensus and all the other users are lying about the state of the blockchain. That requirement for resources is a good thing, because it means that interfering with the group's consensus takes a lot of resources (a.k.a. money).
Unfortunately, PoW consensus algorithms as we presently know them require a constant, ongoing expenditure of resources just to work normally. The work has to be done regardless of whether someone is trying to interfere or not, and someone has to pay for it. Most existing PoW blockchains, such as Bitcoin, pay for these costs with the pre-agreed creation of coins, also known as inflation. This salary has to be doled out whether or not anyone is attacking, which seems quite inefficient. Motivated by this and other considerations, a new solution to the problem of decentralised consensus was proposed, referred to as Proof of Stake.
In this new algorithm, agreement within the blockchain would be measured not on the basis of how much computing power agrees with the current state, but instead on the basis of how much digital currency agrees with the current state. The owners of this digital currency hold a financial stake in the success of the blockchain that tracks it, which is where we get the name for the algorithm.
Short version - POW requires miners or physical computer to be turned on and processing the transaction. This can be inefficient since better computers are created and optimized for mining which may lead to centralization such as bitcoin. Bitcoin maybe viewed as centralized in China by a small group of people holding the mining power which may be greater than 51%.
POS is greener and requires no energy. You have to essentially lock up your coins/tokens to mine or process transactions. There are currently issues with POS as well such as a small group of people owning a majority of tokens/coins can double spend. There's also the nothing at risk problem which says that if there is a fork, you can continue on both forks until one dies. I think Vitalik and Vlad may have found a solution of CBB (consensus by bet). Read more here:
the_truth = Agreed data structure (Block) containing valid future state of the ethereum virtual machine (and related information) as calculated by me using the rules set out in the yellow paper.
rand = 8 byte random number
Proof of Work:
I'll race you to find the hash value of
randthat is less than the agreed difficulty level, prize for the winner.
When someone wins, I'll check I agree then calculate a new version of
the_truthand start a new race.
Proof of Stake:
I'll bet you that
the_truthwill be the agreed future state of the ethereum virtual machine
Proof of Work (PoW) and Proof of Stake (PoS) are the two protocols having same purpose and the purpose is to establish consensus on the blockchain i.e. we want to agree on a certain state of blockchain or all nodes need to agree on a certain state of blockchain. So guys when a block is produced, it needs to be appended to the blockchain and all the miners try to mine it. Let me clear it.
When a block arrives, we hash all of the transactions in the block and we get a hash of those transactions then we need to find proof or in the blockchain it's called "nonce (random bits)". Again from starting, the miners recieve hash of the new block with transactions and they need to find the other part (Proof or nonce) so when they append those two together into a string and after hashing this string, they should recieve an answer and the miners know what they are looking for and this answer is publicly known.
In bitcoin blockchain, the string of the answer which is a hash, it need to start with certain number of zeroes and all the miners know this thing. The whole challenge is to find the nonce and it's very hard to come up with the correct nonce so the miners try different different nonces with the hash of the block to find the correct nonce, they do see their new hash which start with certain number of zeroes and if they dont find zeroes in starting then they again try a new different nonce. They try this thing again and again to find the correct answer. It takes a lot of time before a miner finds the correct nonce to get the correct answer. The first miner who finds this correct nonce for that block will be awarded some bitcoins and the block will be appended to the blockchain and all of the miners will be notified that this block is mined and appended.
It's costly and inefficient because electricity is being used by millions of machines to find that nonce.
This was the explanation of Proof of Work.....i hope you got it. Lets come to Proof of Stake.
It is like PoW however it tries to eliminate the issues related to CPUs and GPUs. In PoS, the miner who have the most money in wallet will be most likely to mine the new blocks and it will no longer be called mining. Instead of counting CPUs or GPUs or how much money you have spent on hardware, it counts the money you have in blockchain or in your wallet and this is done because the system thinks that when you have a lot money in the blockchain, you are less likely to harm the network and to mine the false blocks and if you mine false blocks you will decrease the value of your money in the blockchain. In this, the person with more money in the blockchain will be able to mine the new block.
Ethereum is trying to switch on PoS with it's new PoS protocol called Casper, it is a feature which states that the malicious validator (in case of PoS, miner is called validator) who validates the block will lose money if he/she validates a malicious block that is not correct.
I think it's enough clear now b/w PoW and PoS. I want to add more. In PoS, when a validator validates an algo or block, he just put some money or stake to validate that block, you cant get it back until the block is validated or you can actually lose your money which is put to solve that block, if you validate a false block in casper update.