├── .github └── workflows │ ├── ci.yaml │ └── release.yaml ├── .gitignore ├── Cargo.lock ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── README.md ├── SECURITY.md ├── rust-toolchain ├── rustfmt.toml ├── snark-verifier-sdk ├── Cargo.toml ├── benches │ ├── read_pk.rs │ ├── standard_plonk.rs │ ├── zkevm.rs │ └── zkevm_plus_state.rs ├── configs │ ├── bench_zkevm.json │ ├── bench_zkevm_plus_state.json │ └── example_evm_accumulator.json ├── examples │ ├── StandardPlonkVerifier.sol │ ├── k_as_witness.rs │ ├── range_check.rs │ ├── standard_plonk.rs │ └── vkey_as_witness.rs └── src │ ├── evm.rs │ ├── halo2.rs │ ├── halo2 │ ├── aggregation.rs │ └── utils.rs │ └── lib.rs └── snark-verifier ├── Cargo.toml ├── configs ├── example_evm_accumulator.json └── example_recursion.json ├── examples ├── README.md ├── evm-verifier-with-accumulator.rs ├── evm-verifier.rs └── recursion.rs └── src ├── cost.rs ├── lib.rs ├── loader.rs ├── loader ├── evm.rs ├── evm │ ├── code.rs │ ├── loader.rs │ ├── util.rs │ └── util │ │ └── executor.rs ├── halo2.rs ├── halo2 │ ├── loader.rs │ └── shim.rs └── native.rs ├── pcs.rs ├── pcs ├── ipa.rs ├── ipa │ ├── accumulation.rs │ ├── accumulator.rs │ ├── decider.rs │ ├── multiopen.rs │ └── multiopen │ │ └── bgh19.rs ├── kzg.rs └── kzg │ ├── accumulation.rs │ ├── accumulator.rs │ ├── decider.rs │ ├── multiopen.rs │ └── multiopen │ ├── bdfg21.rs │ └── gwc19.rs ├── system.rs ├── system ├── halo2.rs └── halo2 │ ├── strategy.rs │ ├── transcript.rs │ └── transcript │ ├── evm.rs │ └── halo2.rs ├── util.rs ├── util ├── arithmetic.rs ├── hash.rs ├── hash │ ├── poseidon.rs │ └── poseidon │ │ └── tests.rs ├── msm.rs ├── poly.rs └── transcript.rs ├── verifier.rs └── verifier ├── plonk.rs └── plonk ├── proof.rs └── protocol.rs /.github/workflows/ci.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/.github/workflows/ci.yaml -------------------------------------------------------------------------------- /.github/workflows/release.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/.github/workflows/release.yaml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/.gitignore -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/Cargo.lock -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/Cargo.toml -------------------------------------------------------------------------------- /LICENSE-APACHE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/LICENSE-APACHE -------------------------------------------------------------------------------- /LICENSE-MIT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/LICENSE-MIT -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/README.md -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/SECURITY.md -------------------------------------------------------------------------------- /rust-toolchain: -------------------------------------------------------------------------------- 1 | 1.85.1 2 | -------------------------------------------------------------------------------- /rustfmt.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/rustfmt.toml -------------------------------------------------------------------------------- /snark-verifier-sdk/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier-sdk/Cargo.toml -------------------------------------------------------------------------------- /snark-verifier-sdk/benches/read_pk.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier-sdk/benches/read_pk.rs -------------------------------------------------------------------------------- /snark-verifier-sdk/benches/standard_plonk.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier-sdk/benches/standard_plonk.rs -------------------------------------------------------------------------------- /snark-verifier-sdk/benches/zkevm.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier-sdk/benches/zkevm.rs -------------------------------------------------------------------------------- /snark-verifier-sdk/benches/zkevm_plus_state.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier-sdk/benches/zkevm_plus_state.rs -------------------------------------------------------------------------------- /snark-verifier-sdk/configs/bench_zkevm.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier-sdk/configs/bench_zkevm.json -------------------------------------------------------------------------------- /snark-verifier-sdk/configs/bench_zkevm_plus_state.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier-sdk/configs/bench_zkevm_plus_state.json -------------------------------------------------------------------------------- /snark-verifier-sdk/configs/example_evm_accumulator.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier-sdk/configs/example_evm_accumulator.json -------------------------------------------------------------------------------- /snark-verifier-sdk/examples/StandardPlonkVerifier.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier-sdk/examples/StandardPlonkVerifier.sol -------------------------------------------------------------------------------- /snark-verifier-sdk/examples/k_as_witness.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier-sdk/examples/k_as_witness.rs -------------------------------------------------------------------------------- /snark-verifier-sdk/examples/range_check.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier-sdk/examples/range_check.rs -------------------------------------------------------------------------------- /snark-verifier-sdk/examples/standard_plonk.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier-sdk/examples/standard_plonk.rs -------------------------------------------------------------------------------- /snark-verifier-sdk/examples/vkey_as_witness.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier-sdk/examples/vkey_as_witness.rs -------------------------------------------------------------------------------- /snark-verifier-sdk/src/evm.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier-sdk/src/evm.rs -------------------------------------------------------------------------------- /snark-verifier-sdk/src/halo2.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier-sdk/src/halo2.rs -------------------------------------------------------------------------------- /snark-verifier-sdk/src/halo2/aggregation.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier-sdk/src/halo2/aggregation.rs -------------------------------------------------------------------------------- /snark-verifier-sdk/src/halo2/utils.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier-sdk/src/halo2/utils.rs -------------------------------------------------------------------------------- /snark-verifier-sdk/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier-sdk/src/lib.rs -------------------------------------------------------------------------------- /snark-verifier/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier/Cargo.toml -------------------------------------------------------------------------------- /snark-verifier/configs/example_evm_accumulator.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier/configs/example_evm_accumulator.json -------------------------------------------------------------------------------- /snark-verifier/configs/example_recursion.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier/configs/example_recursion.json -------------------------------------------------------------------------------- /snark-verifier/examples/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier/examples/README.md -------------------------------------------------------------------------------- /snark-verifier/examples/evm-verifier-with-accumulator.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier/examples/evm-verifier-with-accumulator.rs -------------------------------------------------------------------------------- /snark-verifier/examples/evm-verifier.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier/examples/evm-verifier.rs -------------------------------------------------------------------------------- /snark-verifier/examples/recursion.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier/examples/recursion.rs -------------------------------------------------------------------------------- /snark-verifier/src/cost.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier/src/cost.rs -------------------------------------------------------------------------------- /snark-verifier/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier/src/lib.rs -------------------------------------------------------------------------------- /snark-verifier/src/loader.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier/src/loader.rs -------------------------------------------------------------------------------- /snark-verifier/src/loader/evm.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier/src/loader/evm.rs -------------------------------------------------------------------------------- /snark-verifier/src/loader/evm/code.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier/src/loader/evm/code.rs -------------------------------------------------------------------------------- /snark-verifier/src/loader/evm/loader.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier/src/loader/evm/loader.rs -------------------------------------------------------------------------------- /snark-verifier/src/loader/evm/util.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier/src/loader/evm/util.rs -------------------------------------------------------------------------------- /snark-verifier/src/loader/evm/util/executor.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier/src/loader/evm/util/executor.rs -------------------------------------------------------------------------------- /snark-verifier/src/loader/halo2.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier/src/loader/halo2.rs -------------------------------------------------------------------------------- /snark-verifier/src/loader/halo2/loader.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier/src/loader/halo2/loader.rs -------------------------------------------------------------------------------- /snark-verifier/src/loader/halo2/shim.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier/src/loader/halo2/shim.rs -------------------------------------------------------------------------------- /snark-verifier/src/loader/native.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier/src/loader/native.rs -------------------------------------------------------------------------------- /snark-verifier/src/pcs.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier/src/pcs.rs -------------------------------------------------------------------------------- /snark-verifier/src/pcs/ipa.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier/src/pcs/ipa.rs -------------------------------------------------------------------------------- /snark-verifier/src/pcs/ipa/accumulation.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier/src/pcs/ipa/accumulation.rs -------------------------------------------------------------------------------- /snark-verifier/src/pcs/ipa/accumulator.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier/src/pcs/ipa/accumulator.rs -------------------------------------------------------------------------------- /snark-verifier/src/pcs/ipa/decider.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier/src/pcs/ipa/decider.rs -------------------------------------------------------------------------------- /snark-verifier/src/pcs/ipa/multiopen.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier/src/pcs/ipa/multiopen.rs -------------------------------------------------------------------------------- /snark-verifier/src/pcs/ipa/multiopen/bgh19.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier/src/pcs/ipa/multiopen/bgh19.rs -------------------------------------------------------------------------------- /snark-verifier/src/pcs/kzg.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier/src/pcs/kzg.rs -------------------------------------------------------------------------------- /snark-verifier/src/pcs/kzg/accumulation.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier/src/pcs/kzg/accumulation.rs -------------------------------------------------------------------------------- /snark-verifier/src/pcs/kzg/accumulator.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier/src/pcs/kzg/accumulator.rs -------------------------------------------------------------------------------- /snark-verifier/src/pcs/kzg/decider.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier/src/pcs/kzg/decider.rs -------------------------------------------------------------------------------- /snark-verifier/src/pcs/kzg/multiopen.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier/src/pcs/kzg/multiopen.rs -------------------------------------------------------------------------------- /snark-verifier/src/pcs/kzg/multiopen/bdfg21.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier/src/pcs/kzg/multiopen/bdfg21.rs -------------------------------------------------------------------------------- /snark-verifier/src/pcs/kzg/multiopen/gwc19.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier/src/pcs/kzg/multiopen/gwc19.rs -------------------------------------------------------------------------------- /snark-verifier/src/system.rs: -------------------------------------------------------------------------------- 1 | //! Proof systems `snark-verifier` supports 2 | 3 | pub mod halo2; 4 | -------------------------------------------------------------------------------- /snark-verifier/src/system/halo2.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier/src/system/halo2.rs -------------------------------------------------------------------------------- /snark-verifier/src/system/halo2/strategy.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier/src/system/halo2/strategy.rs -------------------------------------------------------------------------------- /snark-verifier/src/system/halo2/transcript.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier/src/system/halo2/transcript.rs -------------------------------------------------------------------------------- /snark-verifier/src/system/halo2/transcript/evm.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier/src/system/halo2/transcript/evm.rs -------------------------------------------------------------------------------- /snark-verifier/src/system/halo2/transcript/halo2.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier/src/system/halo2/transcript/halo2.rs -------------------------------------------------------------------------------- /snark-verifier/src/util.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier/src/util.rs -------------------------------------------------------------------------------- /snark-verifier/src/util/arithmetic.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier/src/util/arithmetic.rs -------------------------------------------------------------------------------- /snark-verifier/src/util/hash.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier/src/util/hash.rs -------------------------------------------------------------------------------- /snark-verifier/src/util/hash/poseidon.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier/src/util/hash/poseidon.rs -------------------------------------------------------------------------------- /snark-verifier/src/util/hash/poseidon/tests.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier/src/util/hash/poseidon/tests.rs -------------------------------------------------------------------------------- /snark-verifier/src/util/msm.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier/src/util/msm.rs -------------------------------------------------------------------------------- /snark-verifier/src/util/poly.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier/src/util/poly.rs -------------------------------------------------------------------------------- /snark-verifier/src/util/transcript.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier/src/util/transcript.rs -------------------------------------------------------------------------------- /snark-verifier/src/verifier.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier/src/verifier.rs -------------------------------------------------------------------------------- /snark-verifier/src/verifier/plonk.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier/src/verifier/plonk.rs -------------------------------------------------------------------------------- /snark-verifier/src/verifier/plonk/proof.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier/src/verifier/plonk/proof.rs -------------------------------------------------------------------------------- /snark-verifier/src/verifier/plonk/protocol.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/axiom-crypto/snark-verifier/HEAD/snark-verifier/src/verifier/plonk/protocol.rs --------------------------------------------------------------------------------