Expand description
§Chaum-Pedersen Zero-Knowledge Protocol
Prove knowledge of a discrete logarithm x with y1 = g^x and y2 = h^x without revealing
x, over Ristretto255. Supports interactive and non-interactive (Fiat-Shamir) variants, batch
verification, and an optional gRPC authentication service.
§Quick start
use chaum_pedersen::{
OsRng, Parameters, Prover, Scalar, Statement, Transcript, Verifier, Witness,
};
let params = Parameters::new();
let mut rng = OsRng;
let x = Scalar::random(&mut rng);
let witness = Witness::new(x).unwrap();
let statement = Statement::from_witness(¶ms, &witness);
let mut transcript = Transcript::new();
let proof = Prover::new(params.clone(), witness)
.prove_with_transcript(&mut rng, &mut transcript)
.unwrap();
let mut verify_transcript = Transcript::new();
let verifier = Verifier::new(params, statement);
assert!(verifier.verify_with_transcript(&proof, &mut verify_transcript).is_ok());Bind each proof to a unique transcript context to prevent replay; witnesses and nonces are zeroized on drop.
§Feature flags
server: server-side state management and the gRPC service.client: the gRPC client.grpc: gRPC definitions shared byserverandclient.
Re-exports§
pub use error::Error;pub use primitives::CIPHERSUITE;pub use primitives::Commitment;pub use primitives::Element;pub use primitives::Parameters;pub use primitives::Proof;pub use primitives::Response;pub use primitives::Scalar;pub use primitives::Statement;pub use primitives::Transcript;pub use primitives::Witness;pub use prover::Prover;pub use verifier::BatchVerifier;pub use verifier::Verifier;
Modules§
- error
- Error types for the Chaum-Pedersen protocol.
- primitives
- Core cryptographic primitives: Ristretto255 group operations, gadgets, and transcript.
- prover
- Prover (client) implementation for the Chaum-Pedersen protocol.
- verifier
- Verifier (server) implementation: proof validation plus server state, config, and gRPC.
Structs§
- OsRng
- A random number generator that retrieves randomness from the operating system.
Type Aliases§
- Result
- Result type for Chaum-Pedersen operations.