BLS

BLS Keys and Schemes

BLS keys are based on two elliptic curves and a pairing between these. This provides a cryptosystem that has some unique properties when combined with MPC:

BLS has three different schemes that are used to provide various security guarantees:

Since BLS is defined over two different curves and these curves have different sizes, each of the above schemes can be instantiated in two different variants depending on what curve is used for public keys and which is used for signatures:

Besides the above-mentioned main considerations, there may be other use cases that can benefit from using one over the other.

📘
NOTE: Non-hardened derivation in BLS is by default insecure. The problem is that derivation adds an offset to public keys, which an attacker can add to potential signatures to move them around the derivation tree. This affects the different schemes to various degrees:

Using BLS

The interface for BLS is very similar to normal Schnorr/ECDSA in the functionality it provides, so the above sections for different operations can be used to see how to interact with BLS.

There are a few notable differences though:

Example

There are a couple of examples for BLS in the TSM demo repository:

Updated 3 months ago