gnark-plonky2-verifier/README.md
README.mdRaw
1# Gnark Plonky2 Verifier
2
3This is an implementation of a [Plonky2](https://github.com/mir-protocol/plonky2) verifier in Gnark (supports Groth16 and PLONK).
4
5Besides the verifier, there are some Gnark implementation of circuits in this repo that may be useful for other projects:
6
7- [Goldilocks](https://github.com/succinctlabs/gnark-plonky2-verifier/blob/main/field/field.go)
8- [Poseidon](https://github.com/succinctlabs/gnark-plonky2-verifier/blob/main/poseidon/poseidon.go)
9- [FRI](https://github.com/succinctlabs/gnark-plonky2-verifier/blob/main/plonky2_verifier/fri.go)
10
11## Requirements
12
13- [Go (1.20.1+)](https://go.dev/doc/install)
14
15## Benchmark
16
17To run the benchmark,
18```
19go run benchmark.go
20```
21
22## Profiling
23
24First run the benchmark with profiling turned on
25```
26go run benchmark.go -profile
27```
28
29Then use the following command to generate a visualization of the pprof
30```
31go tool pprof --png gnark.pprof > verifier.png
32```