Expand description
Implementation of Pedersen Commitments and Bulletproofs, which are short non-interactive zero-knowledge proofs that require no trusted setup.
§Example
use fastcrypto::pedersen::{Blinding, PedersenCommitment};
let value = 300;
let range = Bits16;
let mut rng = rand::thread_rng();
let blinding = Blinding::rand(&mut rng);
let proof =
RangeProof::prove(value, &blinding, &range, &mut rng).unwrap();
let commitment = PedersenCommitment::new(&RistrettoScalar::from(value), &blinding);
assert!(proof.verify(&commitment, &range, &mut rng).is_ok());Structs§
- Range
Proof - Bulletproof Range Proofs