dalek-rangeproofs

A pure-Rust implementation of a non-interactive zero-knowledge rangeproof scheme.


Keywords
cryptography, curve25519, zero-knowledge, nizk, rangeproof, rangeproof-schemes
License
CC0-1.0

Documentation

dalek-rangeproofs

A pure-Rust implementation of the Back-Maxwell rangeproof scheme defined in "Confidential Assets" (2017) by Poelstra, Back, Friedenbach, Maxwell, Wuille.

Warning

This code has not yet received sufficient peer review by other qualified cryptographers to be considered in any way, shape, or form, safe.

USE AT YOUR OWN RISK

Documentation

Extensive documentation is available here.

Installation

To install, add the following to the dependencies section of your project's Cargo.toml:

dalek-rangeproofs = "^0.1"

Then, in your library or executable source, add:

extern crate dalek_rangeproofs

Tests and benchmarks

Tests may be run with:

cargo test

Benchmarks may be taken with:

cargo bench --features 'bench'

Pre-Release TODOs

  • move RangeProof code to back_maxwell.rs module
  • double check documentation
  • double check code
  • don't use any yolocrypto features (i.e. stabilise decaf in curve25519-dalek)
  • make a CONTRIBUTING.md

Future TODOs

  • support other rangeproof schemes?
  • make hash function choice configurable?
  • make the code generic w.r.t. to a future Group trait