1 unstable release
0.1.0 | Nov 10, 2020 |
---|
#24 in #shamir-secret-sharing
36KB
447 lines
NuBLS
The nubls
crate is a Rust implentation of BLS signatures on BLS12-381.
This implementation aims to follow the IETF Draft BLS Specification.
This library aims to be no_std
ready, but isn't quite there yet.
Documentation
See the documentation on crates.io!
Penumbral Proxy Re-Signature
Penumbral is NuCypher's Threshold Proxy Re-Signature (PRS) algorithm.
Proxy Re-Signature is a type of algorithm that allows signatures under one key to be transformed into signatures under another key by a third party who uses a "Re-Signing key". This ensures that the third party never has access to either private key.
The Penumbral paper is a work-in-progress, but will be published shortly.
For usage details, see the tests here -- https://github.com/nucypher/NuBLS/blob/master/rust-nubls/src/keys.rs#L484
Signing
For usage details, see the tests here -- https://github.com/nucypher/NuBLS/blob/master/rust-nubls/src/keys.rs#L399
Threshold Splitting/Recovery
For usage details, see the tests here -- https://github.com/nucypher/NuBLS/blob/master/rust-nubls/src/keys.rs#L321
Warning
As this library is a work-in-progress, there are some missing API details. One of these is a rust-native hash-to-curve implementation. As such, it's not presently possible to hash messages natively with this library, and another library must be used.
Dependencies
~2.5MB
~50K SLoC