This crate provides libraries and command line interfaces for producing threshold BLS signatures. The signatures can also be blind in order to preserve the privacy of the user asking for a signature from another set of parties.
Distributed Key Generation for generating the threshold public key is based on Secure Distributed Key Generation for Discrete-Log Based Cryptosystems
Build with cargo build (--release).
Test with cargo test.
All crates require Rust 2018 edition and are tested on the following channels:
1.41.0
If you do not have Rust installed, run: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
The library compiles to Android and iOS. This has been tested with Rust v1.41.0.
To compile to Android:
- Download Android NDK r21 and unzip it
- Set the
NDK_HOMEenv var to the extracted directory cd cross./create-ndk-standalonemake android
To compile to ios:
3. cd cross
4. make ios
This repository contains several Rust crates that implement the different building blocks of the MPC. The high-level structure of the repository is as follows:
dkg-cli: Rust crate that provides a CLI for the distributed key generationdkg-core: Rust crate that provides the implementation utilities for the DKGthreshold-bls: (blind) threshold BLS signatures for BLS12-381 and BLS12-377threshold-bls-ffi: FFI and WASM bindings tothreshold-blsfor cross platform interoperability
This software has not been audited. Use at your own risk.