prover

module
v0.0.0-...-35a8ded Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 8, 2025 License: Apache-2.0

README

linea-monorepo/prover

This directory contains the implementation of the prover of Linea. As part of it, it contains an implementation of the Vortex polynomial commitment, of the Arcane compiler, the instantiation of the zkEVM using the arithmetization and the server implementation.

Building and running

The prover has the following build dependencies

  • rust@1.74.0 and cargo
  • go@1.21.5
  • make

The repository counts 2 main binaries:

  • bin/prover : bin/prover setup generate the assets (setup / preprocessing) bin/prover prove run process a request, create a proof and outputs a response.
  • bin/controller : a file-system based server to run Linea's prover
Building and running the setup generator

The setup-generation (make setup) is used to generate the setup for all the types of provers. Execution, Decompression and Aggregation. By default, if the --force flag is not provided, the tool will compile the circuit and check if the destination dir already contains a setup that matches, skipping the CPU intensive phase of the actual plonk Setup if needed.

Run

make setup

Integration tests

./integration/run.sh dev-mode
./integration/run.sh full-mode

Directories

Path Synopsis
backend
aggregation
The bw6circuit package provides an implementation of the BW6 proof aggregation circuit.
The bw6circuit package provides an implementation of the BW6 proof aggregation circuit.
emulation
The bn254 package provides an implementation of a gnark circuit that can recursively verify a PLONK proof on the BW6 field with an arithmetization over the BN254 curve.
The bn254 package provides an implementation of a gnark circuit that can recursively verify a PLONK proof on the BW6 field with an arithmetization over the BN254 curve.
cmd
controller/controller
Library containing utilities exclusively for the master process
Library containing utilities exclusively for the master process
keccak
keccak gives a toy implementation of the keccak hash function.
keccak gives a toy implementation of the keccak hash function.
mimc
mimc wraps the github.com/consensys/gnark-crypto/ecc/bls12-377/fr/mimc and provides low-level utility methods to use the block compression of MiMC directly.
mimc wraps the github.com/consensys/gnark-crypto/ecc/bls12-377/fr/mimc and provides low-level utility methods to use the block compression of MiMC directly.
integration
lib
compressor/blob/v0/compress/lzss/internal/suffixarray
Package suffixarray implements substring search in logarithmic time using an in-memory suffix array.
Package suffixarray implements substring search in logarithmic time using an in-memory suffix array.
maths
common/smartvectors/vectorext
vector offers a set of utility function relating to slices of field element and that are commonly used as part of the repo.
vector offers a set of utility function relating to slices of field element and that are commonly used as part of the repo.
common/vector
vector offers a set of utility function relating to slices of field element and that are commonly used as part of the repo.
vector offers a set of utility function relating to slices of field element and that are commonly used as part of the repo.
fft
field
field wraps the package github.com/consensys/gnark-crypto/ecc/bls12-377/fr and provides a few utility functions and constants.
field wraps the package github.com/consensys/gnark-crypto/ecc/bls12-377/fr and provides a few utility functions and constants.
dedicated/bigrange
Package `bigrange` provides a utility to enforce range-checks for large ranges.
Package `bigrange` provides a utility to enforce range-checks for large ranges.
dedicated/byte32cmp
Descriptions: context for Byte32cmp, checklimbs verifiercol for fieldModulus
Descriptions: context for Byte32cmp, checklimbs verifiercol for fieldModulus
dedicated/plonk
`plonk` provides a dedicated Wizard utility to embed a gnark Plonk circuit in a Wizard's compiled IOP.
`plonk` provides a dedicated Wizard utility to embed a gnark Plonk circuit in a Wizard's compiled IOP.
dedicated/projection
Package projection implements the utilities for the projection query.
Package projection implements the utilities for the projection query.
ifaces
The `ifaces` package provides the interface definition of the items constituting the Wizard.
The `ifaces` package provides the interface definition of the items constituting the Wizard.
wizard
Package wizard provides the main structure articulating the framework.
Package wizard provides the main structure articulating the framework.
The package symbolic provides a tool to generate and manipulate symbolic expressions.
The package symbolic provides a tool to generate and manipulate symbolic expressions.
simplify
The simplify package exposes a list of functions aiming at simplifying symbolic expressions.
The simplify package exposes a list of functions aiming at simplifying symbolic expressions.
csvtraces
Package csvtraces provides a way to read and write traces in CSV format.
Package csvtraces provides a way to read and write traces in CSV format.
prover/ecarith
Package ecarith provides the integrations of the EC_MUL and EC_ADD precompile calls.
Package ecarith provides the integrations of the EC_MUL and EC_ADD precompile calls.
prover/hash/keccak
The keccak package implements the utilities for proving the hash over a single provider.
The keccak package implements the utilities for proving the hash over a single provider.
prover/hash/keccak/acc_module
The accumulator package is responsible for accumulating the data from different arithmetization module.
The accumulator package is responsible for accumulating the data from different arithmetization module.
prover/hash/keccak/keccakf
The keccakf package implements to keccakf module.
The keccakf package implements to keccakf module.
prover/hash/packing
Packing package implements the utilities for Packing the limbs of variable length to the lanes of fixed length.
Packing package implements the utilities for Packing the limbs of variable length to the lanes of fixed length.
prover/hash/sha2
The sha2 package provides all the necessary tools to verify the calls to the sha2 precompiles in the Linea's zkevm.
The sha2 package provides all the necessary tools to verify the calls to the sha2 precompiles in the Linea's zkevm.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL