Linea
Linea (opens in a new tab) is an EVM compatible Zero Knowledge (ZK) rollup chain built by Consensys (opens in a new tab).
- LineaScan (opens in a new tab) is the chain explorer for the chain.
- Linea smart contract addresses can be found here (opens in a new tab).
High level overview
The LineaRollup rollup smart contract implementation is deployed behind a proxy on Layer 1.
Linea uses a Spare Merkle Trie (SPT) data structure.
The lifecycle of a Linea transaction is outlined in deptth here (opens in a new tab). Ultimately, a call is maded to finalizeBlocks on the Layer 1 L1MessageService contract containing an aggregated proof of data from multiple transactions across multiple blocks.
LineaScan offers an interface to track and display finalized batches (opens in a new tab).

Verification
The Unruggable gateway Typescript prover implementation used for Linea is LineaProver.ts.
Linea implements the linea_getProof RPC method for returning proof data, and these proofs are verified by the LineaVerifier.sol contract deployed on L1.
The verifiers interface with the SpareMerkleProof.sol library through our proving hooks in LineaTrieHooks.sol.
Notes
Compiler version
As outlined here (opens in a new tab):
"Solidity 8.23 and later compiles newer versions of the EVM by default. Use the solc --evm-version london command to ensure compatibility with Linea."
Linea.eth subnames
Linea released their own code (opens in a new tab) for resolving subnames of linea.eth from Linea using Proof of Humanity as a way of allocating names. This effort was auditted by Consensys (opens in a new tab) and makes for an interesting read.
Workshop with ENS and Unruggable
At Devcon 2024 in Bangkok, Thailand Linea gave a workshop alongside ENS and Unruggable.
The recording of this workshop can be viewed here.