RPIP-44: Integrating Execution Layer Triggerable Exits Source

Describes how execution layer triggerable exits (per EIP-7002) will be used within Rocket Pool.
⚠️ This RPIP is not recommended for general use or implementation as it is likely to change.
RPIP44
AuthorValdorff, Mike Leach
StatusDraft
TypeProtocol
CategoryCore
Requires 42, 43, eip-7002
Created2024-03-05
DiscussionLink

RPIP-44: Integrating Execution Layer Triggerable Exits Source

Describes how execution layer triggerable exits (per EIP-7002) will be used within Rocket Pool.

Abstract

This proposal specifies when execution layer triggerable exits as defined in EIP-7002 will be used by RP contracts. There are two enumerated use cases. The first is that the Node operator may freely request exits of their validators. The second is a keeper mechanism that allows and incentivizes any user to forcibly exit a Node Operator’s validators if that Node Operator owes the protocol a threshold amount. This helps keep rETH performant and minimizes funds lost to theft.

There is at least one additional use case not addressed in this RPIP, which is to exit badly-performing (eg, abandoned) validators. It is likely the pDAO will wish to supersede this RPIP to include that functionality. However, as it requires modeling and is not a critical component of the tokenomics rework, it is not being addressed at this time. For similar reasons, this RPIP does not include a keeper-based design to reward those that trigger forced exits. Please see a historical version of RPIP-44 for initial but incomplete ideas to address abandonment and a keeper network.

Specification

This specification extends the specification of megapools in RPIP-43 with a facility for removal of validators from the megapool to be done by parties other than the Node Operator.

Funds (ETH) associated with a megapool SHALL be accounted in (at least) the following categories:

  • Received Funds (received): Funds provided that can be used towards validator deposits; sources include deposits from the Node Operator and ETH staked on behalf of the node (RPIP-32)
  • Credits (credit): Funds already in the protocol that can be used towards validator deposits; sources include ETH already staked on the beacon chain for a migrating validator
  • Deposits (deposited): Funds currently staked on the beacon chain for validators associated with this megapool
  • Withdrawals (withdrawn): Funds received into the megapool via withdrawals from the beacon chain, including both principal and the node’s share of rewards, NOT including pool stakers’ share of the rewards
  • Penalties (debt): Funds lost to penalties as enumerated in RPIP-42, or repaid from other balances as specified in this RPIP

The following quantity, deficit, is derived from the categorised funds above:

$$ \mathtt{deficit} = \mathtt{received} + \mathtt{credit} + \mathtt{withdrawn} - \mathtt{debt} $$

We also introduce a protocol-wide parameter exit_deficit, with initial setting

$$ \mathtt{exit\_deficit} = 0.2\;\mathrm{ETH} $$

The exit functionality for a megapool is specified as follows:

  • A megapool contract SHALL include an exit function
    • This function SHALL accept one or more public keys for validators associated with this megapool
    • This function SHALL either remove the specified validators from the megapool or revert
      • If any of the validators are still active on the beacon chain a successful call of this function MUST also exit those validators from the beacon chain
    • This function MAY be freely called by the Node Operator (as implied by RPIP-43)
    • This function MAY be called by any account under the condition: deficit >= exit_deficit
      • It MUST NOT be possible for accounts other than the Node Operator to exit more validators than needed to reduce deficit below exit_deficit
  • The protocol SHALL use the withdrawn, credit, and received balances to decrease debt prior to taking action on exits
  • The protocol SHOULD use staked RPL to decrease debt by the corresponding amount prior to taking action on exits

Copyright and related rights waived via CC0.

Citation

Valdorff, Mike Leach, "RPIP-44: Integrating Execution Layer Triggerable Exits [DRAFT]," Rocket Pool Improvement Proposals, no. 44, March 2024. [Online serial]. Available: https://rpips.rocketpool.net/RPIPs/rpip-44.