Crate sigma_protocols

Crate sigma_protocols 

Source
Expand description

§SIGMA Proofs

A Rust implementation of SIGMA (Σ) zero-knowledge proof protocols and the Fiat-Shamir transform.

This library implements the specifications from:

§Features

  • Schnorr Proofs: Prove knowledge of discrete logarithms
  • DLEQ Proofs: Prove equality of discrete logarithms
  • Pedersen Commitment Proofs: Prove knowledge of commitment openings
  • Fiat-Shamir Transform: Convert interactive proofs to non-interactive

§Example

use sigma_protocols::protocols::schnorr::{SchnorrProof, SchnorrStatement, SchnorrWitness};
use sigma_protocols::sigma::SigmaProtocol;

// Create a proof of knowledge of discrete logarithm
let statement = SchnorrStatement { public_key };
let witness = SchnorrWitness { secret_key };
let (commitment, state) = SchnorrProof::prover_commit(&statement, &witness);

Re-exports§

pub use error::Error;
pub use error::Result;
pub use fiat_shamir::FiatShamirTransform;
pub use sigma::Challenge;
pub use sigma::Commitment;
pub use sigma::Response;
pub use sigma::SigmaProtocol;
pub use transcript::Transcript;

Modules§

error
fiat_shamir
Fiat-Shamir transform for non-interactive proofs.
protocols
Protocol implementations for specific zero-knowledge proofs.
sigma
Core traits and types for SIGMA protocols.
transcript