The winner of the community competition:

Your ad here if you win

The problem with fees

Licho, 2024-02-18

This article's goal is to investigate the Ergon's fee burning mechanism in the face of the recent realization that it doesn't do the job as it should. I would like to explain the math that made me realize this mechanism is not enough and make it the part of the ongoing community discussion on that topic.

Calculating equilibrium for Ergon without the fees

It is possible to find the value of the Ergon equilibrium. Let us construct the expression describing the dynamics of hashrate, the same way it was constructed in the Ergon whitepaper. We start with a simple observation, that the miners follow profitability. If their rewards from mining are higher than their costs, they join the network. We symbolically express the rate of hashrate changes as follows:

h=α(pRεh)h'=\alpha(pR-\varepsilon h),

Which means that the rate of hashrate changes are driven by the difference between the reward value RR and the cost ε\varepsilon per unit of hashrate hh. Alpha is the proportionality factor. It measures how fast the miners respond to profitability changes.

Proportional reward is the proposition to put R=h. Then the equation reads:

h=α(phεh)h'=\alpha(ph-\varepsilon h).

Now we will skip to the price dynamics, derived in the Ergon paper,


To recap - pp is the price, D(t)D(t) is an arbitrary demand function for new coins, NN is the supply and NN' is the reward changing rate - the supply expansion. In the simple case N=R=hN'=R=h.

Finding equilibrium

We have a system of equations:

{p=pD(t)phNh=α(phεh)N=h. \left\{\begin{array}{l} p'=\frac{p*D(t)-ph}{N}\\ h'=\alpha(ph-\varepsilon h)\\ N'=h \end{array}\right.\,.

To find the equilibrium, we are looking for a constant solution: p(t)=p0p(t)= p_0 and h(t)=h0h(t)= h_0. Then NN'. Derivatives of pp and hh are just zero. We will learn that in order to have such a solution, DD also must be constant.

We have to solve the following system of equations:

{0=p0Dp0h0N0=α(p0h0εh0)N=h0. \left\{\begin{array}{l} 0=\frac{p_0*D-p_0h_0}{N}\\ 0=\alpha(p_0h_0-\varepsilon h_0)\\ N'=h_0 \end{array}\right.\,.

The solution is very straight forward. We get:


N=h0t+CN=h_0t+C and


We can now notice that demand DD must not dependend on time for this solution to work.

Introducing fees

In the paper, we took for granted that RR is nothing more than the issuance, hh, but in fact it is also the transaction fees rate ff, like fees paid per day or per block. They are denominated in the coin units because the fees are indeed paid in those units,


In the protocol, we burn half of all fees to correct for the additional inflation they would introduce. We will solve it for the general ratio denote it as β\beta.

We modify the equations:

N=hβfN'=h-\beta f,


Now the system reads:

{p=pD(t)p(hβf)Nh=α(p(h+(1β)f)εh)N=hβf. \left\{\begin{array}{l} p'=\frac{p*D(t)-p(h-\beta f)}{N}\\ h'=\alpha(p(h+(1-\beta )f)-\varepsilon h)\\ N'=h-\beta f \end{array}\right.\,.

Once again we assume the constant solution p(t)=p0fp(t)= p^f_0 and h(t)=h0fh(t)= h^f_0.

The system then reads:

{0=p0fDp0f(h0fβf)N0=α(p0f(h0f+(1β)f)εh0f)N=h0fβf. \left\{\begin{array}{l} 0=\frac{p^f_0*D-p^f_0(h^f_0-\beta f)}{N}\\ 0=\alpha(p^f_0(h^f_0+(1-\beta )f)-\varepsilon h^f_0)\\ N'=h^f_0-\beta f \end{array}\right.\,.

From the first equation follows that h0f=D+βfh^f_0=D+\beta f. We insert that to the second one and we get the dreaded information that:

p0f=εD+βfD+fp^f_0=\varepsilon \frac{D+\beta f}{D+f}.

Let us call the equilibrium modifying factor p0fp0\frac{p^f_0}{p_0} as γ=D+βfD+f\gamma= \frac{D+\beta f}{D+f}.

With no burning (β=0\beta=0) the fees would modify the equilibrium by a factor of DD+f\frac{D}{D+f} which meand that in the limit of fees infinitely larger than the demand the equilibrium would be at zero, but with burning in place:

limDf0γ=β. \lim_{\frac{D}{f}\rightarrow 0}\gamma=\beta.

It means that if we burn 50%, when the equilibrium can be pushed down by 50% due to the fees subsidizing hashrate.

The topic continues in part 2


This server does not support sharing. Please visit .