Description
zkSync 2.0 is a general-purpose zk rollup platform from Matter Labs aiming at implementing nearly full EVM compatibility in its zk-friendly custom virtual machine. It implements standard Web3 API and it preserves key EMV features such as smart contract composability while introducing some new concept such as account abstraction. It is currently deployed on mainnet and available to a whitelisted set of users/developers.
If you find something wrong on this page you can submit an issue or edit the information.
Risk summary
Funds can be stolen if
Funds can be frozen if
MEV can be extracted if
Technology
Validity proofs ensure state correctness
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. Once the proof is processed on the Ethereum blockchain the L2 block is instantly finalized.
Zero knowledge SNARK cryptography is used
Despite their production use ZK-SNARKs 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 ZK-SNARKs require a trusted setup to operate.
Funds can be stolen if the cryptography is broken or implemented incorrectly.
All data required for proofs is published on chain
All the data that is used to construct the system state is published on chain in the form of cheap calldata. This ensures that it will always be available when needed.
Operator
The system has a centralized operator
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.
Users can force any transaction via L1
If a user is censored by L2 Sequencer, they can try to force transaction via L1 queue. Right now there is no mechanism that forces L2 Sequencer to include transactions from L1 queue in an L1 block.
Withdrawals
Regular exit
The user initiates the withdrawal by submitting a transaction on L2. When the block containing that transaction is proven the funds become available for withdrawal on L1. Finally the user submits an L1 transaction to claim the funds. This transaction requires a merkle proof.
Forced exit
If the user experiences censorship from the operator with regular exit they can submit their withdrawal requests directly on L1. The system is then obliged to service this request. Once the force operation is submitted if the request is serviced the operation follows the flow of a regular exit. Note that this mechanism is not implemented yet.
Funds can be frozen if a user withdrawal request is censored (CRITICAL).
Permissioned Addresses
The system uses the following set of permissioned addresses:
This MultiSig is the current Governor of zkSync 2.0 main contract and owner of the L1EthBridge. It can upgrade zkSync2.0, upgrade bridge, change rollup parameters with no delay.
These addresses are the participants of the 3/6 zkSync 2.0 MultiSig.
This actor is allowed to propose, revert and execute L2 blocks on L1.
Smart Contracts

The system consists of the following smart contracts:
The main Rollup contract. Operator commits blocks, provides zkProof which is validated by the Verifier contract and process transactions (executes blocks). During block execution it processes L1 --> L2 and L2 --> L1 transactions. It uses separate Verifier to validate zkProofs. Governance manages list of Validators and can set basic rollup parameters.
Implements zkProof verification logic.
Standard bridge for depositing ETH to zkSync 2.0. This contract stores the following tokens: ETH.
The current deployment carries some associated risks:
Funds can be stolen if a contract receives a malicious code upgrade. There is no delay on code upgrades (CRITICAL).
Website | zksync.io |
---|---|
Social media | blog.matter-labs.iodiscord.ggzksync@zksync |
App | portal.zksync.io |
Documentation | v2-docs.zksync.io/dev |
Explorer | explorer.zksync.io |
Source code | github.com/matter-labs/zksync |
Milestones