1. Introduction
Ethereum has limited resources, these being:
- Bandwidth
- Computation (bottleneck)
- Storage (bottleneck)
Â
Optimistic Rollups → Submit transaction data on-chain, but execute transactions off-chain.
- If an error occurs in off-chain execution → Fault proofs can be submitted on-chain.
- You only execute transactions on-chain if their is a ‘fault’.
Â
EVM Equivalence
This describes a complete compliance with the state transition function described by the Ethereum specification.
Â
Protocol Guarantees
- Liveness
- By submitting to sequencer (low latency, cheaper).
- By submitting directly to L1 (censorship-resistant).
Anyone can update the rollup chain.
- Availability
- Data required to derive the chain is available on L1.
Anyone is able to download and reconstruct the rollup chain.
- Validity
- Rollup state and withdrawals are managed by the L2 State Oracle contract.
- This contract only finalises valid rollup block hashes (under single honest verifier assumption).
- If an invalid block hash is asserted on L1, an honest verifier will prove it is invalid and win a bond.
All transactions are executed correctly and withdrawals are processed correctly.
Â
Â
Users
- Can deposit/withdraw on L2 by interacting with an L1 contract.
- Use L2 contracts by submitting transactions to sequencers.
- Check transaction status by communicating with a verifier. Verifiers can power services such as block explorers.
Â
Sequencers (primary block producer)
- Accepts off-chain transactions (L2 transactions).
- Observes on-chain transactions (deposit events coming from L1).
- Consolidates both off and on-chain transactions into L2 blocks (ordering them as well).
- Propagates L2 blocks to L1 (by submitting calldata to L1), this involves including:
- Pending off-chain transactions
- Information about the ordering of on-chain transactions to construct L2 blocks.
Â
Sequencer also gossips the L2 blocks that it creates (for the use of soft finality).
Â
Verifiers
Have 2 purposes:
- Serving rollup data to users.
- Verifying rollup integrity and disputing invalid assertions.
Â
Â
Important components
- Rollup Node
- Execution Engine
- L2 Output Oracle
- L2 Output Submitter
Â
Withdrawals
Withdrawals are initiated by L2 transactions and then completed by L1 transaction after dispute period has elapsed.
Â