Crates.io | bulletproofs-plus |
lib.rs | bulletproofs-plus |
version | 0.1.0 |
source | src |
created_at | 2023-06-27 11:38:34.26317 |
updated_at | 2023-06-27 11:38:34.26317 |
description | Bulletproofs+ implementation |
homepage | |
repository | https://github.com/kayabaNerve/serai/tree/snarks/crypto/bulletproofs-plus |
max_upload_size | |
id | 901244 |
size | 5,991 |
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
.
Optimizations are possible, such as:
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.
This is solely a reservation of the crate name for a publication soon in the future.