Proposal/Research - Add a second option for staking RPL as collateral

I understand that this would require long term development from the team, and take a lot of their focus, but I wanted to post this here to gauge interest and get feedback. If anyone knows anyone that is on the fence about joining Rocket Pool as a Node Operator, or previously wrote the idea off completely because of the RPL price risk, I’d love to get their feedback on if something like this would ease their fears.

Add a second option for staking RPL as collateral

Option 1: Take on the risk/reward of RPL price action in exchange for staking up to 150% collateral and the ability to claim RPL rewards while staked indefinitely, and in return receive a fixed commission slightly above normal ETH staking rewards (12%?).

Option 2: Stake 1.6 ETH worth of RPL. Guaranteed* return of 1.6 ETH gradually over a long term time frame (10 years?), and slightly higher than normal ETH staking rewards via commission.
*bar smart contract risk

A High Level Overview of Option 2

Allow Node Operators to deposit 1.6 ETH of RPL as collateral. The conversion of ETH to RPL could be handled by the protocol to avoid unnecessary barriers to entry. Any node operators that choose this option are tagged.

Any nodes tagged for this option have their RPL claims withdrawn to a smart contract, sold back to ETH, and then distributed back to the tagged NO’s evenly (based on minipool amount), provided they have not been staked for longer than their set time frame.

If someone originally deposited 300 RPL worth 1.6 ETH at the time of deposit, and another person deposited 150 RPL, also worth 1.6ETH at the time of deposit, claims are made against both, withdrawn to a smart contract and sold back to ETH. Both participants receive the same amount of ETH for this claim period because they both own 1 minipool.

If the claimed ETH is enough to satisfy the requirement to reach 1.6ETH by the end of the time frame, no extra action needs to be taken.

// This is calculated based on time frame/claims. 
// For purposes of this post, ill be using a 10 year time frame, with claims happening each month
// 120 claims for a total of 1.6 ETH = ~0.01333 per claim.

claimedETHPerMinipool = totalClaimedInEth / taggedNodeMinipools = 0.01333;

missingETHPerMinipool = ETH_THRESHOLD_PER_CLAIM  - claimedETHPerMinipool  = 0; //satisfies threshold

Otherwise the commission for the next claim period needs to be increased to cover the missing ETH from the last claim period.

CLAIM_PERIOD = 1; //month
STAKING_APR = 0.05; //5% staking APR

claimedETHPerMinipool = totalClaimedInEth / taggedNodeMinipools = 0.008;

missingETHPerMinipool = ETH_THRESHOLD_PER_CLAIM  - claimedETHPerMinipool  = 0.00533;

//extrapolate these losses out to a full year to find the annual commission required to cover it
annualisedMissingEth = missingETHPerMinipool *(12/CLAIM_PERIOD) = 0.0636 ETH;

//get current staking rewards and find the % of annualized missing eth that needs to be taken as commission
requiredCommissionForNextClaim = annualisedMissingEth / (ETH_STAKED_FROM_DP * STAKING APR) = 0.0795; //7.95%

In this case the commission would need to increase by 7.95% for the 0.00533 ETH to be made up by the time of the next claim.

Working out Average NO Commission

This is where it gets tricky. Depending on when they started staking, the commission for each NO will be different.

Someone may have joined early, spent 9 claim periods at 0% “increased commission”, and in the 10th claim period “increased commission” rose to 8%. This person’s exit commission at this point would be calculated as 12.8%.

The average of all claim periods’ commission rates they’ve been a part of, assuming 12% base commission. ((12 * 9) + 20)/10 = 12.8

Someone that just joined the protocol for the 10th claim period would have an exit commission of 20%.

To work out the average NO commission, you’d have to take into account all active NO’s, which claim period they started staking, and the commission for each claim period up to the current point.

100 Currently Active NO’s
Of those active NO’s:

Period 1 - 20 NO’s active - 10% commission
Period 2 - 40 NO’s active - 15% commission
Period 3 - 80 NO’s active - 10% commission
Period 4 - 100 NO’s active - 15% commission
Period 5 - 100 NO’s active - 10% commission
Period 6 - 100 NO’s active - 15% commission

20 NO’s average period 1-6 commissions = 12.5% - 20/100 = 0.2 weighting
20 more NO’s average period 2-6 commissions = 13% - 0.2 weighting
40 more NO’s average period 3-6 commissions = 12.5% - 0.4 weighting
20 more NO’s average period 4-6 commissions = 13.33% - 0.2 weighting

(12.5 * 0.2) + (13% * 0.2) + (12.5% * 0.4) + (13.33 *0.2) = 12.766%;

Average NO commission at this point is 12.766%

Maximum Possible Commission Rate

The maximum commission rate is reached if RPL drops to 0 and stays at 0 for every claim period an NO is staked.

CLAIM_PERIOD = 1 //month
STAKING_APR = 0.05 //5% staking APR

claimedETHPerMinipool = totalClaimedInEth / taggedNodeMinipools = 0.0 //made nothing from selling RPL

missingETHPerMinipool = ETH_THRESHOLD_PER_CLAIM  - claimedETHPerMinipool  = 0.01333 // still needs full amount

//extrapolate these losses out to a full year to find the annual commission required to cover it
annualisedMissingEth = missingETHPerMinipool *(12/CLAIM_PERIOD) = 0.16 ETH

//get current staking rewards and find the % of annualizedMissingEth that needs to be taken as commission
requiredCommissionForNextClaim = annualisedMissingEth / (ETH_STAKED_FROM_DP * STAKING APR) = 0.2 //20%

If “slightly more than normal ETH rewards” were deemed to be 12% commission, then the commission on exit for this NO would be 32%.

It’s important to keep in mind that depending on the ratio of NO’s that have chosen option 1, vs amount of NO’s that have chosen option 2, the average commission across the whole protocol should be somewhere in the middle of the fixed commission (12%?) and 32% (assuming 12% base commission) in the worst case scenario that RPL literally drops to $0 and stays there.

If this is still considered too much risk to be safe for the protocol, the time frame for a NO to receive their full 1.6ETH back on top of rewards could be dynamic based on the ratio of NO’s that have chosen option 1 vs option 2.

  • If 99% of NO’s were staked in option 1, then allowing 1% of NO’s to reach 50% commission in order to regain their 1.6 ETH, might be deemed safe for the protocol.

  • If 99% of NO’s are staked with option 2, then extending the time frame can lower the ETH_THRESHOLD_PER_CLAIM to something more manageable.
    Doubling my time frame of 10 years to 20 years results in 10% extra commission, coming to 22% commission total if RPL dropped to $0 and stayed there.

At the time of staking, the time frame for the NO to earn their rewards back should be locked in.

What Happens When The Time frame Expires

After reaching the end of the set time frame, NO’s should have received enough ETH from claim rewards + locked in the required commission to get their 1.6 ETH + additional rewards back in full.

From this point on every claim period should be considered to have the base commission rate for these NO’s, lowering their average commission for each following claim period that they stay staked - still ensuring they get their full 1.6 ETH + rewards back.

I understand this adds another level of complexity to working out Average NO Commission that I haven’t dealt with

If they continue to stake afterwards (there should be no reason not too), all of the claim rewards then start to subsidize other NO’s that chose Option 2, resulting in a smaller chance that commissions will need to rise.

What Happens To Excess ETH Each Claim Period?

Any excess ETH from the claim process is up for grabs for the rest of the protocol. This could be a decision put to the pDAO.

Here are a few ideas.

  • The excess rewards are paid out to the NO’s causing the “increased commission” rate to go negative.

    An example using arbitrary numbers:

//Over payed each NO 0.001 ETH per minipool this claim period
missingETHPerMinipool = ETH_THRESHOLD_PER_CLAIM  - claimedETHPerMinipool  = -0.001; //ETH

//extrapolate these gains out to a full year to then find the annual commission required to cover it
annualisedMissingEth = missingETHPerMinipool *(12/CLAIM_PERIOD) = -0.012; // ETH

//To cover -0.001 more ETH by next claim we need to reduce commission by 1.5%
requiredCommissionForNextClaim = annualisedMissingEth / (ETH_STAKED_FROM_DP * STAKING APR) = -0.015 // -1.5%

Commission for this claim period would be 10.5% for all option 2 NO’s that havent been staking for longer than their set time frame, effectively passing on the rewards to rETH holders.

  • The excess rewards could be paid to “Option 1” Node Operators to boost incentives to join as a fixed commission NO.

    Currently the problem with RPL inflation is that when all RPL is staked, RPL rewards result -1.5% real value for NO’s (5% inflation, 3.5% of inflation paid to NO’s). If a portion of RPL was staked using Option 2, and all of it reached maturity, then all of the claimed RPL would help offset the negative real RPL rewards for Option 1 NO’s.
    This option effectively passes on the rewards to other NO’s.

  • The protocol could create a treasury to help fund things.

What Happens To RPL On Nodes After A Node Exits

Since the NO should have received all of their initial ETH back provided they were staked long enough, the RPL at this point can be taken by the protocol.

There could be a clause where if they exit before the set time frame, RPL is sold to try and reach their original 1.6ETH but isnt guaranteed, as just one extra assurance to risk averse NO’s. But any excess RPL is then taken by the protocol.

What the protocol does with it is then up for debate - this again could be a decision put to the pDAO.

So what do you think?

This whole system might be pointless if it doesn’t lower the barrier for entry for risk averse Node Operators. They may still see the requirement to stay staked for a predetermined amount of time to ensure their full initial 1.6 ETH back as too much of a risk.

There’s also a lot more research that needs to be done for edge cases etc.
What happens if a NO using option 2 starts with 2 minipools and 3.2 ETH worth of RPL on deposit, and then exits 1 minipool?

Keen to hear feedback

Cheers, Prem.

To clarify my intentions behind an addition like this.

  1. I think that RPL tokenomics should remain as they are. Every NO should be required to deposit at least 1.6 ETH worth of RPL, so that the protocol has a method of creating incentives beyond a very restrictive commission rate. This is why I havent suggested just letting NO’s deposit 1.6 ETH as collateral, or any of those kinds of alternatives.

  2. Another idea being given serious thought is a lending mechanism for RPL, where the borrower (NO) is under no risk of liquidation, and people with excess RPL take on the risk of slashing in exchange for getting it into a Node to start earning staking rewards.
    At a high level, given that the primary usecase for RPL is insurance, this feels like a disaster waiting to happen. It has been pointed out that the case in which RPL is slashed is so exceedingly rare that this becomes a non-issue.
    I’m on the fence with this approach. At the very least, it feels like it could be damaging to the reputation of Rocket Pool if many of it’s token holders are effectively admitting that the risk of slashing is so low that it’s irrelevant, considering Rocket Pool’s RPL token is marketted as a required puzzle piece of the protocol for that very reason. This feels like a quick-fix to boost growth in the short-medium term, at the expense of Rocket Pool and RPL’s reputation. Personally I’d like to see these issues of RPL’s lack of utility in the protocol addressed instead.

    It adds fuel to the fire for all the potential NO’s out there already wondering why RPL is even necessary for protocol to operate.

IMO, there needs to be a tradeoff for becoming a RP NO if you want tokenomics to remain the same. Currently, this tradeoff is the risk of RPL price exposure in exchange for higher than normal ETH staking rewards, and the other benefits RP offers.

My proposal aims to change that tradeoff from one of risk, to one of time. You gain the benefits of RP, but must stay staked for x amount of time, with no risk (beyond smart contract risk) of losing any of your initial deposit. All of this while maintaining the current minimum requirements for running an RP Node.

Why shouldn’t the NO borrowing RPL be at risk of liquidation? They give ETH as collateral for their RPL loan. They stake the RPL, if it gets slashed they don’t have it to pay back the loan and get the ETH back, so the slashing risk is still present and they are still incentivized to operate their node well. Does that address your concern?

The loan can be liquidated if the RPL price goes up too much compared to the ETH collateral.

It seems to me a lending market would give all options for a NO depending on their sentiment on RPL:

  • If a NO is bullish on RPL, they can just buy and stake it as it is done now.
  • If a NO is bearish on RPL, they can borrow it.
  • If a NO wants to be neutral on RPL, I believe they could borrow part of it in a ratio such that the two sides balance each other.

An unstaked RPL holder (so by definition bullish on it) would want to lend it out for the interest income. The market can decide the RPL/ETH price (like now) and the lending APR.

A nice thing about this approach is that it requires no extra work from the RP devs, just a trustworthy permissionless lending protocol.

For a bearish, risk averse NO, they are putting themselves in the position where they borrow RPL with ETH as collateral and stake that RPL, locking it into the node.

If their ETH collateral was liquidated, they are stuck in the exact same position they wanted to avoid, without a way to take the RPL out and sell it back to ETH at that point. From that moment on they have to carry the risk of RPL price action.

A neutral strategy doesnt work either when one side (the RPL) isn’t liquid.

1 Like

They can choose to increase their ETH collateral to avoid liquidation. Or if they borrowed enough RPL or the RPL price went up enough, they can unstake the share of RPL above 150% to partially repay the loan.

Someone bearish on RPL isn’t about to loan 150% worth of collateral. They’ll loan as little as possible. Assuming that they’ll be able to withdraw collateral above 150% to get back some of their initial capital during a run up isn’t realistic.

Being given the opportunity to update your collateral position in DEFI before being liquidated isn’t guaranteed in the slightest.

Imagine the scenario RPL launches on a CEX, moons in a 1 minute window, everyone gets liquidated, and then tanks in the following hours/days/weeks/months. All of those people that loaned RPL to cover 20% collateral can’t remove it from their node to sell at the peak and make back their ETH. They are stuck just watching their investment tank.

20% collateral equates to ~18% of their total capital in RPL. The bearish investors look at that and think about the case where RPL drops to 0, causing ~4 years of accrued rewards to be lost.

An over-collateralised lending market does nothing to help sway the decisions of risk-averse NO’s that don’t want to take on the risk of RPL volatility in relation to ETH.

1 Like

Why not? In general, it makes sense to borrow an asset you are bearish on, because you expect it to be cheaper to pay back, and to be overcollaterized. In this case you need to stake the RPL, so the RPL in the node is losing value but the loan gets cheaper to pay back. So for the RPL-bearish NO with enough ETH this loan makes perfect sense.

I agree managing the collaterization in case of RPL price swings would be extra work/trouble. So I’m not saying every NO would choose this way, but it would be one more option that could attract some new NOs, while not requiring new development, auditing and added smart contract risk surface.