├── .github └── workflows │ └── ci.yaml ├── .gitignore ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── README.md ├── rust-toolchain ├── snark-verifier-sdk ├── Cargo.toml ├── README.md ├── benches │ └── standard_plonk.rs ├── examples │ └── standard_plonk.rs └── src │ ├── evm.rs │ ├── halo2.rs │ ├── halo2 │ └── aggregation.rs │ └── lib.rs └── snark-verifier ├── Cargo.toml ├── examples ├── evm-verifier-with-accumulator.rs └── evm-verifier.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 │ └── test.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 │ ├── test.rs │ ├── test │ ├── circuit.rs │ ├── circuit │ │ ├── maingate.rs │ │ └── standard.rs │ ├── ipa.rs │ ├── ipa │ │ └── native.rs │ ├── kzg.rs │ └── kzg │ │ ├── evm.rs │ │ ├── halo2.rs │ │ └── native.rs │ ├── transcript.rs │ └── transcript │ ├── evm.rs │ └── halo2.rs ├── util.rs ├── util ├── arithmetic.rs ├── hash.rs ├── hash │ └── poseidon.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/privacy-ethereum/snark-verifier/HEAD/.github/workflows/ci.yaml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .vscode 2 | .DS_Store 3 | 4 | /target 5 | testdata 6 | 7 | Cargo.lock 8 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/Cargo.toml -------------------------------------------------------------------------------- /LICENSE-APACHE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/LICENSE-APACHE -------------------------------------------------------------------------------- /LICENSE-MIT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/LICENSE-MIT -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/README.md -------------------------------------------------------------------------------- /rust-toolchain: -------------------------------------------------------------------------------- 1 | 1.75.0 2 | -------------------------------------------------------------------------------- /snark-verifier-sdk/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier-sdk/Cargo.toml -------------------------------------------------------------------------------- /snark-verifier-sdk/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier-sdk/README.md -------------------------------------------------------------------------------- /snark-verifier-sdk/benches/standard_plonk.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier-sdk/benches/standard_plonk.rs -------------------------------------------------------------------------------- /snark-verifier-sdk/examples/standard_plonk.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier-sdk/examples/standard_plonk.rs -------------------------------------------------------------------------------- /snark-verifier-sdk/src/evm.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier-sdk/src/evm.rs -------------------------------------------------------------------------------- /snark-verifier-sdk/src/halo2.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier-sdk/src/halo2.rs -------------------------------------------------------------------------------- /snark-verifier-sdk/src/halo2/aggregation.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier-sdk/src/halo2/aggregation.rs -------------------------------------------------------------------------------- /snark-verifier-sdk/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier-sdk/src/lib.rs -------------------------------------------------------------------------------- /snark-verifier/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/Cargo.toml -------------------------------------------------------------------------------- /snark-verifier/examples/evm-verifier-with-accumulator.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/examples/evm-verifier-with-accumulator.rs -------------------------------------------------------------------------------- /snark-verifier/examples/evm-verifier.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/examples/evm-verifier.rs -------------------------------------------------------------------------------- /snark-verifier/src/cost.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/cost.rs -------------------------------------------------------------------------------- /snark-verifier/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/lib.rs -------------------------------------------------------------------------------- /snark-verifier/src/loader.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/loader.rs -------------------------------------------------------------------------------- /snark-verifier/src/loader/evm.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/loader/evm.rs -------------------------------------------------------------------------------- /snark-verifier/src/loader/evm/code.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/loader/evm/code.rs -------------------------------------------------------------------------------- /snark-verifier/src/loader/evm/loader.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/loader/evm/loader.rs -------------------------------------------------------------------------------- /snark-verifier/src/loader/evm/util.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/loader/evm/util.rs -------------------------------------------------------------------------------- /snark-verifier/src/loader/evm/util/executor.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/loader/evm/util/executor.rs -------------------------------------------------------------------------------- /snark-verifier/src/loader/halo2.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/loader/halo2.rs -------------------------------------------------------------------------------- /snark-verifier/src/loader/halo2/loader.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/loader/halo2/loader.rs -------------------------------------------------------------------------------- /snark-verifier/src/loader/halo2/shim.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/loader/halo2/shim.rs -------------------------------------------------------------------------------- /snark-verifier/src/loader/halo2/test.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/loader/halo2/test.rs -------------------------------------------------------------------------------- /snark-verifier/src/loader/native.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/loader/native.rs -------------------------------------------------------------------------------- /snark-verifier/src/pcs.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/pcs.rs -------------------------------------------------------------------------------- /snark-verifier/src/pcs/ipa.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/pcs/ipa.rs -------------------------------------------------------------------------------- /snark-verifier/src/pcs/ipa/accumulation.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/pcs/ipa/accumulation.rs -------------------------------------------------------------------------------- /snark-verifier/src/pcs/ipa/accumulator.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/pcs/ipa/accumulator.rs -------------------------------------------------------------------------------- /snark-verifier/src/pcs/ipa/decider.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/pcs/ipa/decider.rs -------------------------------------------------------------------------------- /snark-verifier/src/pcs/ipa/multiopen.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/pcs/ipa/multiopen.rs -------------------------------------------------------------------------------- /snark-verifier/src/pcs/ipa/multiopen/bgh19.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/pcs/ipa/multiopen/bgh19.rs -------------------------------------------------------------------------------- /snark-verifier/src/pcs/kzg.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/pcs/kzg.rs -------------------------------------------------------------------------------- /snark-verifier/src/pcs/kzg/accumulation.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/pcs/kzg/accumulation.rs -------------------------------------------------------------------------------- /snark-verifier/src/pcs/kzg/accumulator.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/pcs/kzg/accumulator.rs -------------------------------------------------------------------------------- /snark-verifier/src/pcs/kzg/decider.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/pcs/kzg/decider.rs -------------------------------------------------------------------------------- /snark-verifier/src/pcs/kzg/multiopen.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/pcs/kzg/multiopen.rs -------------------------------------------------------------------------------- /snark-verifier/src/pcs/kzg/multiopen/bdfg21.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/pcs/kzg/multiopen/bdfg21.rs -------------------------------------------------------------------------------- /snark-verifier/src/pcs/kzg/multiopen/gwc19.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/pcs/kzg/multiopen/gwc19.rs -------------------------------------------------------------------------------- /snark-verifier/src/system.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/system.rs -------------------------------------------------------------------------------- /snark-verifier/src/system/halo2.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/system/halo2.rs -------------------------------------------------------------------------------- /snark-verifier/src/system/halo2/strategy.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/system/halo2/strategy.rs -------------------------------------------------------------------------------- /snark-verifier/src/system/halo2/test.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/system/halo2/test.rs -------------------------------------------------------------------------------- /snark-verifier/src/system/halo2/test/circuit.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/system/halo2/test/circuit.rs -------------------------------------------------------------------------------- /snark-verifier/src/system/halo2/test/circuit/maingate.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/system/halo2/test/circuit/maingate.rs -------------------------------------------------------------------------------- /snark-verifier/src/system/halo2/test/circuit/standard.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/system/halo2/test/circuit/standard.rs -------------------------------------------------------------------------------- /snark-verifier/src/system/halo2/test/ipa.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/system/halo2/test/ipa.rs -------------------------------------------------------------------------------- /snark-verifier/src/system/halo2/test/ipa/native.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/system/halo2/test/ipa/native.rs -------------------------------------------------------------------------------- /snark-verifier/src/system/halo2/test/kzg.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/system/halo2/test/kzg.rs -------------------------------------------------------------------------------- /snark-verifier/src/system/halo2/test/kzg/evm.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/system/halo2/test/kzg/evm.rs -------------------------------------------------------------------------------- /snark-verifier/src/system/halo2/test/kzg/halo2.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/system/halo2/test/kzg/halo2.rs -------------------------------------------------------------------------------- /snark-verifier/src/system/halo2/test/kzg/native.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/system/halo2/test/kzg/native.rs -------------------------------------------------------------------------------- /snark-verifier/src/system/halo2/transcript.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/system/halo2/transcript.rs -------------------------------------------------------------------------------- /snark-verifier/src/system/halo2/transcript/evm.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/system/halo2/transcript/evm.rs -------------------------------------------------------------------------------- /snark-verifier/src/system/halo2/transcript/halo2.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/system/halo2/transcript/halo2.rs -------------------------------------------------------------------------------- /snark-verifier/src/util.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/util.rs -------------------------------------------------------------------------------- /snark-verifier/src/util/arithmetic.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/util/arithmetic.rs -------------------------------------------------------------------------------- /snark-verifier/src/util/hash.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/util/hash.rs -------------------------------------------------------------------------------- /snark-verifier/src/util/hash/poseidon.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/util/hash/poseidon.rs -------------------------------------------------------------------------------- /snark-verifier/src/util/msm.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/util/msm.rs -------------------------------------------------------------------------------- /snark-verifier/src/util/poly.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/util/poly.rs -------------------------------------------------------------------------------- /snark-verifier/src/util/transcript.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/util/transcript.rs -------------------------------------------------------------------------------- /snark-verifier/src/verifier.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/verifier.rs -------------------------------------------------------------------------------- /snark-verifier/src/verifier/plonk.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/verifier/plonk.rs -------------------------------------------------------------------------------- /snark-verifier/src/verifier/plonk/proof.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/verifier/plonk/proof.rs -------------------------------------------------------------------------------- /snark-verifier/src/verifier/plonk/protocol.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/privacy-ethereum/snark-verifier/HEAD/snark-verifier/src/verifier/plonk/protocol.rs --------------------------------------------------------------------------------