You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
John Guibas cf16f0f595 update readme and MIT 2 years ago
field calculated subgroupX 2 years ago
plonky2_verifier Cleanup repo for release 2 years ago
poseidon Cleanup repo for release 2 years ago
utils Cleanup repo for release 2 years ago
.gitignore basic edwards curve code 3 years ago
LICENSE update readme and MIT 2 years ago
README.md update readme and MIT 2 years ago
benchmark.go Add benchmark script 2 years ago
go.mod Cleanup repo for release 2 years ago
go.sum added verifier_test 2 years ago

README.md

gnark-plonky2-verifier

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:

Requirements

Benchmark

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.