This repository hosts the specification of the constraint system underlying Linea's zk-EVM.
Constraints are mathematical equations and a constraint system is a collection of such equations. Linea’s constraint system aims to capture the logic of valid EVM executions.
The constraints specified here are implemented in the linea-constraints repo.
It serves developers by making the Linea tech stack open source under the Apache 2.0 license.
Linea is a developer-ready layer 2 network scaling Ethereum. It's secured with a zero-knowledge rollup, built on lattice-based cryptography, and powered by Consensys.
Linea's stack is made up of multiple repositories, these include:
- This repo, linea-specification: Specification of the constraint system defining Linea's zk-EVM
- linea-monorepo: The main repository for the Linea stack & network
- linea-besu: Fork of Besu to implement the Linea-Besu client
- linea-sequencer: A set of Linea-Besu plugins for the sequencer and RPC nodes
- linea-tracer: Linea-Besu plugin which produces the traces that the constraint system applies and that serve as inputs to the prover
- linea-constraints: Implementation of the constraint system from the specification
Linea abstracts away the complexity of this technical architecture to allow developers to:
... and more.
Contributions of any kind are welcome!
If the proposed update is non-trivial, also tag us for discussion.
- Submit the update as a pull request from your fork of this repo, and tag us for review.
Include the issue number in the pull request description and (optionally) in the branch name.
Consider starting with a "good first issue".
Before contributing, ensure you're familiar with:
- Our Linea contribution guide
- Our Linea code of conduct
- The Besu contribution guide, for Besu:Linea related contributions
- Our Security policy