zkSync Era logozkSync Era

zkSync Era is a general-purpose ZK Rollup by Matter Labs with full EVM compatibility.
Value Locked

$782 M

15.01%

Canonically Bridged
$782 M (100%)
Externally Bridged
$0.00 (0%)
Natively Minted
$0.00 (0%)
  • Tokens
  • Daily TPS
    12.5726.61%
  • 30D tx count
    40.47 M
  • Stage
    Stage 0
  • Type
    ZK Rollup
  • Purpose
    Universal
  • Chart

    ...

    Tokens

    Choose token

    Canonically Bridged Tokens (Top 15)

    Ether (ETH)
    USD Coin (USDC)
    Tether USD (USDT)
    Mute.io (MUTE)
    Wrapped BTC (WBTC)
    Rocket Pool ETH (rETH)
    Dai Stablecoin (DAI)
    LUSD Stablecoin (LUSD)
    DeversiFi Token (DVF)
    Symbiosis (SIS)
    SHIBA INU (SHIB)
    ChainLink Token (LINK)
    1INCH Token (1INCH)
    Wrapped Ether (WETH)
    Wrapped liquid staked Ether 2.0 (wstETH)
    Milestones

    Introduction of Boojum prover

    2023 Jul 17th

    Deployment of Boojum - new high-performance proof system.

    Learn more

    Full Launch Alpha

    2023 Mar 24th

    zkSync Era is now permissionless and open for everyone.

    Learn more

    Fair Onboarding Alpha and Rebranding

    2023 Feb 16th

    zkSync 2.0 rebrands to zkSync Era and lets registered projects and developers deploy on mainnet.

    Learn more

    zkSync 2.0 baby alpha launch

    2022 Oct 28th

    zkSync 2.0 baby alpha is launched on mainnet.

    Learn more
    Risk analysis
    Withdrawals are delayed by 21h. The length of the delay can be arbitrarily set by a MultiSig.
    Sequencer failureState validationData availabilityExit windowProposer failure

    State validation

    ZK proofs

    Uses PLONK zero-knowledge proof system with KZG commitments.

    Data availability

    On chain (SD)

    All of the data (SD = state diffs) needed for proof construction is published on chain.

    Exit window

    None

    There is no window for users to exit in case of an unwanted upgrade since contracts are instantly upgradable.

    Sequencer failure

    Enqueue via L1

    Users can submit transactions to an L1 queue, but can’t force them. The sequencer cannot selectively skip transactions but can stop processing the queue entirely. In other words, if the sequencer censors or is down, it is so for everyone.

    Proposer failure

    Cannot withdraw

    Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen.

    Rollup stage
    zkSync ErazkSync Era is a
    Stage 0
    ZK Rollup.
    Learn more about Rollup stages
    Please keep in mind that these stages do not reflect rollup security, this is an opinionated assessment of rollup maturity based on subjective criteria, created with a goal of incentivizing projects to push toward better decentralization. Each team may have taken different paths to achieve this goal.
    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. These proofs are then verified on Ethereum by a smart contract.

    1. Validity proofs - zkSync FAQ

    Zero knowledge SNARK cryptography is used

    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.

    1. What are rollups? - Developer's documentation

    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.

    State derivation
    Node software

    The node software is open-source, and its source code can be found here. The main node software does not rely on Layer 1 (L1) to reconstruct the state, but you can use this tool for that purpose. Currently, there is no straightforward method to inject the state into the main node, but zkSync is actively working on a solution for this.

    Compression scheme

    Bytecodes undergo compression before deployment on Layer 1 (L1). You can find additional information on this process here.

    Genesis state

    There have been neither genesis states nor regenesis.

    Data format

    Details on data format can be found here.

    State validation

    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.


    Prover Architecture

    zkSync Era proof system Boojum can be found here and contains essential tools like the Prover, the Verifier, and other backend components. The specs of the system can be found here.

    ZK Circuits

    zkSync Era circuits are built from Boojum and are designed to replicate the behavior of the EVM. The source code can be found here. The circuits are checked against tests that can be found here.

    Verification Keys Generation

    SNARK verification keys can be generated and checked against the Ethereum verifier contract using this tool. The system requires a trusted setup.

    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.

    • Users can be censored if the operator refuses to include their transactions.

    1. L1 - L2 interoperability - Developer's documentation
    Withdrawals

    Regular exit

    The user initiates the withdrawal by submitting a regular transaction on this chain. 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.

    1. Withdrawing funds - zkSync documentation

    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 or halt all messages from L1, including all forced withdrawals and deposits. Once the force operation is submitted and if the request is serviced, the operation follows the flow of a regular exit.

    Permissions

    The system uses the following set of permissioned addresses:

    zkSync Era Multisig 0x4e49…7828

    This MultiSig is the current Governor of zkSync Era main contract and owner of the L1EthBridge. It can upgrade zkSync Era, upgrade bridge, change rollup parameters with no delay. This is a Gnosis Safe with 4 / 8 threshold.

    Those are the participants of the zkSync Era Multisig.

    Active validator 0x3527…2092

    This actor is allowed to propose, revert and execute L2 blocks on L1.

    Smart contracts
    A diagram of the smart contract architecture
    A diagram of the smart contract architecture

    The system consists of the following smart contracts:

    The main Rollup contract. Operator commits blocks, provides ZK proof 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 ZK proofs. Governance manages list of Validators and can set basic rollup parameters. It is also serves the purpose of ETH bridge. This contract stores the following tokens: ETH.

    Can be upgraded by: zkSync Era Multisig

    Upgrade delay: No delay

    Verifier 0x3390…0560

    Implements ZK proof verification logic.

    Can be upgraded by: zkSync Era Multisig

    Upgrade delay: No delay

    ValidatorTimelock 0xa042…De03

    Contract delaying block execution (ie withdrawals and other L2 --> L1 messages).

    Governance 0x0b62…3F61

    Owner can schedule a transparent (you see the upgrade data on-chain) or a shadow (you don’t see the upgrade data on-chain) upgrade. While scheduling an upgrade the owner chooses a delay, that delay has to be bigger than 0 seconds. Canceling the upgrade can be done only by the owner. The owner or the security council can perform the upgrade if the chosen delay is up. Only the security council can force the upgrade to execute even if the delay is not up.

    Can be upgraded by: zkSync Era Multisig

    Upgrade delay: No delay

    Value Locked is calculated based on these smart contracts and tokens:

    Standard bridge for depositing ERC20 tokens to zkSync Era.

    Can be upgraded by: zkSync Era Multisig

    Upgrade delay: No delay

    Escrow for ETH 0x3240…0324

    Main rollup contract, additionally serving as an escrow.

    Can be upgraded by: zkSync Era Multisig

    Upgrade delay: No delay

    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).

    Knowledge nuggets
    If you find something wrong on this page you can submit an issue or edit the information