Here are my ideas. Because of obvious conflicts of interest, this is NOT a submission for bounty; it is for funsies. Many of these ideas are raw, but I would still like them critiqued, and if there’s any gold hidden in the dirt hopefully improved upon.
Essentially what I tried to do is start with a shrimp NO with an LEB1 and reverse engineer how to make that safe.
The concepts are all separate and could be adopted/rejected piecemeal. However, most are synergistic and work best together. Many of them are not directly beneficial to NOs; however, they provide guardrails protecting rETH thus safely allow for lower LEBs and higher commissions. There’s a lot of math and much of it is interrelated, so small mistakes could cause an outsized difference (butterfly effect); however, to the best of my knowledge it is roughly accurate. Also, I don’t have a programming background, so it’s likely that some specific implementations are not possible- but I think “stuff like all of this” is possible.
1. Unsmoothing Fee/lottery fee
Concept: Minipools pay in advance for the portion of MEV that the node operator could otherwise profitably steal; they are then allowed to keep the amount of any block they produce over that amount. This effectively creates an unsmoothed portion of execution rewards that is less for larger nodes and for minipools that take a higher split from rETH. The mean execution rewards remain the same, but the median is lower.
Problem: Theft of lottery blocks can be profitable if rewards > node collateral. We have set an arbitrary cutoff of 8E (10.4E total collateral) as the safe level, where <8 was felt to be higher risk of theft and >8 felt to be relatively protected from theft. However, keeping ETH bond minimum at 8E makes it difficult to match non-bonded permissioned actors (Lido) or lower bonded protocols (through DVT, Lido’s decentralization efforts, etc). The easiest way to envision allowing lower bonded minipools in our current system is to use node-level collateral; and within this the easiest way to envision is either a minimum collateral for lower bonded minipools, or a bonding curve where the per minipool bond requirements decrease as total node collateral rises.
The bonding curve idea raises a few concerns for me:
-
the node collateral would have to be astronomically high to protect from all lottery theft
-
More concerning, anyone who is at the bottom of the bonding curve will lose money in terms of capital efficiency. It’s hard to imagine a bonding curve schema that will make it more profitable for someone with 8E to stake on their own rather than lend their money to a whale who makes eight 1E minipools, takes a substantial cut, and still returns more profit to the small fish. That is, a potent centralization vector.
Implementation:
A second smoothing pool is created and set as the execution layer fee distributor for participating nodes. This operates in the same way as the existing smoothing pool with a few differences:
-
Any node with LEB 1, 2, or 4 must be enrolled in a collateral linked smoothing pool or risk penalty
-
Each time RPL or ETH bond is staked/removed then the node collateral and average commission is updated.
-
Any deposit to the smoothing pool that is greater than the “maximum penalizable amount” will trigger the “lottery council” to act, escrowing the portion of rewards greater than the maximum penalizable amount to return to the NO who proposed.
-
At end of month, each NO will get their portion of the smoothing pool minus the unsmoothing fee; if the result is negative then a balance will remain on the NO for the next reward cycle.
-
Additionally, at end of month a new fee curve is generated based on the last 12 months of blocks to use in the upcoming reward cycle.
“Maximum penalizable reward”: (ETH bond + RPL bond) / (1-expected NO% of rewards). This is higher than the collateral of the node to account for the portion of the execution reward to Node would normally get. For example, an LEB8 would not benefit from stealing at 10.4E lottery block, instead the block needs to be >16E to be profitably stolen.
“Lottery council”, possible structure: 9 members. Any member can place any amount of smoothing pool ETH in escrow at any time; this has a destination (lottery block winner withdrawal address); within 4 weeks of escrow, 5/8 remaining security members need to approve the transfer of that amount to the withdrawal address. I’d have to to a retrospective, but I suspect we are looking at less than 3 blocks a month that would hit lottery status.
Fee curve: The graph below is based on several about 700k blocks over ~10 months, and gives a pretty good impression of the theft risks to the rETH at various levels of maximum penalizable reward. I think this could be manually updated each month with only a small amount of work.
Graph of yearly fee:
Benefits:
-
Lossless system on average to both NOs and rETH
-
Eliminates centralization risk of bonding curves
-
Allows very low ethereum bonded minipools to be safe from lottery block theft, definitely a single 2E remains profitable although a single 1E minipools may not be.
-
The fees listed somewhat overestimate the actual damage, as it effectively goes into the smoothing pool and is distributed back to NOs based on their split with rETH (ie, the fee is pretty accurate for LEB1 but definitely overestimates on LEB8).
Risks:
-
The median NO will receive less execution rewards under this system (although this is really only going to be significant for very low collateral nodes <10E, which aren’t allowed under current settings anyhow and are unlikely to be allowed under any bonding curve system).
-
The lottery council is a source of risk. The potential damage would be a month of rewards. This may be mitigated by putting safeguards in place (eg, awards >10ETH need additional supermajority, or rewards can only go to pDAO/IMC/GMC for distribution)
-
If there is substantial RPL price movement during the month, then the bonding curve may be inaccurate particularly for very low bonded minipools. I think overall this should even out as rETH will be a bit underpaid in some and overpaid in others, and this would still not be the highest source of volatility in rETH execution returns (random block distribution would be).
-
Having a second smoothing pool will worsen median rewards for both pools; however, the smoothing effect is not linear, so the difference between 24k and 48k minipools is marginal.
2. Universal Variable Commission
Concern:
Rocket Pool protocol growth is tied to a balance between minipools and rETH; both have supply/demand curve; overabundance of one results in capital inefficiency/APR drag on the protocol. Minipool overabundance has now been largely mitigated by recycling 7/8 or 15/16 of bonded ETH in the minipool queue.
Deposit pool overabundance has no mitigation and sits as a pure drag on the protocol. With a full DP, this is ~1.5 million USD/year in positive cash flow lost from the protocol/customers; a significant proportion of this flows to Lido and centralized competitors based on the Ethereum validator emissions curve.
Issues identified:
-
An imbalance between NO and rETH stifles protocol/market share growth, and thus arrests our mission to keep Ethereum decentralized.
-
Drag on APR (currently ~3% of rETH APR) makes our product less competitive (specifically to Lido) with no compensatory benefit; this drag (or historic drag or fear of future drag) negatively impacts induced demand in a way that is hard to predict, but certainly affects more than just the 18k ETH that we can see in the DP.
-
The sole method to induce NO demand is building up a premium on rETH to allow NO arb opportunities; this both becomes a tax on new rETH buyers and loses another large proportion to gas fees; ironically, waiting for a better arb may also induce NOs delay minipool creation despite otherwise having a financial incentive to do so.
-
It is human nature to think that A) our current supply/demand situation will remain stable forever or B) the next upgrade to fix supply/demand will permanently shift the curve to either NOs or rETH. Thus far, both these predictions have always been incorrect.
-
We have been fortunate to have first mover advantage for decentralized staking, but we can’t expect that advantage to last forever and have to be prepared to compete for NOs and stakers with other protocols.
Proposal: Universal variable commission (UVC):
Opt-in delegate that where all minipools have the same commission, but that commission can change over time based on the relative supply/demand of stakeholders; overabundance of minipools would drop commission; overabundance of ETH in the deposit pool would raise commission… This would likely be integrated into megapools which are expected to require minipool migration.
Example: Given continued growth despite the current drag from the DP pool of 3% of rETH APR, this suggests the rETH market could sustain at least a 3% higher commission in current market conditions.
Variables to be defined:
-
Triggers for commission variability (eg, based on how full full deposit pool is or how full minipool queue is, or something else)
-
How persistent supply mismatch has to be (eg, deposit pool full for one day vs deposit pool full at reward checkpoint vs deposit pool full for consecutive months)
-
Maximum speed of commision changes (eg, 0.1% per month, 0.5% per month, 1% per month)
-
Maximum variability (ie, 0%-30%, 5-20%, 10-18%, etc)
-
How frequently/granularly commission changes are (ie each reward period, each day, continuous)
-
Whether fixed commission minipools can still be spun up, or just existing ones grandfathered in.
-
Whether variability is up/down/stay the same, or has gradations based on how much
Urgency:
As TVL rises and ethereum bond per validator falls, it becomes exponentially more difficult to ever lower commission. If we roll out megapools/very-low ethereum bonded minipools without dealing with the inevitable demand mismatches, we are unlikely to have another chance in the future. Specifically, under the current system if rETH stops growing at any point, it doesn’t matter how low we set the commission for new minipools as we have effectively lost ALL ability to give rETH a more competitive commission without drastic measures such as:
-
lower RPL/pETH minimum requirement- may cause some shock, causing some NOs to exit and thus new NOs willing to accept lower commission for lower RPL requirements
-
exit high commission NOs- either benignly (presigned messages, etc) or by oDAO authoritarianism (penalize high commission minipools that don’t exit)
-
change to involuntary delegate upgrades, which obviously has security implications for NOs.
Counter Arguments:
-
NOs are more sensitive to a variable commission than rETH holders, and this will drive down NO interest: I’m not sure there is evidence for this, although I previously have seen this argued. I would say that NO APR is already extremely variable (down only consensus rewards and high volatility in execution rewards). Specifically, we can’t predict if UVC will be beneficial or detrimental for NO commission- likely both will be true at times; however, we can be reasonably assured that by increasing efficiency and decreasing drag on rETH, we will be able to lock in more TVL which in turn requires RPL and is thus generally good for all NOs.
-
We tried this and it failed at Rocket Pool launch: There is a big difference between “variable FIXED commission” (i’ll call it VFC) and “UNIVERSAL variable commission”. The former (a minipool could lock in a lifetime commission of 5%-20%) was imminently gamable- there was a strong inducement to wait to spin up minipools if the commission was low, but no ability to reduce commission once rETH demand decreased. In the latter (UVC), there is no commission benefit to waiting to spin up a minipool, and when rETH demand drops the commission can be readjusted.
-
This will encourage significant inefficent inflow/outflow of investment, perhaps more than the current system, as stakeholders who entered for a given APR leave when that APR decreases: This is a valid argument; however, i think the friction is significant enough that rotating around some gravitational center APR will not cause significant exiting (ie, if an rETH holder bought expecting 3.8% APR, they wouldn’t exit at 3.7% APR (the equivalent increase of >2% commission); so as long as commission is not wildly erratic it shouldn’t increase churn much.
My recommendations:
-
Triggers for commission variability (eg, based on how full full deposit pool is or how full minipool queue is, or something else): If NO queue >200, commission decreases; if NO queue <200, commission increases. NO queue ETH get recycled so are strictly better for the protocol than DP ETH; also allows larger deposits
-
How persistent supply mismatch has to be (eg, deposit pool full for one day vs deposit pool full at reward checkpoint vs deposit pool full for consecutive months): Instantaneous
-
Maximum speed of commision changes (eg, 0.1% per month, 0.5% per month, 1% per month): 1% per month
-
Maximum variability (ie, 0%-30%, 5-20%, 10-18%, etc): 5-25%
-
How frequently/granularly commission changes are (ie each reward period, each day, continuous): once weekly
-
Whether fixed commission minipools can still be spun up, or just existing ones grandfathered in. all new minipools have variable commission
-
Whether variability is up/down/stay the same, or has gradations based on how much: single up/down toggle
3. Jaws of life- dynamically valuing RPL
Concept: Universal variable commission balances rETH and NO demand. If demand for one goes up, it subsequently sacrifices some value to increase demand on the other. However, it is unable to provide anything except a relatively soft landing if demand for both decrease. In a world where supply of both rETH and NOs are falling (from, for example, competition), RPL value will approach zero quite quickly.
The Jaws of Life dynamically decreases minimum RPL bond in response to bad market conditions to make the product more attractive to NOs and thus allows room to improve rETH demand.
Essentially this is a way to sacrifice RPL “potential future value” in order to preserve market share and current value in response to bad market conditions. Obviously, if market share has hit its maximum market share then “potential future value” is an imaginary number anyway.
Implementation:
-
High water mark for rETH supply is recorded.
-
Every full 10% rETH supply falls from high water mark is accompanied by a 10% decrease in the minimum RPL to spin up a minipool (setting change by pDAO)
-
As rETH supply returns, the minimum bond needed again rises in the same way until 100% at >90% of high water mark.
-
The RPL reward structure remains unchanged (ie minipools can be spun up but won’t get RPL rewards until 10%)
Benefits:
-
Derisking NOs when they are desparately needed
-
Increases NO returns in pure ETH, which should draw RPL skeptics
-
Allows those with RPL to create more minipools without additional investment
-
Decreases the potential risk to NOs of exiting to arb/preserve PEG
-
Combined, prevents one significant source of a Rocket Pool death spiral
Risks:
-
Sacrifices some future value from RPL
-
Add some gamability over timing: you could wait to spin up a minipool if you think rETH supply will fall further and you can get a cheaper (by RPL) minipool. However, if you think rETH supply will fall, then you also think NO supply will fall, which means you almost certainly think RPL price will fall, which means you will probably wait anyway.
4. Penalties revamp
Problem: Persistent MEV theft can occur. Currently, a node is penalized after their third infraction, which probably doesn’t make sense for either lottery block or persistent theft. On the other hand, penalizing a persistently thieving NO down to 0 ETH also doesn’t help as they have already assumed their bond is lost, but their minipool can continue collecting normal consensus rewards until they exit (and also execution thefts).
Implementation:
1). Any penalty reduces commission of the minipool to 1%
2). Maximum penalty leaves 10% of stake (RPL/ETH) intact, which over the course of 1 year trickles down to 0.
-
Voting power of penalized node goes to zero
-
RPL rewards of penalized node go to zero.
-
A penalty can take unlimited ETH (none of this ‘can extract a one-ETH penalty 78 times sequentially’).
-
The total number of penalties per week will be capped (since penalties have never been used a single time since launch, I would cap at 10 or 100 times per week; there is absolutely no reason to allow oDAO the power to penalize 24k minipools).
Benefits:
-
gives MEV thieves a reason to exit that they wouldn’t have if bond was zero.
-
cuts off a major source of benefit for persistent MEV theft.
-
recognizes that we shouldn’t wait until the third penalty, because someone stealing lottery blocks will likely only steal once.
-
provides straightforward guardrails to substantially limit the risk of malicious oDAO.
Downsides:
-
there are ways to hide MEV theft that are not immediately obvious (ie make it look like a vanilla block); this doesn’t address those although I think these happen never or almost never. I would not penalize vanilla blocks because the costs outweigh benefits.
-
providing a oDAO guardrail for number of penalties would require a smart contract change, as would ability to penalize commission.
Attribution: skuzzle made me think more critically about this.
5. RPL bond sliding scale
Trigger warning: this contains more opinions than usual and may bring flashbacks for some viewers.
Background: Currently, we have priced RPL to include a minimum bond per borrowed ETH for rewards and starting minipools. This was first part of the initial pETH vs nETH debate. The decision was made to keep the “RPL value staked per rETH created” constant at 10% bond. This was largely to preserve RPL value and as a reaction against the other option which would have decreased “RPL value staked per rETH created” by 87.5% by the time you got to the 4ETH level. I’m not sure there was a lot of thought going towards a middle road, but it was a long time ago. This decision had two major ramifications:
-
It overexposes RPL sceptics
-
It overpays RPL believers
This is not terribly evident at first blush with LEB8, but extrapolating to LEB1 with current levels:
A 16E minipool at minimum collateral is 9.1% RPL bond and about 10% RPL rewards; ETH rewards/collateral is ~3.6% more than solo staking; including RPL rewards ~13% more than solo.
A 1E LEB at minimum collateral is 75.6% RPL, and 40% RPL rewards; ETH rewards/collateral are about 30% more than solo staking; including RPL rewards ~106% more than solo staking.
In other words, if you value RPL, then paying 30% more than pure ETH is too much in addition to the valuable RPL rewards (which make up almost 50% of rewards).
If you are a RPL skeptic, then putting 75% of your stake in a volatile asset would be extremely foolhardy for 30% extra.
While the argument may be made that LEB 1s are not for RPL skeptics, this pattern is true across the spectrum, including LEB8, and I think partially explains why our expansion post-atlas has been largely driven by bond reduction rather than new entrants. The problem will be even starker with upcoming tokenomic changes as more value is drawn to RPL believers to bond reduce.
Concept:
Look at RPL bond/ETH bond as an important metric for node operators demand, and try to mitigate as ETH bond decreases.
Implementation:
I like round numbers, so decrease RPL minimum bond to 10/9/8/7/6% of borrowed ETH as bond reduces from 16/8/4/2/1. At every bond reduction you will need more RPL per bonded ETH, just not as much per rETH.
In response, you can decrease commission 14/13/12/11/10%.
This will dovetail with a universal variable commission.
So 1E LEB at minimum collateral is 65% RPL, and 31% RPL rewards; ETH rewards/collateral are about 43% more than solostaking; including RPL rewards ~73% more than solo staking.
A similar but less extreme change would occur at every ETH bond level. This widens the RPL agnostic who would be interested in low bonded minipools. It also provides an avenue to lower commission independent of variable commission, and in a way that makes more sense because very low bonded minipools ARE riskier so rETH holders should be charged less for them.
6. Preferential queue for higher ETH bonded minipools
Problem: Regardless of how we increase our protections, 16 ETH minipools are strictly better for rETH holders on a per-rETH basis than LEB 8; this is true at every level of LEB for correlated slashing, persistent and lottery MEV theft, abandoned validator, etc. Even if forced exits and higher mininum stake were enacted, correlated slashing still makes lower LEB more risky to rETH holder. Thus, if there is enough rETH supply from LEB16s, there is no benefit to the protocol in allowing LEB8s; if there is enough supply from LEB8s, there is no point to allowing LEB4s; etc.
Implementation: Regardless of which LEB implementation is ultimately chosen for RP, enact a system of separate queues for each LEB level, where LEB16s are preferentially picked, then LEB8, LEB4, LEB2, LEB1 in that order. This means that even with a flood of minipools, we will only see a glut of LEB1s if there is no appetite for LEB 2, 4, 8, 16.
Benefits:
- Reduce rETH risk when very low ETH bonded minipools are not needed - incentivizing higher bonded LEB.2) If 5 is enacted, effectively increases RPL/rETH created
Risks:
- increased confusion for NOs when their very low bonded minipools appear queued for too long
Variation: Pseudo-permissioning of minipools: initially only LEB 8/16 permitted; if some trigger met (for example, DP is not empty) for one month, then LEB 4 are permitted. The minimum LEB level can increment up or down each reward period depending on triggering metrics. For example, if LEB 8s are allowed currently, a sudden mint of 20k rETH won’t allow a bunch of LEB1 to be created; instead- several weeks of LEB 4, several weeks of LEB 2, and if there is still demand then LEB1 will be allowed.
Other background: When RP launched, 32 ETH minipools were available to get rewards on at least half of the stake while waiting in the queue. However, this had the side effect of (in times of prolonged queue) leaving the other half locked-up long after you could have had 2 LEB 16s. Based on this experience, I would prefer some way to ‘upgrade’ or ‘top up’ a queued minipool to a larger ETH bonded minipool if the NO miscalculated the supply/demand situation- not strictly necessary, but good quality of life.
7. Medipools
Problem: 1E minipools present substantial risk from both lottery block theft and continuous theft standpoints.
Concept: LEB 2 and LEB 1 that are linked such that minimum ETH bond remains 4, but a larger number of validators can be spun up. This is envisioned as an easy step on the way to megapools.
Implementation: No LEB 2 or LEB 1 can be created from scratch. An LEB 4 must be created; subsequently this can be bond reduced. The bond-reduced validator has the same beaconchain withdrawal address (minipool address) as the initial validator, but otherwise both function as LEB 2. Each can be further bond reduced to LEB1 in a similar fashion.
A new minipool contract does not need to be created; because there are a finite number of permutations, the minipool can merely have a count that increments up each time (ie, 0 = 4E; 1 = 2/2; 2= 2/1/1; 3 = 1/1/1/1), and unidirectionally. There is no need to increment down. This should be fairly gas non-intensive. When exiting, all associated validators in the medipool would need to exit before the lot could be withdrawn. The math for penalties is fairly simple- ETH stake would be penalized if withdrawn amount was less than 32, 64, 96, 128; this prevents potential exploit of exiting down to as single 1E minipool on multiple nodes (which will otherwise have to be dealt with in other node level collateral schemes)
Benefits:
- Giving the benefits of very low bonded minipools without the tendency toward centralization that node level ETH bond curves would give.
- Mitigates the nearly terminal gas inefficiencies for very low bonded minipools (both in contract creation and distribution of rewards)
- Does not require a total revamp of the system like megapools would, and may actually be more gas efficient for very small stakers than megapools.
Risks: Smart contract risk; use of resources that could be devoted elsewhere
Variation 1: The same process could be performed starting at LEB 8 level; there would be many more permutations and it would make LEBs themselves slightly more expensive gas wise.
Variation 2: there can be a time lock for bond reduction- for example, only one reduction in a medipool per month. This again prevents some small attack surfaces while rewarding longevity.
8. Pre-signed exit messages/reusable minipool contract
Problem: no forced exits to prevent persistent MEV theft or abandoned validator losses
Concept: allow LEB 4/2/1 with a presigned exit message. Honestly, I hate this idea because it’s extremely inelegant; but sometimes you have to go with the least worst idea.
Implementation: very low LEB presigned exit messages have to be sent securely to >1 oDAO member. During scrub process, those oDAO members must confirm the accuracy of the exit message.
The minipool contract itself can be reused ONCE as beaconchain withdrawal address (ie, to re-enter as a minipool without a presigned exit message once protocol level forced exits are permitted).
Benefits:
-
can discount persistent MEV theft as a major risk to rETH for very low bonded minipools
-
would not affect larger pools
Risk:
1). Presigned message can be intercepted allowing malicious actors to force exit validators. This could would cause gas costs and some capital efficiency loss, but the funds would be safe.
- These messages would have to be stored and the oDAO setup could be infiltrated; however forced exiting is probably the least of our worries if the oDAO gets hacked.
9. No-commission minipools
Concept: When you have a way to balance rETH/NO demand, driving down commission in some minipools can be used to increase commission in others.
Implementation: Enable no-commission 8E minipools without RPL collateral.
Benefits:
-
NO returns would be equivalent to solo staking + 8E minimum + smoothing pool + smartnode + rescue node + community support.
-
Higher commission possible for RPL bonded minipools (eg, for every 8E no-commission minipool, 3 minipools could have commission ~18.5%, which drives value to RPL)
-
Simpler to implement compared to non-RPL bonded megapools
Risks:
- Strictly speaking, mathematically worse for the NO than Lido’s CSM or even existing 16E minipools, so uptake may not be extremely high. However, I think there is definitely a market for people who a) don’t want Lido to succeed, b) want the convenience of rocket pool, and c) don’t want to have RPL. These are the people who are solo staking now and may continue solo staking after CSM.
putting it all together with 1, 4, 5, 7
Lowest ETH bond is one medipool at 6% RPL, 4 ETH and 7.44 ETH of RPL = 11.44 ETH collateral
This will earn ~ (1+10% * 31) x 4 * 6% = 0.98 ETH worth of ETH rewards
While paying ~.04 x 4 = .16 ETH per year in unsmoothing fees
Net this will be about 0.82 ETH/year + lottery blocks which the NO can keep
A solo with this much ETH would average 0.684 IF SMOOTHED
So 20% more than solo in pure ETH, + 23% mean (~18% median in a year) lottery blocks + smoothing of execution rewards.
And another 81% of solo in terms of RPL rewards if maintaining topping up to 10% collateral.
With average blocks reward of 0.07 and ~3 proposals per year, there will be a runway of about 9.5 years for persistent theft.
So 143% of solo validators if RPL goes to zero and timeframe is forever, and markedly more if RPL gains in value.