Waves platform is one the most prominent names in the cryptocurrency sphere based on Blockchain technology. With Waves, users can create their own tokens that are backed by real-world currencies as well as other cryptocurrencies. The Waves platform is open-sourced, meaning that all the code is available to the general public.
The Waves platform, like many others, works on a Proof of Stake protocols. Proof of Stake is a widely used system by many popular cryptocurrencies and also soon to be adopted by Ethereum. It is an alternative to the Proof of Work mechanism in which miners perform complex calculations to mint new cryptocurrencies and are rewarded in return. However, in Proof of Stake (PoS), a user is only required to own a certain share of a cryptocurrency for the “mining” process to work. The users with a greater share have a better possibility to create a block or validate transactions on the network. This share is called “stake”.
This article is focused on the modifications that Waves has incorporated in their Proof of Stake mechanism and named Fair Proof of Stake (FPoS).
Backdrop of PoS
In Proof of Stake, blocks in the Blockchain have a “generating signature”. This signature is calculated through the hash address and generating signature of the prior block. The current structure of PoS is not entirely random. This means that if one can know who validated the last block as well as the account details in the Blockchain, then one can easily calculate who will create the upcoming block. Since blocks use SHA hashing (a cryptographic hash function) their generating signatures are prone to be identified through calculations.
The base target value is positioned to change the mean time of a block’s creation in order to emulate the desired value. Base target can be determined by the following.
(S > 60 → Tb = Tp ∗ min(S, Rmax) / 60 ) ∧
(S ≤ 60 → Tb = Tp − Tp ∗ γ ∗ 60 − max(S, Rmin) / 60 )
The value of Rmax is 67 here which will be subtracted by max ratio. Rmin is 53 subtracted by min ratio. γ’s value is 0.64 while S is the mean time of the previous 3 blocks.
What Modifications are Needed?
Waves’ team has analyzed the weaknesses of Proof of Stake and have presented certain changes. These changes are:
- Everyone participating in the Blockchain should have an equal chance in the generation of a block.
- There is a need to stop the growing number of collisions. Instead, there has to be a way to reduce these collisions.
- Mean time for a creation of a block has to be 60 seconds.
- Vulnerabilities that occur on PoS have to be reduced to manageable proportions.
Fair Proof of Stake
PoS’ formula works on the uniform distribution which cannot provide fairness in the Blockchain. Unlike PoS’ uniform distribution, Fair Proof of Stake utilizes exponential distribution. To achieve this, the algorithm is applied on a random value.
Ti = C . log Xn/Xmax/ (bi · Λn)
Moreover, the formula to determine the base target in Proof of Stake is also modified.
(S > Rmax → Tb = Tp + max(1, Tp / 100 ))∧ (S < Rmin&&Tb > 1 → Tb = Tp − max(1, Tp/ 100 )
Here Rmax is 90 minus maximum ratio. Rmin is 30 minus minimum ratio. S is the mean time for the previous 3 blocks.
These modifications in the formula are helpful for miners with small balances. Furthermore, FPoS has figured out a way to achieve randomness. Instead of using a pseudo-random variable in PoS from the last block, the variable will be used from any older block. With this method, no one can determine who will create the next block.
The current Proof of Stake mechanism can create a monopoly in Blockchain. Miners with greater stakes are at an advantage. Moreover, the PoS is prone to several vulnerabilities. But the newer modified version FPoS can help create fairness in the Blockchain as well as minimize the chances of an attack.