2023-10-11 18:02:46 -07:00
# Gnark Plonky2 Verifier
2022-10-07 16:59:02 -07:00
2025-05-27 10:51:45 +02:00
This is a fork of [succinctlabs ](https://github.com/succinctlabs/gnark-plonky2-verifier ) implementation of [Plonky2 ](https://github.com/0xPolygonZero/plonky2/ ) verifier in Gnark (supports Groth16 and PLONK).
2023-03-28 11:12:07 -07:00
2025-05-27 10:51:45 +02:00
### Changes:
- Apply Goldilocks changes (update 2-adic generator) in version 1.0.2 of plonky2, see this [PR ](https://github.com/0xPolygonZero/plonky2/pull/1579 )
- Include the FRI config and params in the challenger, see this [PR ](https://github.com/0xPolygonZero/plonky2/pull/1678 )
- Replace the testdata with Plonky2 v1.0.2 output.
2023-03-28 11:12:07 -07:00
## Requirements
2023-12-19 12:22:19 -08:00
- [Go (1.19+) ](https://go.dev/doc/install )
2023-03-28 11:12:07 -07:00
## Benchmark
2023-03-28 10:59:36 -07:00
To run the benchmark,
2022-10-03 19:17:42 +00:00
```
2023-03-28 10:59:36 -07:00
go run benchmark.go
2023-03-28 11:12:07 -07:00
```
2023-10-13 14:00:54 -07:00
## Profiling
2023-03-28 11:12:07 -07:00
2023-10-13 14:00:54 -07:00
First run the benchmark with profiling turned on
2023-03-28 11:12:07 -07:00
```
2023-10-13 14:00:54 -07:00
go run benchmark.go -profile
2023-03-28 11:12:07 -07:00
```
2023-10-13 14:00:54 -07:00
Then use the following command to generate a visualization of the pprof
```
go tool pprof --png gnark.pprof > verifier.png
```