#group #ff #ciphersuite

bulletproofs-plus

Bulletproofs+ implementation

1 unstable release

0.1.0 Jun 27, 2023

#18 in #ff


Used in curve-trees

MIT license

9KB

Bulletproofs+

An implementation of Bulletproofs+. This library follows the paper's specifications and terminology, implementing the weighted inner product proof, the range proof, the aggregate range proof, before finally the arithmetic circuit proof.

Additionally, a system for writing arithmetic circuits has been added. This is completely custom. It ensures consistency between usage of variables, exposes multiplication and a generally inefficient addition, and a few helpful gadgets.

This library is written to be curve agnostic. It can be used with secp256k1, Ed25519, the pasta curves, or anything other satisfying Ciphersuite.

Status

Optimizations are possible, such as:

  • Implementation of a proper vector commitment scheme
  • Optimizing the neglected prover

This library uses asserts instead of Result. It also has extraneous asserts which should be moved to debug, and some debug asserts which may preferable as regular asserts.

The transcript policies of this library need to be reviewed.

Lack of comprehensive Zeroize usage needs to be reviewed as well.

Moving multiexp to IntoIter may save several notable allocations.

Crate status

This is solely a reservation of the crate name for a publication soon in the future.

Dependencies

~1.4–2.2MB
~51K SLoC