Skip to content
This repository was archived by the owner on Apr 18, 2025. It is now read-only.

Commit d997c34

Browse files
authored
Update README.md
1 parent c0294ac commit d997c34

File tree

1 file changed

+21
-34
lines changed

1 file changed

+21
-34
lines changed

README.md

Lines changed: 21 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,55 +1,42 @@
11
# Circuits for zkEVM
22

3-
[![CI checks](https://github.com/privacy-scaling-explorations/zkevm-circuits/actions/workflows/ci.yml/badge.svg)](https://github.com/privacy-scaling-explorations/zkevm-circuits/actions/workflows/ci.yml)
3+
This is the zkEVM circuits used in Scroll Mainnet. It was forked from PSE zkevm-circuits and added a lot of new features later:
44

5-
Check out the work in progress [specification](https://github.com/privacy-scaling-explorations/zkevm-specs) to learn how it works.
5+
1. SHA256 / MODEXP / EC precompiles
6+
2. RLP circuit / MPT circuit / Poseidon circuit
7+
3. multi block chunking
8+
4. proof aggregation
9+
5. [>99.5% compatiblity](https://circuit-release.s3.us-west-2.amazonaws.com/testool/nightly.1695216104.47e2015.html) with [official EVM test vector](https://github.com/ethereum/tests)
10+
6. Many optimizations like read/write memory in word instead of byte
611

12+
## Docs
713

8-
## Getting started
9-
10-
To run the same tests as the CI, please use: `make test-all`.
11-
12-
## Running benchmarks
13-
14-
There are currently several benchmarks to run in the workspace in regards to the circuits.
15-
All use the `DEGREE` env var to specify the degree of the `K` parameter that you want
16-
to use for your circuit in the bench process.
17-
- Keccak Circuit prover benches. -> `DEGREE=16 make packed_multi_keccak_bench`
18-
- EVM Circuit prover benches. -> `DEGREE=18 make evm_bench`.
19-
- State Circuit prover benches. -> `DEGREE=18 make state_bench`
14+
High level design: <https://docs.scroll.io/en/technology/zkevm/zkevm-overview/>
15+
Detailed circuit docs: <https://github.com/scroll-tech/zkevm-circuits/tree/develop/docs>
2016

21-
You can also run all benchmarks by running: `make circuit_benches DEGREE=18`.
22-
23-
## GH Actions Benchmark Results
24-
25-
Circuit Benchmark Results are accessible here: https://grafana.zkevm-testnet.org/d/vofy8DAVz/circuit-benchmarks?orgId=1
17+
## Getting started
2618

27-
- circuit_benchmarks panel displays:
28-
- overall test result
29-
- timers and system statistics
30-
- url for downloading prover log and sys stat files
31-
- clickable sysstats_url element that loads the memory and cpu utilization profiles for the given test
32-
19+
We recommend developers to go to our [circuit playground repo](https://github.com/scroll-tech/scroll-prover) for a detailed step-by-step guide on how to run proving.
3320

3421
## Project Layout
3522

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

3825
[`bus-mapping`](https://github.com/scroll-tech/zkevm-circuits/tree/develop/bus-mapping)
3926

40-
- a crate designed to parse EVM execution traces and manipulate all of the data they provide in order to obtain structured witness inputs for the EVM Proof and the State Proof.
27+
- 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.
4128

4229
[`circuit-benchmarks`](https://github.com/scroll-tech/zkevm-circuits/tree/develop/circuit-benchmarks)
4330

44-
- Measures performance of each circuit based on proving and verifying time and execution trace parsing and generation for each subcircuit
31+
- (Deprecated) Measures performance of each circuit based on proving and verifying time and execution trace parsing and generation for each subcircuit
4532

4633
[`eth-types`](https://github.com/scroll-tech/zkevm-circuits/tree/develop/eth-types)
4734

48-
- Different types helpful for various components of the zkevm, such as execution trace parsing or circuits
35+
- Different types helpful for various components of the EVM
4936

5037
[`external-tracer`](https://github.com/scroll-tech/zkevm-circuits/tree/develop/external-tracer)
5138

52-
- Generates traces by connecting to an external tracer
39+
- Generates traces by connecting to an locally linked Geth EVM tracer
5340

5441
[`gadgets`](https://github.com/scroll-tech/zkevm-circuits/tree/develop/gadgets)
5542

@@ -58,28 +45,28 @@ This repository contains several Rust packages that implement the zkevm. The hig
5845

5946
[`geth-utils`](https://github.com/scroll-tech/zkevm-circuits/tree/develop/geth-utils)
6047

61-
- Provides output from latest geth APIs (debug_trace) as test vectors
48+
- Provides output from geth tracing APIs as circuit inputs
6249

6350
[`integration-tests`](https://github.com/scroll-tech/zkevm-circuits/tree/develop/integration-tests)
6451

6552
- Integration tests for all circuits
6653

6754
[`keccak256`](https://github.com/scroll-tech/zkevm-circuits/tree/develop/keccak256)
6855

69-
- Modules for Keccak hash circuit
56+
- (Deprecated) Modules for Keccak hash circuit
7057

7158
[`mock`](https://github.com/scroll-tech/zkevm-circuits/tree/develop/mock)
7259

73-
- Mock definitions and methods that are used to test circuits or opcodes
60+
- Testing module. Mock definitions and methods that are used to test circuits or opcodes
7461

7562
[`testool`](https://github.com/scroll-tech/zkevm-circuits/tree/develop/testool)
7663

77-
- CLI that provides tools for testing
64+
- Parser and driver of official Ethereum Execution Tests
7865

7966
[`zkevm-circuits`](https://github.com/scroll-tech/zkevm-circuits/tree/develop/zkevm-circuits/src)
8067

8168
- Main package that contains all circuit logic
8269

8370
[`zktrie`](https://github.com/scroll-tech/zkevm-circuits/tree/develop/zktrie)
8471

85-
- Modules for Merkle Patricia Trie circuit
72+
- Wrapper of scroll binary poseidon trie

0 commit comments

Comments
 (0)