Repository navigation
v0.3.0
Changes
- Support gnark Groth16 proofs with a single BSB22 Pedersen commitment, including lookup circuits, through the
bsb22feature. - Parse snarkjs and gnark verifying keys and generate Rust constants with the
circom-vkandgnark-vkfeatures. - Convert circom-prover proofs into the verifier's byte format with the optional
circomfeature. - Upgrade direct Arkworks dependencies to 0.6, preserving compatibility with circom-prover's proof coordinates.
- Use pinocchio syscalls on Solana and support
no_stdverification. Reduce hash-to-field costs for BSB22 verification.
Breaking changes
- Rename
Groth16Verifyingkey::vk_gamme_g2tovk_gamma_g2. - Add
Groth16Verifyingkey::vk_commitment. Set it toNonefor standard Groth16 proofs; useGroth16Verifier::new_with_commitmentfor BSB22 proofs. - Remove unused
Groth16Errorvariants and itsCloneandEqimplementations. - Upgrade direct Arkworks types from 0.5 to 0.6. Upstream circom-prover and the host Solana BN254 implementation still use Arkworks 0.5 transitively.
Validated with workspace and all-feature tests, two million gnark differential cases, Circom proof generation and verification, Solana SBF and no_std builds, and CU benchmarks.