Skip to main content

What AggOracle Does

AggOracle propagates Global Exit Root (GER) updates from Ethereum L1 to the L2 chain’s Global Exit Root Manager contract. This synchronization keeps the L2 chain’s local copy of global state current, which is required for verifying incoming cross-chain claims. When a user bridges assets from another chain to your chain and submits a claim, your chain verifies the claim against the current GER. Without a current GER, the verification fails and claims cannot be processed.

The Synchronization Problem

Cross-chain claim verification requires L2 chains to have current GER data from Ethereum L1. The two chains operate independently with different block times and finality requirements, so the L2 cannot query L1 directly on demand. AggOracle resolves this by implementing a pull-based synchronization mechanism: it continuously monitors L1 for GER changes and injects updates into the L2 contract whenever a new GER is detected.

The Two Operating Modes

Direct Injection Mode (Pre-v0.3.5)

In the original design, AggOracle used single-address authorization for GER injection. One designated address had the authority to call insertGlobalExitRoot() on the L2 Global Exit Root Manager contract. Vulnerability: If the single private key is compromised, an attacker could inject invalid GERs, causing the chain to accept fraudulent bridge claims.

Committee Mode (v0.3.5)

v0.3.5 introduces multi-party consensus. Multiple independent AggOracle instances must agree before any GER injection occurs. How it works:
  1. Multiple AggOracle committee members independently monitor L1 for GER updates
  2. When a new GER is detected, one member proposes it to the committee contract
  3. Other members validate and vote by proposing the same GER
  4. The committee contract automatically injects the GER when the threshold quorum is reached
Security improvement: Even if some committee members are compromised, the system remains secure because multiple independent parties must reach consensus before any state update occurs.

Full GER Propagation Workflow

Understanding Global Exit Roots

A Global Exit Root (GER) is a cryptographic hash that represents the current state of all cross-chain bridge activities across the Agglayer ecosystem:
GER = hash(RollupExitRoot, MainnetExitRoot)
Where:
  • RollupExitRoot: Aggregated root of all L2 chains’ Local Exit Roots
  • MainnetExitRoot: Root of all Ethereum L1 bridge transactions
Cross-chain claims require proof verification against the current GER. When users submit bridge claims to your chain, the claim proofs must reference a GER that your chain has recorded as valid.