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§
- Computation
Type - Types of computations that can be proven
- Proof
Type - Types of zero-knowledge proofs supported by lib-Q