Skip to content

Commit

Permalink
Initial draft
Browse files Browse the repository at this point in the history
  • Loading branch information
jlwllmr committed Sep 18, 2024
1 parent 154ad72 commit 27f9825
Showing 1 changed file with 23 additions and 0 deletions.
23 changes: 23 additions & 0 deletions docs/architecture/stack/trace-expansion-proving/prover-limits.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
title: Module limits
description: How module limits ensure the prover can generate proofs.
sidebar_position: 3
---

Linea has a built-in mechanism for ensuring that the prover can continue to generate proofs
without increasing proof complexity to such a level that current infrastructure cannot process them.
This buffer is represented by module limits.

Modules are the sections into which Linea's arithmetization specification is divided. Each module
represents a collection of operations (opcodes) at the EVM level, and corresponds to a specific
function of Linea's zkEVM. Some of the modules process transaction data; some manage zkEVM memory;
others coordinate interactions between modules.

Regardless of its purpose, each module has a specific limit to the amount of lines of data that
its operations can generate. You can view each module's limits in the [Linea source code](https://github.com/Consensys/linea-monorepo/blob/main/config/common/traces-limits-besu-v2.toml).
Every time one of the operations in a module is

Transactions with a high complexity—using a large volume of operations repeatedly—may generate too
many lines of data, and exceed that module's limit. Transactions that reach this point are
rejected by the [sequencer](../sequencer/index.mdx) to ensure that the trace data passed to the
prover is of a manageable scope, and that a proof can be generated.

0 comments on commit 27f9825

Please sign in to comment.