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 2021 edition and are tested on the following channels:
1.64.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.64.0.
To compile to Android:
- Download Android NDK r21 and unzip it
- Set the
NDK_HOME
env var to the extracted directory cd cross
./create-ndk-standalone
make 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-bls
for cross platform interoperability
This software has not been audited. Use at your own risk.