This is a competing proposal to RPIP 003
Design objectives
- Long-term sustainability
- Incentivise validators to act honestly
- Incentivise validators to remain with our protocol long-term
- Provide governance powers to those who have long-term incentives
- Robustness
- Changes to protocol should be slow and planned
- Simplicity
- Contracts should be gas-efficient
- Tokenomics should be easy to understand and evaluate
- DAO influence should be minimal and clear
- Reward early believers and contributors
- Scalability
Issues with RPL #003
- Collateral-based tokenomics are untested and hard to valuate
- Oracle risks
- No checks against short-term actors (whether profit-seeking or malicious)
- Hard caps that limit scalability
Solution
Use a simple cash-flow based model where RPL earns fees and timelocked RPL takes important decisions.
-
Validators must stake [16 + f(t,min,decay)] ETH
- t refers to the time a validator has been staking for, without being slashed
- min refers to the minimum stake above 16 ETH that a new validator must stake, decided by DAO
- decay is a parameter that determines how the minimum staking requirement for a validator decays with time. This incentivises validators to remain with us long-term. The excess ETH can be withdrawn and potentially added to newer staking lots.
- proposed functions:
f(t,min,decay) = min - decay * t
f(t,min,decay) = min * e^( -decay * t)
min could be 1 or 2 ETH - if a decay function is too complicated to implement on-chain we will just use (16 + min) ETH as the staking requirement
-
ETH stakers can stake any amount to get rETH. rETH represents their ETH in ETH 2.0 plus rewards (z%)
-
ETH staked is allocated to validators to earn rewards from the deposit contract
-
Staking rewards are split amongst three parties
- Validators receive a fraction (x%) of rewards
- RPL stakers receive a fraction (y%) of rewards
- ETH stakers receive a fraction of rewards (z%)
x + y + z = 100
-
RPL can either be staked short-term or long-term
- Short-term stake earns y1% of staking rewards and can be withdrawn anytime.
- Long-term stake earns y2% of rewards. Submitting a withdrawal request on-chain will cause the stake to get converted to short-term stake after exactly one month, at which point it can be withdrawn.
y2 > y1
y1 + y2 = y
-
Long-term staked RPL is used for governance
- Governance can change the parameters: min, decay, x, y1, y2, z, f
- Increasing min goes through a 1-week timelock, so that validators can respond
- Decreasing min or changing x, y1, y2, z goes through a timelock for f hours. f could be increased as the protocol matures.
-
We could implement a short-term but aggressive inflation schedule on launch. This will attract validators and ETH stakers in the initial stages and get a critical mass of users, along with sufficient initial liquidity. Inflation amount, as well who is rewarded how much (validators, ETH stakers, Uniswap LPs) can be discussed.