Table of contents
Open Table of contents
What it is
The BLS Signature scheme is a digital signature algorithm that uses Elliptic Curve Pairings as a building block to generate very small signatures for arbitrary messages.
BLS Signatures furthermore exhibit desirable properties such as the ability to aggregate signatures to implement collaborative signing, no dependency on randomness during signing and its potential to be used in Zero-Knowledge Proof constructions.
How it works
As a prerequisite, it’s very useful to have some familiarity with Elliptic Curve Pairings before moving on to study BLS Signatures.
Recall that an Elliptic Curve Pairing maps two Elliptic Curve points from two Elliptic Curves to an element in another group:
Here, is the pairing, and are the Elliptic Curves and is a finite field.
Also remember that an Elliptic Curve Pairing comes with specific properties called bilinear mappings, two of which are important for the rest of this post:
where , and are Elliptic Curve points and , .
In our example we have two participants, Alice and Bob. Alice will sign a message which in turn will be verified by Bob.
Furthermore we’ll be working with the Elliptic Curve that is of order and has a generator . The Elliptic Curve Pairing on such curve will be called . All calculations are done if not stated otherwise.
We also assume that is a cryptographic hash function that maps a message to a uniformly random looking value.
As a first step, Alice generates here private key by sampling a random value from :
She then generates here public key by multiplying her private key with the generator :
Once done, Alice hashes the message which results in a value that can be interpreted a point on the Elliptic Curve :
To generate a signature for the message , Alice multiplies her private key by the value that the hash of the message resulted in:
Alice then sends the signature alongside her public key to Bob for verification.
Bob verifies the signature on the message by checking if:
Why it works
The first thing to note is that the result returned by the hash function can be interpreted as a point on the Elliptic Curve . The hash value can therefore be used in an Elliptic Curve Pairing.
Using the aforementioned bilinear mapping, we can see that:
References
The following resources have been invaluable for me to learn the concepts discussed in this article.
You should definitely give them a read if you want to dive deeper into the topic.
- Wikipedia - BLS Digital Signature
- Remco Bloemen - BLS Signatures
- Paul Miller - BLS Signature for Busy People
- Stepan - BLS signatures: better than Schnorr
- Ben Edgington - BLS12-381 For The Rest Of Us
- David Wong - What is the BLS signature scheme?
- Nguyen Thoi Minh Quan - Intuitive Advanced Cryptography