Skip to content

scroll-tech/zkevm-circuits

This branch is 815 commits ahead of, 174 commits behind privacy-scaling-explorations/zkevm-circuits:main.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

de04c66 · Nov 21, 2024
Jan 25, 2024
Oct 31, 2024
Nov 8, 2024
Oct 31, 2024
Oct 31, 2024
Oct 25, 2023
Jul 16, 2024
Oct 31, 2024
Oct 31, 2024
Oct 31, 2024
Oct 31, 2024
Oct 31, 2024
Oct 31, 2024
Nov 21, 2024
Nov 8, 2024
Oct 31, 2024
Oct 31, 2024
Oct 25, 2023
Aug 28, 2024
Sep 22, 2022
Jun 1, 2024
Sep 14, 2023
Mar 16, 2023
Nov 8, 2024
Nov 5, 2024
Mar 23, 2023
Nov 5, 2024
Jun 14, 2024
Oct 9, 2024
Oct 23, 2024
Oct 31, 2024
Apr 2, 2023
Jun 14, 2024

Repository files navigation

Circuits for zkEVM

This is the zkEVM circuits used in Scroll Mainnet. It was forked from PSE zkevm-circuits and added a lot of new features later:

  1. SHA256 / MODEXP / EC precompiles
  2. RLP circuit / MPT circuit / Poseidon circuit
  3. multi block chunking
  4. proof aggregation
  5. >99.5% compatibility with official EVM test vector
  6. Many optimizations like read/write memory in word instead of byte

Docs

High level design: https://docs.scroll.io/en/technology/zkevm/zkevm-overview/
Detailed circuit docs: https://github.com/scroll-tech/zkevm-circuits/tree/develop/docs

Getting started

We recommend developers to go to our circuit playground repo for a detailed step-by-step guide on how to run proving.

Project Layout

This repository contains several Rust packages that implement the zkevm. The high-level structure of the repository is as follows:

bus-mapping

  • a crate designed to parse EVM execution traces and manipulate all of the data they provide in order to obtain structured witness inputs for circuits.

circuit-benchmarks

  • (Deprecated) Measures performance of each circuit based on proving and verifying time and execution trace parsing and generation for each subcircuit

eth-types

  • Different types helpful for various components of the EVM

external-tracer

  • Generates traces by connecting to an locally linked Geth EVM tracer

gadgets

geth-utils

  • Provides output from geth tracing APIs as circuit inputs

integration-tests

  • Integration tests for all circuits

keccak256

  • (Deprecated) Modules for Keccak hash circuit

mock

  • Testing module. Mock definitions and methods that are used to test circuits or opcodes

testool

  • Parser and driver of official Ethereum Execution Tests

zkevm-circuits

  • Main package that contains all circuit logic

zktrie

  • Wrapper of scroll binary poseidon trie

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Rust 98.8%
  • Solidity 0.6%
  • Go 0.4%
  • Shell 0.1%
  • Makefile 0.1%
  • Dockerfile 0.0%