Proof-of-Stake algorithms are designed to overcome the disadvantages of PoW algorithms in terms of the high
electricity consumption involved in mining operations.
PoS completely replaces the mining operation with an alternative approach involving a user’s stake or ownership of virtual currency in the blockchain system. Putting it another way, instead of a user spending say $2000 buying mining equipment to engage in PoW algorithm and winning a mining reward, with PoS she can buy $2000 worth of cryptocurrency and use it as stake to buy proportionate block creation chances in the blockchain system by becoming a validator.
The PoS algorithm pseudo-randomly selects validators for block creation, thereby ensuring that no validator can predict its turn in advance. Naïve PoS algorithms suffer from a problem called Nothing-at-Stake. These implementations do not provide incentives for nodes to vote on the correct block. Therefore nodes can vote on multiple blocks supporting multiple forks to maximize their chances of winning a reward as they do not “expend” anything in doing so as opposed to in PoW, where the node would be splitting up its resources to vote on multiple forks. This is the Nothing-at-Stake problem which needs to be tackled for a correct and efficient implementation of PoS.
Ethereum’s PoS algorithm, called Casper, is perhaps the most advanced PoS algorithm. Though multiple rounds
of PoCs are released, it is still in testing and is expected to be released in the Serenity version of the Ethereum
platform. Casper uses the concept of security deposits and bets to achieve consensus.
Nodes are allowed to be bonded with the Ethereum system by making significant security deposits set by the
protocol. These nodes are bonded validators and show commitment and interest in advancing the Ethereum
blockchain via staking their security deposits. The initial list of bonded validators is tracked by a special contract
known as the Casper contract. From there on, the bonded validator list can evolve based on newer nodes
joining in and older ones leaving the system. Each validator is pseudo-randomly selected to produce a block
from the active validator set, with the probability of selection linearly weighted by each validator’s deposit.
- If a validator is offline, a different validator is selected and this process repeats until an online validator is found
that creates a block.
- If a validator produces a block that gets included in the chain, they receive a block reward
equal to the total ether in the active validator set.
- If the validator produces a block that does not get included in the chain, the protocol works such that the validator loses the security deposit equal to the block reward.
This mechanism proposes to solve the Nothing-at-Stake problem where it stop nodes from producing blocks
that won’t get included in the main chain. Proof-of-Stake was first designed and a naïve version of it used by
PeerCoin. Different variations of PoS are also used by BitShares, NXT and Tendermint.