Overview#Proof-of-Stake (PoS) is a Distributed Consensus protocol that pseudo-randomly selects validators for block creation, thereby ensuring that no validator can predict its turn in advance.
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.
Naïve Proof-of-Stake 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.
Ethereum’s Proof-of-Stake 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.