Distributed Key Generation

Safestake implements the distributed key generation algorithm for BLS threshold signature introduced in this paper.

Algorithm features

The algorithm generates a BLS secret key that is secret-shared among $n$ parties, with a security threshold of $t$, supporting $(t, n)$- BLS threshold signature. More details:

  • The algorithm is completely distributed, hence no single party obtains the plain secret key.

  • Our implementation supports different security options, against either passive adversary or active adversary (Default: active security).

  • A $(3, 4)$-threshold instantiation means as long as there are 3 honest parties among 4 participants, then the security is guaranteed (i.e., tolerating at most $n-t$ malicious parties).


Usage examples can be found in the rich tests of the code repository. A standard use case is shown here.

Unit / integration tests

You can run the DKG test with (active security):

cargo test test_dkg_secure_net -- --show-output

Last updated