Fair PoS - adjusted consensus algo

Hi, everyone. As you know original Waves Proof-of-Stake consensus algorithm from Nxt blockchain. It’s based on very simple where time to mine next block depends on miner’s balance and semi-random value from previous block.

The disadvantage of Nxt formula is that it allows very large miners to forge not proportionally greater number of blocks. We can see that performance is much better on our real network, e.g. WavesGo’s performance is 1.168 which means that with 22% of stake it gets 27% of blocks:

Our solution

We decided to modify it to make distribution fair. Our goal is to make simple adjustment, but not to rework algorithm completely. It’s still open for any new miners, simple, doesn’t require any registration, fund deposits or single authority. We also do not spend much time and resources to do this change.

We also made it more protected to multibrach mining attack (a kind of nothing at stake), which is a weak point of simple PoS algorithms.

Apart from this, new formula changes block delay distribution. Currently we have most of blocks very short (with small delay, e.g < 5 seconds) and some very-very long blocks (up to 10 minutes). With new distribution we don’t have blocks shorter than 5 seconds, most blocks around 40-70 seconds and maximum duration of block is around 3 minutes.

We plan to release Fair PoS in May release, so it should be activated in June.

Please check details in attached PDF

waves_fair_proof_of_stake.pdf (458.9 KB)


It was neccessary :+1:

This would be awesome! Great work!

Very good changes. Listening to feedback from the community. Keep it up.

Good to see this solution executed. Looking forward to the results on testnet.
We first talked about this with the team on our visit to Moscow, back in November last year.
While we are one of the biggest pools, we clearly think there should be an even chance of mining blocks for all nodes. Good work dev team!

1 Like

Seems only 2 testnet nodes we have, Is dev.pywaves down?

But now your pool wavesnode.net with pospool.io are blocking activation of this feature without any real reason. How convenient when lessors dont care about their funds and platform.

1 Like

Fair PoS activated on MainNet!


Let’s see how it works in the mainnet :smiley:

The updated version for Fair PoS in the attachment below:
fair_proof_of_stake_paper.pdf (416.8 KB)