Crate quarks_zk

Crate quarks_zk 

Source
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 arithmetic
  • r1cs: R1CS (Rank-1 Constraint System) representations
  • polynomial: Multilinear polynomials and operations
  • sumcheck: Sum-check protocol implementation
  • commitments: Polynomial commitment schemes
  • kopis_pc: Kopis-PC (constant-size commitments, O(√n) verification)
  • dory_pc: Dory-PC (constant-size commitments, O(log n) verification)
  • grand_product: Grand product SNARK
  • sparkle: Sparkle compiler for sparse polynomials
  • zk: Zero-knowledge transformations
  • assistant: Untrusted assistant protocol
  • snark: 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)
KopisDory
Kopis SNARK with Dory-PC (O(log n) verification)
Lakonia
Lakonia SNARK with Kopis-PC (O(√n) verification)
LakoniaDory
Lakonia SNARK with Dory-PC (O(log n) verification)
Xiphos
Xiphos SNARK with Dory-PC (O(log n) verification) - The “Quark”
XiphosKopis
Xiphos SNARK with Kopis-PC (O(√n) verification)