Sequencer Client
The fastest way to read the state of a rollup is to track it at the sequencer level. OP Stack rollups have a well-defined P2P gossip network where the sequencer emits an ExecutionPayloadEnvelope
(reference), which contains the block header signed by the sequencer itself.
Step 1: Source Rollup to Polymer Hub
Polymer runs a P2P sentry to fetch these payloads emitted by the sequencer. Polymer Hub stores the entire headers as client updates (validated against the sequencer's signature), effectively acting as a state aggregator of all connected rollups.
Connecting State to Ethereum
This introduces the concept of “sub-finality”, which acts as a proxy for block safety (i.e., safe, finalized blocks that are only a function of Data Availability (DA) submissions), we take it a step further.
Every rollup is anchored to a given Ethereum block with a defined number of confirmations; this block is known as the L1Origin
(i.e from a certain depth from the L1 head), defined in the rollup's derivation pipeline.
We use this to tie every rollup's state update back to the L1Origin it is following. This ensures that communicating rollups are on the same fork of Ethereum, reducing the chances of relaying state that is likely to reorg.
Step 2: Polymer Hub to Desination Rollup
Once Polymer Hub's state is ready and a block is built, it can:
- Propose on Ethereum: Like any rollup, Polymer Hub posts its state on Ethereum. This process will follow a dispute game if someone proposes an alternate state.
- Forward to Other Rollups: Using faster confirmations, it can send state updates directly to other rollups.
Every rollup proposes a state on Ethereum, signed by its sequencer. We follow a similar approach to update the client on the destination chain.
Consistency Check
Once the Polymer Hub client update reaches the destination chain, it must pass both the validity check (L2 level) and the consistency check (L1 level) to be accepted.
In case a rollup is following the wrong fork of Ethereum or has undergone a reorg (reverting transactions to the mempool), the client update will fail. Any packets sent from the source chain with a different L1 view will not pass if the transactions are replayed by the rollup.
Polymer Labs has contributed a Rollup Improvement Proposal, RIP-7789, discussing the importance of L1Origin and the role it plays in rollup communications. Read more about RIP-7789.