EIP-8222: Lean Staking

Co-authored with @mmjahanara

Discussion topic for [EIP-8222](Add EIP: Lean Staking by dmpierre · Pull Request #11500 · ethereum/EIPs · GitHub)

Lean Staking is an L1-native, two-phase staking protocol that breaks the public link between Ethereum deposit addresses and consensus layer validator keys. Depositors submit ETH alongside a cryptographic commitment to the staking contract, without revealing any validator keypair. A separate party later claims the deposit by submitting a zero-knowledge proof of commitment ownership, at which point the deposit enters the validator entry queue. The protocol is implemented through changes to the staking contract coupled with a zkSNARK only, requiring no consensus layer modifications.

We benchmark our zkSNARK on a Macbook M1 Pro using LeanVM, a post-quantum, expected to be formally verified, proving system currently developed by the Ethereum Foundation.

We also introduce an optional two-phase withdrawal extension using a new 0x03 withdrawal credential type. It allows validators to break the link between their validator key and their withdrawal address. This enables a direct pending-deposit-to-pending-withdrawal path, preventing privacy-only seeking users to ever activate as a validator. This extension offers two-sided plausible deniability: both sender and recipient perform actions indistinguishable from routine staking operations.

To our knowledge, this is the first construction providing two-sided plausible deniability for private ETH transfers on Ethereum.