LPoS consensus algorithm¶

Proof of ownership with the right to lease. In PoS systems, the creation of a block does not require energy-intensive calculations, the miner’s task is to create a digital block proof.

Proof of Stake¶

The mechanism for allocating block creation rights is based on the number of tokens in the user’s account. The more tokens a user has, the more likely he or she can create a block.

In Proof of Stake consensus the right to generate a block is determined by pseudo-random way, because by knowing the previous miner and balances of all users in the system the following miner can be identified. To do this, calculate the generating signature of the next block as sha256 hash from the generating signature of this block and the public account key. The first 8 bytes of the resulting hash will be a pointer to the following miner. The time of block generation for account i is calculated as:

$T_i = T_{min} + C_1 \log (1 - C_2 \frac{\log \frac{X_n}{X_{max}}}{b_i A_n})$

where:

• bi - is a stake (stake of participant’s balance of overall balance of the system);

• An - baseTarget, the adaptive ratio, regulating the average time of issue of the block;

• Xn - generating signature;

• Tmin - 5 seconds, it is a constant defining the minimum time interval between blocks;

• C1 - a constant, which is equal 70 and adjusting the form of allocation of the interval between blocks;

• C2 - a constant which is equal 5E17 and adjusting the baseTarget value (complexity).

Based on the given formula it is easy to see that the probability of selecting the participant depends on the participant’s stake of assets in the system: the bigger the stake the higher the chance. The minimum number of tokens on the balance for mining is 10000 WEST. BaseTarget is a computational complexity, a parameter that maintains the block generation time within a given range. BaseTarget in its turn is calculated as:

$(S > R_{max} \rightarrow T_b = T_{p} + max(1, \frac{T_p}{100})) \wedge (S < R_{min} \land \land T_{b} > 1 \rightarrow T_b = T_p - max(1, \frac{T_p}{100}))$

where

• R max = 90 - is a maximum reduction of complexity when the block generation time in the network exceeds 40 seconds;

• Rmin = 30 - minimal increase of complexity when the block generation time in the network is less than 40 seconds;

• S - average generation time, at least for the last three blocks;

• Tp - previous baseTarget value;

• Tb - computed baseTarget value.

For advanced description of technical features and enhancements of the classic PoS algorithm see article.