hoprnet / ct-research

Cover Traffic (CT) Research at HOPR
2 stars 11 forks source link

Issuance curve proposal #547

Closed jeandemeusy closed 3 months ago

jeandemeusy commented 4 months ago

Based on the simulation done, here is a issuance curve proposition that could fit current network state at least. Variables' values can still be modified afterwards.

Shape of the issuance curve

Based on the on-going discussion that is happening on mainnet, an issuance curve in the shape of a sigmoid's reciprocal has been used in the simulation so far, and is the main foundation of this issuance curve proposition.

General equation The general equation of such a curve is the following:

$$y = B \cdot ln \left( \frac{ \left( \frac{K - A}{x - A} \right)^\nu -C }{Q} \right) + E$$

with:

Simplified equation After setting the default values for $A$, $C$ and $Q$ in the above-equation, it simplifies to:

$$y = B \cdot ln \left( \left( \frac{K}{x} \right)^\nu -1 \right) + E$$ Here's a visualisation of such a curve:

image

Multi-dimension equation The simplified equation is mono-dimensional. In other words, only one input variable $x$ can be used to get the output $y$. In the issuance curve case, $y$ would be the APR, and $x$ any ratio. With a mono-dimensional curve, only one ratio $x$ would be used to determine the APR. It's convenient to have a multi-dimensional equation to be able to define multiple input variables. The equation in $n$-dimension is the following:

$$ y = E + \prod_{i=1}^{n} \sqrt[n]{ B_i \cdot ln \left( \left( \frac{K_i}{x_i} \right)^{\nu_i} -1 \right) + E_i }$$

Here's a visualization of on 2-dimensional curve:

image

Understanding what happens in this visualization is much harder than in one dimension. What should be clear is that the $z$-axis (vertical) value gets lower when either the $x$ or $y$-axis (horizontal plane) values increase. Visualization in higher dimensions is even trickier (if not impossible), but the concept stays the same.

Choosing input variables

With the general shape of the issuance curve in place, the input variables (number of dimensions and how they are defined) needs to be set. This proposal depends of only two variables:

Economic security This variable is set as the ratio between the total staked tokens' value and HOPR's market cap', or in other words: staked tokens to total supply. As the total supply is set in stone (almost), the economic security variable only depends on the staked tokens. With this variable in the issuance curve, a whale would be de-incentivized to stake too much at the risk of reducing the APR. On the other hand, individual new node runners wouldn't affect the APR to much because of the small stake they add to the network.

Network capacity This variable is set as the ratio between the current network size and a maximum size (which will be set to 2000 at the start). This ratio prevents again whales with huge devops capabilities to put a huge stake split between many nodes, at the risk again of decreasing the APR.

Cross-variable impact Those two variables creates the game that node-runner will play with:

Parameters' values

With the input variable set, the missing part is the actual value of $B$, $K$ and $\nu$ for each variable, and the value of $E$. The proposal is a 2-dimensional equation (for two input variables):

$$ y = E + B{es} \cdot ln \left( \left( \frac{K{es}}{x{es}} \right)^{\nu{es}} -1 \right) \cdot B{nc} \cdot ln \left( \left( \frac{K{nc}}{x{nc}} \right)^{\nu{nc}} -1 \right) $$

The proposed values hereunder are set to that an increase in network's stake has a greater impact compared to an increase in network size (which is still desired mid-long-term). Also, the initial APR using current network state would be similar to the current APR with the old economic model.

For the economic security curve: $$B{es} = 0.38 ; K{es} = 0.25 ; \nu{es} = 5$$ For the network capacity curve: $$B{nc} = 0.47 ; K{nc} = 1.0 ; \nu{nc} = 1.73$$ Global variable: $$E = 0.0$$

Here's a visualization of the APR using the above-mentioned parameters:

image

We can clearly see that the impact of a stake increase (second subplot) on the APR is way stronger that the impact of a network size increase. Also, the in the current network state, the APR generated by this model would be around 7.5%.

Note: the APR will be contained in the $[0.0, 15.0]%$ range, to avoid excessive distribution and negative APR (which makes no sense).

jeandemeusy commented 3 months ago

Implemented in #532 .