This repository contains halo2 gadgets to verify plonky2/starky proofs. It uses Axiom's halo2-lib under the hood.
Currently, the code can verify FRI proofs from plonky2, and full proof verification is still WIP.
TODOs:
- FRI verification
- STARK vanishing polynomial evaluation
- PLONK verification
- Benchmarking
To run the mock prover for verification of a Fibonacci STARK:
cargo t -r -- --nocapture test_fibonacci_stark
This code is adapted from the original recursive verifier implementation in plonky2.
Succinct's gnark-plonky2-verifier was also used as a reference, and the PoseidonBN254 implementation is adapted from there.
Other references:
- halo2-fri-gadget: Contains gadgets for Winterfell FRI proof verification for proofs generated in a circuit's native field.
- plonky2-circom
These gadgets have NOT been formally audited. Therefore, they should not be deployed in production.