Scrub Check - Solo Migration

The Atlas Upgrade uses BLSTOExecutionChange messages introduced in the Shapella Hardfork to allow solo stakers (with BLS withdrawal credentials) to convert to a minipool. In the process, the solo staker receives credit to create more minipools with.

Similar to Scrub Check - Withdrawal Credentials, the protocol needs to make sure that the new withdrawal credentials are correctly set. This process should also allow the solo staker to keep all of their already accrued rewards before the migration. Contrary to the LEB8 migration, waiting for skimming of those rewards is not possible, since those rely on 0x01 withdrawal credentials. Rocket Pool addresses this through the following process:

  1. The node operator creates a "vacant minipool", reporting the current Balance of their solo validator on the beacon chain.

  2. They change the withdrawal credentials of the validator to the address of the vacant minipool.

  3. The creation of the vacant minipool starts a 72 hour scrub period, where the oDAO will vote to scrub the vacant minipool if:

    • the beacon chain balance plus the minipool balance are lower than the reported value in the first step (a 0.01 ETH buffer avoids scrubbing for potential offline penalties) or

    • withdrawal credentials are not changed within 61.2 hours or

    • withdrawal credentials are changed to an address other than the minipool address or

    • the validator is not active on the beacon chain

  4. After passing the scrub period, the operator can promote it to a full minipool, claim their existing rewards based on the value reported in step 1 and receive credit that can be used for new minipools.

Reliance on the oDAO is necessary here, because information about validator status, beacon chain balance and withdrawal credentials is not available on the execution layer.

For the protocol, this introduces a high level of trust. For example, a compromised oDAO could migrate non-existent minipools, create credit for more minipools that way and exit these immediately for profit. For node operators that make use of this migration, the trust level is relatively low. A malicious scrub would prevent converting to a minipool, but the operator would still be able to exit and withdraw their validator in full. The only damage would be the wasted gas cost.

Just like Scrub Check - LEB8 Migration, this duty provides simply convenience and efficiency. With Ethereum withdrawals live, any solo validator can already migrate to minipools by exiting. It would be reasonable to sunset this feature (with an appropriate grace period) once all other oDAO duties can be safely removed.

Last updated