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/chainwayxyz/bitvm-zk-verifier
- https://github.com/FairgateLabs/rust-bitvmx-zk-proof
- https://github.com/Bitcoin-Wildlife-Sanctuary/bitcoin-circle-stark
- https://github.com/bitlayer-org/tap-stark
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/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
- https://github.com/MystenLabs/sui/blob/main/sui_programmability/examples/crypto/sources/groth16.move
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