Works best when
- Users need a guaranteed exit from L2 or shielded pools even if the operator is offline or hostile.
- Institutional deployments must demonstrate non-custodial protections for regulatory acceptance.
- Censorship resistance is a hard requirement in I2U contexts.
Avoid when
- L1-native operations where no intermediary can censor (for example, direct shielding on L1).
- The cost of L1 proof verification exceeds the value of the assets at stake.
I2I vs I2U — context differences
Institution to institution
I2IBetween institutions, neither counterparty can lock the other's funds by withholding operator cooperation. Institutional deployments may accept upgrade risk under bilateral governance (both parties on the multisig), since legal recourse bounds the downside.
Institution to end user
I2UFor end users, unilateral exit is non-optional. The CROPS rubric requires a concrete user-initiated escape path for anything above cr: low. The user must be able to reconstruct their position, build the required proof, and submit it without operator cooperation; any step that depends on the operator breaks the guarantee.
Post-quantum exposure
Risk · high- Vector
- ZK systems relying on elliptic-curve pairings (Groth16, PLONK over BN254) are broken by a CRQC. An attacker with quantum capability could forge withdrawal proofs once state roots anchored on L1 become historical.
- Mitigation
- STARKs with hash-based commitments are not affected. See Post-Quantum Threats.
Components
- Data availability source lets the user reconstruct their position. Can be L1 calldata, L1 blobs, an external DA layer, a validium DA committee, or client-side storage.
- L1 state-root oracle stores the last verified L2 state root. Validity rollups anchor with a zero-knowledge proof; optimistic rollups anchor after a challenge period survives.
- Proof verifier contract accepts Merkle proofs (transparent systems) or zero-knowledge proofs (privacy systems) and checks them against the anchored root.
- Nullifier registry records completed withdrawals to prevent double-claims.
- Bridge liquidity contract holds the locked deposits that forced exits draw from; no new funds are created.
- Client-side prover with the required circuit, proving keys or SRS artifacts, and local compute (roughly 0.5 to 3 seconds native or 20 to 30 seconds in browser WASM on current hardware).
Where the data lives determines the trust assumption:
| DA strategy | Trust assumption | Failure mode |
|---|---|---|
| L1 calldata | Ethereum consensus | Nothing (permanent, expensive) |
| L1 blobs (EIP-4844) | Ethereum plus archival within ~18 days | Pruned if nobody archives |
| External DA layer | DA layer liveness plus economic security | DA layer offline or withholds |
| DA committee (validium) | Honest committee majority | Committee withholds; funds frozen |
| Client-side | The user | User loses data; funds gone |
For privacy systems, even with perfect DA the user faces a five-step gap between "data exists" and "exit succeeds": raw byte access, data parsing (the rollup's compression format), state derivation, proof generation, and L1 submission. Each step can independently block the exit. DeFi positions (LP tokens, lending, vaults) require custom resolver contracts to map complex storage slots to withdrawable amounts; most protocols have none.
Protocol
- user Detect operator unresponsiveness or censorship (for example, withdrawal requests ignored past a threshold).
- user Retrieve the latest L1-anchored state root and your position data (note, Merkle path, nullifier secret for privacy systems; account state for transparent systems).
- prover Generate the required proof: a Merkle witness for transparent systems, a zero-knowledge proof for privacy systems.
- user Submit the proof and nullifier to the L1 escape-hatch contract, directly or via any willing relayer.
- contract Verify the proof against the anchored root, check the nullifier is unspent, and start the withdrawal.
- contract Enforce the construction-dependent delay before claim. Optimistic rollups wait a challenge period (typically 7 days); validity rollups wait an operator-liveness timeout (hours to days).
- contract Record the nullifier on L1 to prevent double-withdrawal; the operator must account for this forced exit upon resumption.
Guarantees & threat model
How strong the escape guarantee is depends on the construction class:
| Validity rollup | Optimistic rollup | Privacy rollup | L1-native privacy | |
|---|---|---|---|---|
| State freshness | Latest proven root | Root must survive 7d challenge | Latest proven root | Real-time |
| Proof effort | Merkle witness | None (force-include tx) | Full zero-knowledge proof | Full zero-knowledge proof |
| DA risk | Low if on-chain | Low if on-chain | High (encrypted state) | None |
| Escape without operator | Yes | Yes | Partial (may need bonded proposer) | Not applicable (no operator) |
Guarantees:
- Bounded recovery time: funds recoverable within a protocol-defined window whether or not the operator comes back.
- No operator cooperation required. The L1 contract enforces withdrawal autonomously.
- For privacy systems, identity is not revealed at exit. The zero-knowledge proof hides which commitment is being withdrawn.
Threat model:
- State-root honesty and correct challenge-window enforcement on L1.
- Non-censoring L1 inclusion path. The escape transaction must be includable on L1 regardless of L2 operator status.
- Upgrade governance on the escape-hatch contract. An operator that can instantly upgrade the contract can also remove the escape hatch.
- Out of scope: positions that rely on custom DeFi resolver contracts where no resolver exists; those balances are effectively unescapable.
Trade-offs
- Upgrade risk: 86% of 129 L2 projects allow instant contract upgrades without exit windows (Ethical Risk Analysis of L2 Rollups, 2025). An escape hatch the operator can remove via upgrade provides no meaningful guarantee. L2Beat Stages requires 7-day (Stage 1) or 30-day (Stage 2) upgrade delays, minus any withdrawal delay.
- DA withholding: validium DA committees can freeze all funds by refusing to share state. External DA layers add a liveness dependency. On-chain calldata and blobs are immune but expensive. For privacy systems, data can sit on-chain yet be useless without decryption keys.
- State freshness gap: users can prove only against the most recently anchored root. Any transactions after that root are lost. Anchoring intervals range from minutes (validity rollups) to hours.
- Mass exit: everyone hits L1 at once. Gas prices spike, users with no L1 ETH cannot participate, and leveraged DeFi positions may create claims exceeding underlying bridge deposits.
- Proving liveness: for privacy systems, the user must retain secrets and run a compatible prover. The prover code must be open-source, deterministically compilable, and match the L1 verifier's expected proof format. A version mismatch means funds are frozen until governance acts. Browser WASM proving works but is 5 to 15 times slower than native.
Example
A bank operates a private payment L2 for its clients. The sequencer goes offline. A client holds 500 000 USDC in shielded notes on the L2 and their withdrawal requests time out. The client retrieves the latest state root anchored on L1 and builds a Merkle inclusion proof for their commitment. They generate a ZK ownership proof and submit it to the L1 escape-hatch contract (~300 000 gas). After the 7-day challenge period, the client claims 500 000 USDC on L1 to a fresh address. The L1 transaction reveals that someone withdrew 500 000 USDC, but not which client or which L2 transactions funded the balance.
See also
- L2Beat Stages Framework: maturity classification for rollup escape hatches
- A Practical Rollup Escape Hatch Design (Zircuit, 2025): resolver contracts for DeFi positions
- L2Beat DA Risk Framework: DA layer risk evaluation methodology
- Introducing Stages (Medium)