#range-proof #zero-knowledge #curve25519 #nizk

yanked dalek-rangeproofs

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

Uses old Rust 2015

0.1.0 May 20, 2017

#7 in #range-proof


Used in dalek

CC0 license

32KB
381 lines

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

Dependencies

~2.3–3.5MB
~79K SLoC