Module zkp

Source
Expand description

Zero-Knowledge Proofs (ZKPs) for lib-Q

This module provides post-quantum secure zero-knowledge proof systems, primarily focusing on zk-STARKs for their scalability and transparency.

§Features

  • zk-STARKs: Scalable, transparent arguments of knowledge
  • Post-quantum secure: Based on collision-resistant hash functions
  • WASM compatible: Full browser and Node.js support
  • Privacy-preserving: Hide sensitive data while proving statements

§Example

use libq::zkp::{ZkpProver, ZkpVerifier, ZkpProof};

fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Create a proof that you know a secret value without revealing it
    let mut prover = ZkpProver::new();
    let secret_value = b"secret_value";
    let public_statement = b"public_statement";
    let proof = prover.prove_secret_value(secret_value, public_statement)?;

    // Verify the proof without learning the secret
    let verifier = ZkpVerifier::new();
    let is_valid = verifier.verify(proof, public_statement)?;
    Ok(())
}

Structs§

Computation
Represents a computation that can be proven with ZKPs
ZkpProof
A zero-knowledge proof
ZkpProver
Prover for creating zero-knowledge proofs
ZkpVerifier
Verifier for verifying zero-knowledge proofs

Enums§

ComputationType
Types of computations that can be proven
ProofType
Types of zero-knowledge proofs supported by lib-Q