[MERGED] ELIP-004: Slashing-aware EigenPods

Hi everyone – Live on testnet is ELIP-004: Slashing-aware EigenPods! We have been discussing these changes publicly for a little while, but the ELIP is now ready for more thorough review!

This proposal introduces targeted changes to the EigenPod contracts to make them slashing-aware and Pectra compatible. Upgrading Pods keeps natively restaked ETH functionally on-par with ERC-20s when used as slashable stake. The scope of this upgrade introduces breaking changes to EigenPods and updates several interfaces. Broadly, this upgrade brings:

  • Slashing-aware EigenPod contracts that enable proper accounting for Native ETH slashings,
  • The introduction of the Beacon Chain Slashing factor that propagates external Ethereum slashings correctly across EigenLayer,
  • A new checkpoint structure,
  • A pause on checkpointing around the time of the associated upgrade,
  • A modified withdrawal process for EigenPods to apply Ethereum and/or AVS slashings to assets withdrawn from EigenPods.

Read on to learn more!

Prior to the Pectra hard fork, starting checkpoint and credential proofs on EigenPods will be paused. During the paused period, checkpoints that were started are still completable. Post hard-fork, the EigenPods will be upgraded, after which credential and checkpoint proofs will become unpaused.

What does “prior” mean here? As in, is there a non-zero duration period in which checkpoints are paused. Does this create new risks for the time that this is paused until is unpaused.

Great question - we plan on pausing EigenPod checkpoints ~6 hours before each hard fork is scheduled to take place. The procedure will roughly be the following (and I can update the ELIP as well):

  1. Pause new checkpoint creation & credential proof generation
  2. Upgrade the core contracts (on each network)
  3. Set the Pectra fork timestamp after it has elapsed. This must be done in our contracts in the next available block we can include a transaction
  4. Unpause checkpoint creation & credential proof generation

Let me know if this helps or if you have any more qustions!

On Apr-17-2025 at Apr-17-2025 10:30:11 PM UTC ELIP-004 was successfully executed. Here is an overview of the implementation:

  1. A transaction to execute the previously-queued timelock action was proposed to the Protocol Council multisig. This initial proposal was performed using Zeus, a tool developed by EigenLabs to aid in deployments and administrative actions (soon to be open source!). It followed the logic in the scripts within this folder. The previously-queued action can be found in the event logs of this transaction.
  2. Protocol Council members proceeded to sign the proposed action via the (Gnosis) Safe UI, with the last (i.e. 3rd) signer executing the action.
  3. Upon execution, the action triggered an upgrade of the:
    1. AVS Directory (0x135dda560e946695d6f155dacafc6f1f25c1f5af) to the implementation deployed at 0xa396d855d70e1a1ec1a0199adb9845096683b6a2
    2. Delegation Manager (0x39053d51b77dc0d36036fc1fcc8cb819df8ef37a) to the implementation deployed at 0xa75112d1df37fa53a431525cd47a7d7facea7e73
    3. Rewards Coordinator (0x7750d328b314effa365a0402ccfd489b80b0adda) to the implementation deployed at 0xa505c0116ad65071f0130061f94745b7853220ab
    4. Strategy Manager (0x858646372cc42e1a627fce94aa7a7033e7cf075a) to the implementation deployed at 0xba4b2b8a076851a3044882493c2e36503d50b925
    5. All EigenPods (beacon at 0x5a2a4f2f3c18f09179b6703e63d9edd165909073) to the implementation deployed at 0xb132a8dad03a507f1b9d2f467a4936df2161c63e
    6. EigenPod Manager (0x91e677b07f7af907ec9a428aafa9fc14a0d3a338) to the implementation deployed at 0x9801266cbbbe1e94bb9daf7de8d61528f49cec77
    7. The EigenStrategy (0xacb55c530acdb2849e6d4f36992cd8c9d50ed8f7) to the implementation deployed at 0x90b074ddd680bd06c72e28b09231a0f848205729
    8. All factory-deployed Strategy contracts (beacon at 0x0ed6703c298d28ae0878d1b28e88ca87f9662fe9) to the implementation deployed at 0x0ec17ef9c00f360db28ca8008684a4796b11e456
    9. Strategy Factory (0x5e4c39ad7a3e881585e383db9827eb4811f6f647) to the implementation deployed at 0x1b97d8f963179c0e17e5f3d85cdfd9a31a49bc66
    10. All “legacy Strategies” (deployed before the Strategy Factory’s existence – see https://github.com/Layr-Labs/eigenlayer-contracts-zeus-metadata/blob/f3e848dbebe9ce8b1a45392c61b2f1edf7d54631/environment/mainnet/manifest.json#L280-L408 for the full list of addresses) to the implementation deployed at 0xafda870d4a94b9444f9f22a0e61806178b6bf178

Before signing, all Protocol Council members reviewed a Tenderly simulation for confirmation of the above and used pcaversaccio’s tool (https://github.com/pcaversaccio/safe-tx-hashes-util) and OpenZeppelin’s similar tool (https://safeutils.openzeppelin.com/) to check for matching hashes on signed data.

1 Like