You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Apr 18, 2025. It is now read-only.
This is the zkEVM circuits used in Scroll Mainnet. It was forked from PSE zkevm-circuits and added a lot of new features later:
4
4
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
6
11
12
+
## Docs
7
13
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/>
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
26
18
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.
33
20
34
21
## Project Layout
35
22
36
23
This repository contains several Rust packages that implement the zkevm. The high-level structure of the repository is as follows:
- 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.
0 commit comments