|
2 years ago | |
---|---|---|
field | 2 years ago | |
plonky2_verifier | 2 years ago | |
poseidon | 2 years ago | |
utils | 2 years ago | |
.gitignore | 3 years ago | |
LICENSE | 2 years ago | |
README.md | 2 years ago | |
benchmark.go | 2 years ago | |
go.mod | 2 years ago | |
go.sum | 2 years ago |
This is an in-progress implementation of a Plonky2 verifier in Gnark. It currently is able to verify some dummy circuits, but not much more as many of the custom gates used in Plonky2 are currently not implemented.
Besides the verifier, there are some Gnark implementation of circuits in this repo that may be useful for other projects:
To run the benchmark,
go run benchmark.go
Here are relevant numbers from a benchmark ran on an M1 Max with 10 CPU cores.
# of constraints: 6740784
circuit compilation time: 19 minutes, 33 sec.
witness generation time: < 1 second
groth16 setup: 8 minutes 23 seconds
proof generation: 23 seconds
proof verification: < 1 second
The circuit can be significantly optimized by using more efficient arithmetic for Goldilocks, among other things.