SP1 Verifier
This crate contains primitives for verifying SP1 proofs generated using the SP1 SDK.
It is split into the following modules:
compressed: Verifiers for SP1 "compressed" proofs.groth16: Verifiers for Groth16 proofs.plonk: Verifiers for Plonk proofs.
Features
Groth16, Plonk and Compressed proof verification are supported in no-std environments. Verification in the
SP1 zkVM context is patched, in order to make use of the
bn254 precompiles.
Pre-generated verification keys
Verification keys for Groth16 and Plonk are stored in the vk-artifacts directory. These
vkeys are used to verify all SP1 proofs.
These vkeys are the same as those found locally in
~/.sp1/circuits/<circuit_name>/<version>/<circuit_name>_vk.bin, and should be automatically
updated after every release.
Tests
Run tests with the following command:
These tests generate a groth16/plonk proof and verify it.
Acknowledgements
Adapted from @Bisht13's gnark-bn254-verifier crate.