Search for projects by name
Scroll is ZK Rollup that extends Ethereum’s capabilities through ZK tech and EVM compatibility.
Scroll is ZK Rollup that extends Ethereum’s capabilities through ZK tech and EVM compatibility.
2024 Feb 22 — 2025 Feb 21
2024 Feb 22 — 2025 Feb 20
The section shows the operating costs that L2s pay to Ethereum.
2024 Feb 21 — 2025 Feb 20
Darwin upgrade
2024 Aug 21st
Introduces a reduction in gas fees through bundling multiple batches into a single validity proof.
Batches reverted
2024 Jul 5th
To fix a bug in the compression for batches 55 previously committed batches are reverted.
There is no mechanism to have transactions be included if the sequencer is down or censoring.
SNARKs are zero knowledge proofs that ensure state correctness, but require trusted setup.
There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable.
Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen.
Each update to the system state must be accompanied by a ZK proof that ensures that the new state was derived by correctly applying a series of valid user transactions to the previous state. These proofs are then verified on Ethereum by a smart contract.
Despite their production use zkSNARKs are still new and experimental cryptography. Cryptography has made a lot of advancements in the recent years but all cryptographic solutions rely on time to prove their security. In addition zkSNARKs require a trusted setup to operate.
Funds can be stolen if the cryptography is broken or implemented incorrectly.
All the data that is used to construct the system state is published on chain in the form of cheap blobs or calldata. This ensures that it will be available for enough time.
Each update to the system state must be accompanied by a ZK proof that ensures that the new state was derived by correctly applying a series of valid user transactions to the previous state. These proofs are then verified on Ethereum by a smart contract.
Scroll circuits are based on the Halo2 proof system and are designed to replicate the behavior of the EVM. The source code of the base circuits can be found here while the code for the aggregation circuits can be found here.
SNARK verification keys can be generated and checked against Ethereum verifier contract using this guide. The system requires a trusted setup.
The operator is the only entity that can propose blocks. A live and trustworthy operator is vital to the health of the system.
MEV can be extracted if the operator exploits their centralized position and frontruns user transactions.
There is no general mechanism to force the sequencer to include the transaction.
Users can be censored if the operator refuses to include their transactions.
The user initiates L2->L1 messages by submitting a regular transaction on this chain. When the block containing that transaction is settled, the message becomes available for processing on L1. ZK proofs are required to settle blocks.
Funds can be frozen if the operator censors withdrawal transaction.
A Multisig with 4 / 5 threshold. Can propose transactions via the TimelockFast, which currently can manage all roles in the ScrollOwner and thus get access to full upgrade and system functions. The ScrollExecutorMultisig needs to execute these proposals once ready.
A Multisig with 9 / 12 threshold. Can upgrade all system contracts via the TimelockSC and the ProxyAdmin and manage all critical roles in the ScrollOwner via the TimelockSlow. The ScrollExecutorMultisig can execute these proposals, but the SC is also permissioned to execute them.
A Multisig with 1 / 4 threshold. Can execute timelock transactions in all four timelocks.
A Multisig with 2 / 4 threshold. Can revert batches, remove sequencers and provers, and pause contracts via the TimelockEmergency. The ScrollExecutorMultisig needs to execute these proposals.
Actors allowed to commit transaction batches.
Actors allowed to prove transaction batches and publish state root updates.
The main contract of the Scroll chain. Allows to post transaction data and state roots, along with proofs. Sequencing and proposing are behind a whitelist. L1 -> L2 message processing on L2 is not enforced.
Contract used to send L1 -> L2 and relay messages from L2. It allows to replay failed messages and to drop skipped messages. L1 -> L2 messages sent using this contract pay for L2 gas on L1 and will have the aliased address of this contract as the sender. This contract stores the following tokens: ETH.
Owner of all contracts in the system. It implements an extension of AccessControl that manages roles and functions allowed to be called by each role.
3d timelock. Admin of the ScrollOwner contract, meaning it can assign and revoke roles. The SecurityCouncil can propose, cancel and execute transactions, and the ExecutorMultisig can execute them.
1d timelock. Can add new sequencers and provers, update the gas oracle and permissions to update its values, the max gas limit, and gateways token mappings. The ScrollOpsMultisig can propose and cancel transactions, and the ScrollExecutorMultisig can execute them. Currently also has the Admin role in the ScrollOwner contract and can thus manage all roles including the ones that can upgrade all system contracts.
0s timelock. Can upgrade all core system contracts via the ProxyAdmin. The SecurityCouncil can propose, cancel and execute transactions, and the ScrollExecutorMultisig can execute them.
0s timelock. Can pause system contracts, revert batches and remove sequencers. The ScrollEmergencyMultisig can propose and cancel transactions, and the ScrollExecutorMultisig can execute them.
Contract used to update the verifier and keep track of current and old versions.
Current verifier using calldata for DA, used to prepare data for the PlonkVerifierV0.
Plonk verifier used to verify ZK proofs using calldata for DA.
Verifier proving bundles (group of batches), used to prepare data for the PlonkVerifierV2. Added in the Darwin upgrade.
Verifier proving bundles (group of batches), used to prepare data for the PlonkVerifierV2-1. Added in the Darwin v2 upgrade.
Main entry point for depositing ETH and ERC20 tokens, which are then forwarded to the correct gateway.