zkevm-circuits icon indicating copy to clipboard operation
zkevm-circuits copied to clipboard

Explore fuzzying circuits: first steps

Open ed255 opened this issue 1 year ago • 0 comments

For some time we've had discussions about fuzzying the circuits with two possible aims:

  • Find correctness bugs (in witness generation code / circuit constraints)
  • Find soundness bugs (in circuit constraints)

To get results from fuzzying we need to be able to iterate the generation of inputs + running the thing many times per second, so a first step would be to evaluate some targets and get benchmarks (time and memory) to determine the resources that would be needed for an effective fuzzying infrastructure.

The targets to evaluate that we have thought of are:

  • Smallish circuits like bytecode, copy, exp, PublicInputs
  • Arithmetic gadgets
  • Maybe Circuits that contain a single ExecutionStep of the EVM Circuit?

For some of these targets we may need to write some code to create standalone circuits for evaluation.

ed255 avatar May 19 '23 12:05 ed255