A Guide to Consensus Algorithms on Blockchain Networks Part 9

Introduction to Proof of Stake (PoS).

 

Proof of Stake is a consensus algorithm in which the chance of a miner to win the right to create a block of the PoS network’s blockchain depends on the miner’s economic stake in the chain.

Here is how proof of stake is different from proof of work and what the statement above means in simple plain language. On the Bitcoin network and other proof-of-work networks, miners create blocks of the blockchain by solving a mathematical problem. The problem is to come up with a nonce that will together with the data about transactions that have just occurred on the network generate a winning hash. The sentence above says nothing about miners having an economic stake in the network. To be generating winning hashes on the Bitcoin network, miners do not have to own any Bitcoins. The Bitcoin network will be rewarding the miners in Bitcoins for block creation, but miners can be selling the coins they get right away and own zero Bitcoins when creating the blocks of the Bitcoin blockchain.

Because of the existence of ASIC cards that only work on proof-of-work blockchains miners do have an interest in the value of the coins they mine being high, but again, this is indirect and there is no rule on the Bitcoin network that says that miners have to own Bitcoins.

In plain language, this is the main difference between proof-of-work and proof of stake.

In proof of stake, validators of the blocks on the blockchain take turns in validating the blocks. There are different ways to assign who takes a turn but what matters is that the chances of winning the right to take a turn depend on the size of the stake.

Here is a very primitive example of proof of stake in simple language. Let’s say there is a proof of stake network that has ten coins on it. User A has three coins, user B has five coins and user C has two coins. The network will be running an algorithm deciding who gets to create the next block and the algorithm will adjust itself so that the chances are as follows: A gets a 30% chance of winning (three coins out of ten), B gets a 50% chance of winning (five coins out of ten) and C gets a 20% chance of winning (two out of ten).

For a computer algorithm, adjusting the chances of winning is very simple and is a matter of making statistical adjustments. Let’s say, there is one participant and the chance of winning needs to be one-third. In this case, a random numbers algorithm could pick from three numbers. The chance will be one-third. If the chance needs to be one in four, the algorithm could add another number to the set of number it will be drawing a winning number from. It works in the same way with large sets of data and large numbers of participants. The math changes, but the principle remains the same: it is possible to adjust the algorithm to change the chances, which is how it works with all algorithms that perform random selections.

If one of the users sells or gives away the coins or a part of the stake for whatever reason, than the algorithm will adjust the stakes accordingly. If the user gives away all the coins, then the chances of the user winning a right to create a block of the blockchain will equal zero.

Here are two scenarios that modify the example above. Let’s say user C gives all the coins to user B (originally user C had two coins). In this case user A still has three coins, user B has seven coins and user C stops being a user because C owns no coins at this point. In this case, user A will still have 30% chance of winning, user B would have 70% chance of winning and user C will have 0% chance of winning. If user C gives away just one coin and not all coins to user B, user A will have three coins and 30% chance of winning the right to create a block of the blockchain, user B will have a 60% chance because user B now have six coins and user C will have a 10% chance because the stake of user C at this point will be one coin out of 10, which is 10% stake.