A curated list of awesome things related to zero knowledge proof verifiers.
- Awesome zk verifier
Verify zkp'sproof by (another) zk prover circuit. Aka. aggregation prove.
- https://github.com/filecoin-project/bellperson/tree/master/src/groth16/aggregate
- https://github.com/nikkolasg/snarkpack
- https://github.com/arnaucube/plonky2-recursion-experiment
- https://github.com/succinctlabs/gnark-plonky2-verifier
- https://github.com/Lagrange-Labs/mapreduce-plonky2/tree/main/gnark-utils
- https://github.com/zkMIPS/gnark-plonky2-verifier
- https://github.com/polymerdao/plonky2-circom
- https://github.com/maxgillett/halo2-fri-gadget
- https://github.com/shuklaayush/halo2-plonky2-verifier
- https://github.com/Omniverse-Web3-Labs/fri-kzg-verifier
- https://github.com/DoHoonKim8/stark-verifier
- https://github.com/cf/gnark-plonky2-verifier/blob/c59e33fd8f1b407b355d7b9a74e34792e7c78f37/prover/src/lib.rs#L24-L40
-
https://github.com/succinctlabs/sp1/tree/main/recursion/gnark-ffi/go/sp1
-
Verify zkvm by another one?
As the raw verifier of a prover is a program(most of them writen in Rust), which can be proven by a zkvm. So that we can generate aggregationg proof by zkvm instead of writing a aggregation circuit.
Verify proof by onchain contract.
Verify zkp proof in bitcoin Script
- https://github.com/zulu-network/bitvm-groth16-verifier
- https://github.com/chainwayxyz/bitvm-zk-verifier
Verify zkp proof in Solidity Contract
- https://github.com/recmo/evm-groth16
- https://github.com/succinctlabs/sp1-contracts/blob/main/contracts/src/v3.0.0-rc1/Groth16Verifier.sol
- https://github.com/circuitscan/snarkjs-groth16-multi-verifier/blob/main/test/contracts/semaphorev4-1.sol
- https://github.com/recmo/evm-groth16
- https://github.com/0xPolygonHermez/zkevm-contracts/tree/main/contracts/verifiers
- https://github.com/matter-labs/solidity_plonk_verifier
- https://github.com/DelphinusLab/delphinus-solidity
- https://github.com/fluidex/solidity_recursive_plonk_verifier
- https://github.com/matter-labs/era-contracts/blob/main/l1-contracts/contracts/state-transition/Verifier.sol Rust Version:
- https://github.com/succinctlabs/sp1-contracts/blob/main/contracts/src/v3.0.0-rc1/PlonkVerifier.sol
- https://github.com/privacy-scaling-explorations/halo2-solidity-verifier
- https://github.com/akinovak/instance-verifier
- https://github.com/Zokrates/ZoKrates/blob/develop/zokrates_proof_systems/src/scheme/marlin.rs
- https://github.com/argumentcomputer/solidity-verifier
- https://github.com/privacy-scaling-explorations/folding-schemes
Verify zkp proof in Cairo Contract
- https://github.com/HerodotusDev/cairo-verifier
- https://github.com/ZeroSync/ZeroSync/tree/main/src/stark_verifier
- https://github.com/keep-starknet-strange/garaga Including Groth16 and protostar's test demos.
Verify zkp proof in Solona Contract
- https://github.com/zkLinkProtocol/groth16-sol-verifier
- https://github.com/gnosed/solana_groth16_verifier
Verify zkp proof in Move Contract
Following contains verifier by other crypto implement.
- eg: CryptoA's verified by cryptoB, aka
CryptoA CryptoB Verifier
- https://github.com/succinctlabs/snark-bn254-verifier which not using ark-groth16.
- https://github.com/Bisht13/gnark-bn254-verifier
- https://github.com/geometers/gnark-arkworks-verifier