Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issuance curve proposal #547

Open
jeandemeusy opened this issue Jul 11, 2024 · 0 comments
Open

Issuance curve proposal #547

jeandemeusy opened this issue Jul 11, 2024 · 0 comments
Assignees

Comments

@jeandemeusy
Copy link
Collaborator

jeandemeusy commented Jul 11, 2024

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:

  • $A$: minimum $X$ axis value ($0$ for the simulations)
  • $B$: flatness
  • $C$: scale factor 1 ($1$ for the simulations)
  • $E$: vertical offset
  • $K$: maximum $X$ axis value
  • $Q$: scale factor 2 ($1$ for the simulations)
  • $\nu$: skewness

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 + \sum_{i=1}^{n} B_i \cdot ln \left( \left( \frac{K_i}{x_i} \right)^{\nu_i} -1 \right) $$

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: ratio between the total staked tokens' value and HOPR's market capitalization
  • Network capacity: ratio between the network size and an arbitrary maximum network size

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:

  • for whales, having more stake would come with deploying more nodes, those two facts would reduce their APR
  • for node-runners, having an additional node wouldn't change that much the APR, but more stake would be used. Up to which point ?

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) + 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} = 2.0 ; K_{es} = 0.25 ; \nu_{es} = 1.07$$
For the network capacity curve:
$$B_{nc} = 0.05 ; K_{nc} = 1.0 ; \nu_{nc} = 5$$
Global variable:
$$E = 1.1$$

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).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant