Everyone is watching for the slope of the below line to be consistently negative for Ethereum to be 'ultra sound money'. I argue that this is an overly strict requirement, using math.
Ethereum provides computation and transaction ordering as a service.
The total income of Ethereum is the sum of all gas fees (paid by users to get their transactions included) and MEV tips (paid by searchers to get their bundles included). In this discussion, we’ll refer to this sum as total_income
, and we’ll consider it an exogenous variable, defined by demand for computation and ordering.
In this discussion, we’ll consider various quantities over the course of a year so that they can be expressed as yield.
We should think of a PoS system as one with four free variables:
inherent_yield
: total_income
divided by total_supply
(defined by degree of usage of the network)pct_staked
, the percentage of total supply that is staked (defined by user behavior)burn_pct
: the percentage of total_income
burned due to EIP-1559 (network parameter)
raw_inflation
: the raw inflation % from block rewards, i.e. total block rewards divided by total supply. (network parameter)[note that it would also be acceptable to consider the fourth free variable as block_reward_pct
, i.e. the block reward percentage for stakers is fixed, and the raw inflation varies with the amount staked. It’s not important; we will stick with our variables above]
burn_effect
, the % of total supply that ends up getting burnedreward_effect
, the % of total supply that is offered as reward to stakersnet_inflation
, the net % change in total supply: increased by block rewards (raw inflation), decreased by burn{nonstaker,staker}_{nominal,real}
yields, governed by
real_yield = nominal_yield - net_inflation
The dependent variables are defined by these relationships:
burn_effect = inherent_yield * burn_pct
reward_effect = inherent_yield * (1-burn_pct)
net_inflation = raw_inflation - burn_effect
nonstaker_nominal = 0
(always)nonstaker_real = nonstaker_nominal - net_inflation = -net_inflation
staker_nominal = (reward_effect + raw_inflation)/pct_staked
1/pct_staked
staker_real = staker_nominal - net_inflation
Let us rewrite these equations, letting
y = inherent_yield
s = pct_staked
b = burn_pct
i = raw_inflation
Then we have
burn_effect = y*b
reward_effect = y*(1-b)
net_inflation = i - y*b
nonstaker_real = -net_inflation = -i + yb
staker_nominal = (y*(1-b) + i)/s
staker_real = (y-yb+i)/s - (i-yb) = yb(1-1/s) + i(1-1/s) + y/s
What is the weighted average of the staker real yield and the nonstaker real yield? It is
avg_yield = staker_real * s + nonstaker_real * (1-s)
= yb(s-1) + i(s-1) + y + (-i + yb) * (1-s)
= yb(s-1) + i(s-1) + y - i(1-s) + yb(1-s)
= y
So it simplifies back to y
, the inherent yield! Which makes sense because the ‘inherent yield’ is real yield that gets split between stakers and nonstakers; inflation and burn are just policies that affect how that yield is distributed among them.
With this result in mind it should be clear that the most important KPI for the network is to maximize real revenue (”inherent yield”). The other policies merely affect distribution of revenue, making it more or less attractive to stake.
This spreadsheet shows the same result in action. Check it out!
Here’s an example (depicted as row 16 of the spreadsheet) to illustrate:
inherent_yield = 2.6%
pct_staked = 50%
burn_pct = 40%
raw_inflation = 1%
burn_effect = 40% * 2.6% = 1.04%
reward_effect = 60% * 2.6% = 1.56%
net_inflation = 1% - 1.04% = -0.04%
nonstaker_nominal_yield = 0%
(always)nonstaker_real_yield = 0% - (-0.04%) = 0.04%
staker_nominal_yield = (1.56% + 1%)/50% = 5.12%
staker_real_yield = 5.12% + 0.04% = 5.16%
0.04% * 50% + 5.16% * 50% = 2.6%
, which matches the inherent yield.Once you see this, it becomes clear that block reward inflation is not a cost on the network as a whole; it’s a cost on nonstakers (paid to stakers).
Similarly, burning some of the income as deflation is not value-accretive to the network per se; it’s a benefit for nonstakers (paid for by stakers).
The value accretion for the network as a whole comes from income from users and searchers paying fees.
When taking this into account, proposals such as “Burn the MEV” become less useful because it is clear that they are just policy changes intended to shift yield from stakers to nonstakers. Which may be a reasonable goal, but which is also a goal that can be achieved in other ways with fewer externalities, for example by reducing the block reward.
“Ultrasound Money” (https://ultrasound.money/) refers to the hope that unstaked Eth will be net deflationary. This chart shows total supply change, i.e. shows the negative of nonstaker real yield. It’s pretty close to flat, trending toward deflationary if conditions persist:
However, as seen above, nonstaker yield is dictated by inherent_yield
, pct_staked
, and economic policy (burn_pct
and raw_inflation
).
The network is value-accretive if inherent yield is positive (which it absolutely is). For any level of inherent yield, it is possible to construct a choice of pct_staked
, burn_pct
, and raw_inflation
such that nonstaker yield is either positive or negative. It all just depends on how much we want to reward staking.
Most holders don’t run a validator; they delegate, either through the blockchain’s native delegation system or by using a Liquid Staking Pool like Lido. When delegating, a portion of the staking yield (say, 10%) goes to the validator operator.
It is thus possible to update the above model from a two-party system to a three-party system.
Staker nominal and real yield is sapped (in particular, if the commission is 10%, the staker nominal yield will be cut by 10%, while net_inflation remains the same so staker real yield will likely drop by more than 10%).
This is the reason why several major projects have negative real yield (”Adj Reward” in the below screenshot from StakingRewards) for the ‘simple’ approach of delegating.
Join the discussion on twitter.