Skip to main content

Traces generation

What is it?

The tracer run as a plugin to Linea BesuLinea Besu The execution layer client that Linea Mainnet and other Lineth deployments run to execute transactions and maintain EVM state. Linea Besu is a build of the Besu Ethereum client, extended with plugins such as the sequencer and tracer that add ZK-rollup functionality.. It's part of Linea's sequencer responsible for generating the data used by the prover to create ZK proofsZero-knowledge proof A cryptographic method that allows an individual to prove that a statement is true without conveying any additional information. This is useful for scaling blockchain networks through rollups, because it reduces the amount of information you have to provide to lower layers..

What does it do?

Tracer provides the Traces API that surfaces essential data that's required for proof generation, and for making proofs as compact as possible. The trace generator executes blocks that have been built by the sequencer, and preserves data relating to the traces of each transaction. The tracer ensures that this data is available for all blocks in a batch, it:

  • Generates execution traces during block processing
  • Provides trace counts for batch size calculations
  • Creates conflated trace files for prover input

This data—representing the operations undertaken in the EVMEthereum Virtual Machine (EVM) A stack-based virtual machine that executes bytecode. In Ethereum, the execution model specifies how the system state is altered given a series of bytecode instructions and a small tuple of environmental data. This is specified through a formal model of a virtual state machine. during the block execution—is then passed to the prover, allowing it to generate the execution proof.

How does it do it?

Once the sequencer has built its blocks, they are executed; and in the process, the EVM produces data known as traces. These traces specify the state of the network, and the state of the accounts involved in the transaction, at each granular step of each transaction's execution.

Linea's sequencer then puts these traces through trace conflation.

Was this page helpful?