├── .cargo └── config.toml ├── .github ├── CODE_OF_CONDUCT.md ├── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── feature_request.md │ └── specs.md ├── actions-rs │ └── grcov.yml ├── codecov.yml └── workflows │ └── dusk_ci.yml ├── .gitignore ├── CHANGELOG.md ├── CONTRIBUTING.md ├── Cargo.toml ├── LICENSE ├── Makefile ├── README.md ├── benches └── plonk.rs ├── docs ├── katex-header.html ├── notes-KZG10.md ├── notes-commitments.md ├── notes-intro.md ├── notes-prove-verify.md └── notes-snark.md ├── rust-toolchain ├── rustfmt.toml ├── src ├── bit_iterator.rs ├── circuit.rs ├── commitment_scheme.rs ├── commitment_scheme │ ├── kzg10.rs │ └── kzg10 │ │ ├── commitment.rs │ │ ├── key.rs │ │ ├── proof.rs │ │ └── srs.rs ├── constraint_system.rs ├── constraint_system │ ├── arithmetic.rs │ ├── boolean.rs │ ├── composer.rs │ ├── constraint.rs │ ├── ecc.rs │ ├── ecc │ │ ├── curve_addition.rs │ │ ├── curve_addition │ │ │ ├── fixed_base_gate.rs │ │ │ └── variable_base_gate.rs │ │ ├── scalar_mul.rs │ │ └── scalar_mul │ │ │ ├── fixed_base.rs │ │ │ └── variable_base.rs │ ├── helper.rs │ ├── logic.rs │ ├── range.rs │ └── witness.rs ├── error.rs ├── fft.rs ├── fft │ ├── domain.rs │ ├── evaluations.rs │ └── polynomial.rs ├── lib.rs ├── permutation.rs ├── permutation │ └── constants.rs ├── prelude.rs ├── proof_system.rs ├── proof_system │ ├── linearization_poly.rs │ ├── preprocess.rs │ ├── proof.rs │ ├── prover.rs │ ├── quotient_poly.rs │ ├── verifier.rs │ ├── widget.rs │ └── widget │ │ ├── arithmetic.rs │ │ ├── arithmetic │ │ ├── proverkey.rs │ │ └── verifierkey.rs │ │ ├── ecc.rs │ │ ├── ecc │ │ ├── curve_addition.rs │ │ ├── curve_addition │ │ │ ├── proverkey.rs │ │ │ └── verifierkey.rs │ │ ├── scalar_mul.rs │ │ └── scalar_mul │ │ │ ├── fixed_base.rs │ │ │ └── fixed_base │ │ │ ├── proverkey.rs │ │ │ └── verifierkey.rs │ │ ├── logic.rs │ │ ├── logic │ │ ├── proverkey.rs │ │ └── verifierkey.rs │ │ ├── permutation.rs │ │ ├── permutation │ │ ├── proverkey.rs │ │ └── verifierkey.rs │ │ ├── range.rs │ │ └── range │ │ ├── proverkey.rs │ │ └── verifierkey.rs ├── transcript.rs └── util.rs └── tests └── circuit.rs /.cargo/config.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/.cargo/config.toml -------------------------------------------------------------------------------- /.github/CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/.github/CODE_OF_CONDUCT.md -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/.github/ISSUE_TEMPLATE/bug_report.md -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/.github/ISSUE_TEMPLATE/feature_request.md -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/specs.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/.github/ISSUE_TEMPLATE/specs.md -------------------------------------------------------------------------------- /.github/actions-rs/grcov.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/.github/actions-rs/grcov.yml -------------------------------------------------------------------------------- /.github/codecov.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/.github/codecov.yml -------------------------------------------------------------------------------- /.github/workflows/dusk_ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/.github/workflows/dusk_ci.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/.gitignore -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/CONTRIBUTING.md -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/Cargo.toml -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/LICENSE -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/Makefile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/README.md -------------------------------------------------------------------------------- /benches/plonk.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/benches/plonk.rs -------------------------------------------------------------------------------- /docs/katex-header.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/docs/katex-header.html -------------------------------------------------------------------------------- /docs/notes-KZG10.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/docs/notes-KZG10.md -------------------------------------------------------------------------------- /docs/notes-commitments.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/docs/notes-commitments.md -------------------------------------------------------------------------------- /docs/notes-intro.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/docs/notes-intro.md -------------------------------------------------------------------------------- /docs/notes-prove-verify.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/docs/notes-prove-verify.md -------------------------------------------------------------------------------- /docs/notes-snark.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/docs/notes-snark.md -------------------------------------------------------------------------------- /rust-toolchain: -------------------------------------------------------------------------------- 1 | nightly-2021-10-28 -------------------------------------------------------------------------------- /rustfmt.toml: -------------------------------------------------------------------------------- 1 | max_width = 80 2 | wrap_comments = true 3 | -------------------------------------------------------------------------------- /src/bit_iterator.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/bit_iterator.rs -------------------------------------------------------------------------------- /src/circuit.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/circuit.rs -------------------------------------------------------------------------------- /src/commitment_scheme.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/commitment_scheme.rs -------------------------------------------------------------------------------- /src/commitment_scheme/kzg10.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/commitment_scheme/kzg10.rs -------------------------------------------------------------------------------- /src/commitment_scheme/kzg10/commitment.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/commitment_scheme/kzg10/commitment.rs -------------------------------------------------------------------------------- /src/commitment_scheme/kzg10/key.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/commitment_scheme/kzg10/key.rs -------------------------------------------------------------------------------- /src/commitment_scheme/kzg10/proof.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/commitment_scheme/kzg10/proof.rs -------------------------------------------------------------------------------- /src/commitment_scheme/kzg10/srs.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/commitment_scheme/kzg10/srs.rs -------------------------------------------------------------------------------- /src/constraint_system.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/constraint_system.rs -------------------------------------------------------------------------------- /src/constraint_system/arithmetic.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/constraint_system/arithmetic.rs -------------------------------------------------------------------------------- /src/constraint_system/boolean.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/constraint_system/boolean.rs -------------------------------------------------------------------------------- /src/constraint_system/composer.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/constraint_system/composer.rs -------------------------------------------------------------------------------- /src/constraint_system/constraint.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/constraint_system/constraint.rs -------------------------------------------------------------------------------- /src/constraint_system/ecc.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/constraint_system/ecc.rs -------------------------------------------------------------------------------- /src/constraint_system/ecc/curve_addition.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/constraint_system/ecc/curve_addition.rs -------------------------------------------------------------------------------- /src/constraint_system/ecc/curve_addition/fixed_base_gate.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/constraint_system/ecc/curve_addition/fixed_base_gate.rs -------------------------------------------------------------------------------- /src/constraint_system/ecc/curve_addition/variable_base_gate.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/constraint_system/ecc/curve_addition/variable_base_gate.rs -------------------------------------------------------------------------------- /src/constraint_system/ecc/scalar_mul.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/constraint_system/ecc/scalar_mul.rs -------------------------------------------------------------------------------- /src/constraint_system/ecc/scalar_mul/fixed_base.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/constraint_system/ecc/scalar_mul/fixed_base.rs -------------------------------------------------------------------------------- /src/constraint_system/ecc/scalar_mul/variable_base.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/constraint_system/ecc/scalar_mul/variable_base.rs -------------------------------------------------------------------------------- /src/constraint_system/helper.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/constraint_system/helper.rs -------------------------------------------------------------------------------- /src/constraint_system/logic.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/constraint_system/logic.rs -------------------------------------------------------------------------------- /src/constraint_system/range.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/constraint_system/range.rs -------------------------------------------------------------------------------- /src/constraint_system/witness.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/constraint_system/witness.rs -------------------------------------------------------------------------------- /src/error.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/error.rs -------------------------------------------------------------------------------- /src/fft.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/fft.rs -------------------------------------------------------------------------------- /src/fft/domain.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/fft/domain.rs -------------------------------------------------------------------------------- /src/fft/evaluations.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/fft/evaluations.rs -------------------------------------------------------------------------------- /src/fft/polynomial.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/fft/polynomial.rs -------------------------------------------------------------------------------- /src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/lib.rs -------------------------------------------------------------------------------- /src/permutation.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/permutation.rs -------------------------------------------------------------------------------- /src/permutation/constants.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/permutation/constants.rs -------------------------------------------------------------------------------- /src/prelude.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/prelude.rs -------------------------------------------------------------------------------- /src/proof_system.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/proof_system.rs -------------------------------------------------------------------------------- /src/proof_system/linearization_poly.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/proof_system/linearization_poly.rs -------------------------------------------------------------------------------- /src/proof_system/preprocess.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/proof_system/preprocess.rs -------------------------------------------------------------------------------- /src/proof_system/proof.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/proof_system/proof.rs -------------------------------------------------------------------------------- /src/proof_system/prover.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/proof_system/prover.rs -------------------------------------------------------------------------------- /src/proof_system/quotient_poly.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/proof_system/quotient_poly.rs -------------------------------------------------------------------------------- /src/proof_system/verifier.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/proof_system/verifier.rs -------------------------------------------------------------------------------- /src/proof_system/widget.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/proof_system/widget.rs -------------------------------------------------------------------------------- /src/proof_system/widget/arithmetic.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/proof_system/widget/arithmetic.rs -------------------------------------------------------------------------------- /src/proof_system/widget/arithmetic/proverkey.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/proof_system/widget/arithmetic/proverkey.rs -------------------------------------------------------------------------------- /src/proof_system/widget/arithmetic/verifierkey.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/proof_system/widget/arithmetic/verifierkey.rs -------------------------------------------------------------------------------- /src/proof_system/widget/ecc.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/proof_system/widget/ecc.rs -------------------------------------------------------------------------------- /src/proof_system/widget/ecc/curve_addition.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/proof_system/widget/ecc/curve_addition.rs -------------------------------------------------------------------------------- /src/proof_system/widget/ecc/curve_addition/proverkey.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/proof_system/widget/ecc/curve_addition/proverkey.rs -------------------------------------------------------------------------------- /src/proof_system/widget/ecc/curve_addition/verifierkey.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/proof_system/widget/ecc/curve_addition/verifierkey.rs -------------------------------------------------------------------------------- /src/proof_system/widget/ecc/scalar_mul.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/proof_system/widget/ecc/scalar_mul.rs -------------------------------------------------------------------------------- /src/proof_system/widget/ecc/scalar_mul/fixed_base.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/proof_system/widget/ecc/scalar_mul/fixed_base.rs -------------------------------------------------------------------------------- /src/proof_system/widget/ecc/scalar_mul/fixed_base/proverkey.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/proof_system/widget/ecc/scalar_mul/fixed_base/proverkey.rs -------------------------------------------------------------------------------- /src/proof_system/widget/ecc/scalar_mul/fixed_base/verifierkey.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/proof_system/widget/ecc/scalar_mul/fixed_base/verifierkey.rs -------------------------------------------------------------------------------- /src/proof_system/widget/logic.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/proof_system/widget/logic.rs -------------------------------------------------------------------------------- /src/proof_system/widget/logic/proverkey.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/proof_system/widget/logic/proverkey.rs -------------------------------------------------------------------------------- /src/proof_system/widget/logic/verifierkey.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/proof_system/widget/logic/verifierkey.rs -------------------------------------------------------------------------------- /src/proof_system/widget/permutation.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/proof_system/widget/permutation.rs -------------------------------------------------------------------------------- /src/proof_system/widget/permutation/proverkey.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/proof_system/widget/permutation/proverkey.rs -------------------------------------------------------------------------------- /src/proof_system/widget/permutation/verifierkey.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/proof_system/widget/permutation/verifierkey.rs -------------------------------------------------------------------------------- /src/proof_system/widget/range.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/proof_system/widget/range.rs -------------------------------------------------------------------------------- /src/proof_system/widget/range/proverkey.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/proof_system/widget/range/proverkey.rs -------------------------------------------------------------------------------- /src/proof_system/widget/range/verifierkey.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/proof_system/widget/range/verifierkey.rs -------------------------------------------------------------------------------- /src/transcript.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/transcript.rs -------------------------------------------------------------------------------- /src/util.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/src/util.rs -------------------------------------------------------------------------------- /tests/circuit.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliaxdev/plonk/HEAD/tests/circuit.rs --------------------------------------------------------------------------------