Expand description
§Quarks: Quadruple-efficient transparent zkSNARKs
Implementation of Xiphos and Kopis zkSNARKs from the paper: “Quarks: Quadruple-efficient transparent zkSNARKs” (Lee & Setty, 2020)
§Structure
field: Finite field arithmeticr1cs: R1CS (Rank-1 Constraint System) representationspolynomial: Multilinear polynomials and operationssumcheck: Sum-check protocol implementationcommitments: Polynomial commitment schemeskopis_pc: Kopis-PC (constant-size commitments, O(√n) verification)dory_pc: Dory-PC (constant-size commitments, O(log n) verification)grand_product: Grand product SNARKsparkle: Sparkle compiler for sparse polynomialszk: Zero-knowledge transformationsassistant: Untrusted assistant protocolsnark: Complete SNARK implementations (Lakonia, Kopis, Xiphos)traits: Generic trait abstractions (PCS, etc.)
§Architecture
SNARKs are generic over Polynomial Commitment Schemes (PCS):
ⓘ
let xiphos_dory = XiphosSnark::<DoryPCS>::setup(16);
let xiphos_kopis = XiphosSnark::<KopisPCS>::setup(16);Re-exports§
pub use errors::QuarksError;pub use errors::Result;pub use traits::PolynomialCommitmentScheme;pub use kopis_pc::KopisPCS;pub use dory_pc::DoryPCS;pub use snark::lakonia::GenericLakoniaSnark as LakoniaSnark;pub use snark::kopis::KopisSnark;pub use snark::xiphos::XiphosSnark;pub use snark::common::Witness;pub use snark::common::Proof;pub use snark::common::ComputationCommitment;
Modules§
- assistant
- Untrusted Assistant Protocol (§7 of Quarks paper)
- commitments
- Commitment schemes for Quarks
- dory_pc
- Dory Polynomial Commitment (Dory-PC) with BLS12-381 backend
- errors
- Error types for Quarks implementation
- field
- Finite field arithmetic module
- grand_
product - Grand Product SNARK (§5 of Quarks paper)
- kopis_
pc - Kopis-PC: Polynomial Commitment Scheme for Multilinear Polynomials
- polynomial
- Multilinear polynomial utilities and equality polynomials
- r1cs
- R1CS (Rank-1 Constraint System) representations and verification
- snark
- Complete zkSNARK protocols: Xiphos, Kopis, and Lakonia
- sparkle
- Sparkle Compiler (§6 of Quarks paper)
- sumcheck
- Sum-check protocol for multilinear polynomials
- traits
- Trait abstractions for Quarks zkSNARK components
- utils
- Utility functions
- zk
- Zero-Knowledge Transformation (§8 of Quarks paper)
Type Aliases§
- Kopis
- Kopis SNARK with Kopis-PC (O(√n) verification)
- Kopis
Dory - Kopis SNARK with Dory-PC (O(log n) verification)
- Lakonia
- Lakonia SNARK with Kopis-PC (O(√n) verification)
- Lakonia
Dory - Lakonia SNARK with Dory-PC (O(log n) verification)
- Xiphos
- Xiphos SNARK with Dory-PC (O(log n) verification) - The “Quark”
- Xiphos
Kopis - Xiphos SNARK with Kopis-PC (O(√n) verification)