Search

Search for projects by name

Linea logoLinea

Badges

About

Linea is a ZK Rollup powered by a zkEVM developed at Consensys, designed to scale the Ethereum network.


Value Locked
$822.05 M17.1%
Canonically Bridged
$469.53 M
Externally Bridged
$286.72 M
Natively Minted
$65.79 M

  • Tokens
  • Daily UOPS
    2.2517.7%
  • 30D ops count
    5.93 M

  • Stage
    Stage 0
  • Type
    ZK Rollup
  • Purpose
    Universal
  • Sequencer failureState validationData availabilityExit windowProposer failure

    Badges

    About

    Linea is a ZK Rollup powered by a zkEVM developed at Consensys, designed to scale the Ethereum network.


    Recategorisation

    178d
    16h
    26m
    34s

    The project will be classified as "Other" due to its specific risks that set it apart from the standard classifications.

    The project will move to Others because:

    The proof system isn't fully functional

    Consequence: projects without a proper proof system fully rely on single entities to safely update the state. A malicious proposer can finalize an invalid state, which can cause loss of funds.

    Learn more about the recategorisation here.

    Value Locked
    Canonical
    External
    Native
    Activity
    Linea
    Ethereum
    Onchain costs
    Calldata
    Blobs
    Compute
    Overhead
    Milestones & Incidents

    Linea starts using blobs

    2024 Mar 26th

    Linea starts publishing data to blobs.

    Learn more

    Alpha v2 is released

    2024 Feb 13th

    This release reduces L1 costs and fees for users.

    Learn more
    Risk summary
    The circuit of the program being proven is not public.
    Risk analysis
    The circuit of the program being proven is not public.
    Sequencer failureState validationData availabilityExit windowProposer failure

    Sequencer failure

    No mechanism

    There is no mechanism to have transactions be included if the sequencer is down or censoring. Eventually (after 6 months of no finalized blocks) the Operator role becomes public, theoretically allowing anyone to post data.

    State validation

    ZK proofs (SN)

    SNARKs are zero knowledge proofs that ensure state correctness, but require trusted setup.

    Data availability

    Onchain

    All of the data needed for proof construction is published on Ethereum L1. Unlike most ZK rollups, transaction data is posted instead of state diffs.

    Exit window

    None

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

    Proposer failure

    Cannot withdraw

    Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen. Eventually (after 6 months of no finalized blocks) the Operator role becomes public, theoretically allowing anyone to propose state with valid proofs.

    Rollup stage
    LineaLinea is a
    Stage 0
    ZK Rollup.
    There is no available node software that can reconstruct the state from L1 data, hence there is no way to verify that this system is a 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.

    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.

    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 blobs or calldata. This ensures that it will be available for enough time.

    1. LineaRollup.sol - Etherscan source code, submitBlobs() function
    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

    The source code of the prover is currently not public.

    ZK Circuits

    The source code of the circuits is currently not public.

    • Funds can be lost if the proof system is implemented incorrectly.

    • Funds can be stolen if the prover is able to generate false proofs.

    Verification Keys Generation

    Given that the circuit is not public, the generation of the verification keys is not public either.

    Operator

    The system has a centralized sequencer

    Only a trusted sequencer is allowed to submit transaction batches. A mechanism for users to submit their own batches is currently disabled.

    • MEV can be extracted if the operator exploits their centralized position and frontruns user transactions.

    • Funds can be frozen if the sequencer refuses to include an exit transaction (CRITICAL).

    1. LineaRollup.sol - Etherscan source code, onlyRole(OPERATOR_ROLE) modifier

    Users can't force any transaction

    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.

    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. Note that withdrawal requests can be censored by the Sequencer. Currently, there is a general limit of 18750.0 ETH that can be withdrawn within each 1d time window. Users can (eventually, after 6 months of inactivity from the centralized Operator) exit by replacing the Operator. In such a case they need to self-propose and prove their new state on the base layer with the required software which is currently not made available.

    • Funds can be frozen if the operator censors withdrawal transaction.

    1. L1MessageService.sol - Etherscan source code, claimMessageWithProof() function
    2. LineaRollup.sol - Etherscan source code, setFallbackOperator() function
    Permissions

    The system uses the following set of permissioned addresses:

    LineaAdminMultisig 0x892b…1DD3

    A Gnosis Safe with 4 / 8 threshold. It uses the following modules: Roles (The Zodiac roles module for Safe multisigs allows defining roles that are allowed to call preconfigured targets on behalf of the Gnosis Safe). Admin of the Linea rollup. Can upgrade all core contracts, bridges and update permissioned actors.

    Those are the participants of the LineaAdminMultisig.

    Address allowed to pause the TokenBridge, the USDCBridge and the core functionalities of the project (via LineaRollup contract).

    The operators are allowed to prove blocks and post the corresponding transaction data.

    Address allowed to pause the ERC20Bridge, the USDCBridge and the core functionalities of the project in the LineaRollup contract (via the Roles module of the LineaAdminMultisig).

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

    The system consists of the following smart contracts on the host chain (Ethereum):

    The main contract of the Linea zkEVM rollup. Contains state roots, the verifier addresses and manages messages between L1 and the L2. The contract is pausable by LineaAdminMultisig. This contract stores the following tokens: ETH.

    Can be upgraded by:

    Upgrade delay: No delay

    1. LineaRollup.sol - Etherscan source code, state injections: stateRoot and l2MerkleRoot are part of the validity proof input.
    Timelock 0xd6B9…0574

    Owner of the ProxyAdmin and Verifier Setter. The current delay is 0s.

    VerifierProofType3 0xBfF4…fe6F

    Currently used smart contract verifying the proofs for the Linea zkEVM.

    Contract used to bridge ERC20 tokens. This contract can store any token.

    Can be upgraded by:

    Upgrade delay: No delay

    Contract used to bridge USDC tokens. This contract stores the following tokens: USDC.

    Can be upgraded by:

    Upgrade delay: No delay

    CallForwardingProxy 0x3697…367D

    A proxy contract forwarding calls to a predefined (immutable) target contract. In this case the it is targeting the LineaRollup where it is registered as a fallback operator, allowing anyone to access operator functions when 6 months have passed since the latest finalized block.

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

    The current deployment carries some associated risks:

    • Funds can be stolen if a contract receives a malicious code upgrade. There is a 0s delay on code upgrades.