BLS Signatures: Fast, Efficient and Short: Checked With The Magic of Crypto Pairing
One of the most interesting topics that I have investigated is pairing-based cryptography, and they have so many applications, such as in Zero-knowledge proofs, authenticated key exchange, and in creating aggregated signatures. So, let’s look at the BLS (Boneh–Lynn–Shacham) signature method [1], and which produces one of the smallest digital signatures around.
Pairing based cryptography
With pairing-based cryptography we have two cyclic groups (G1 and G2), and which are of an order of a prime number (n). A pairing on (G1,G2,GT) defines the function e:G1×G2→GT, and where g1 is a generator for G1 and g2 is a generator for G2. If we have the points of U1 and U2 on G1 and V1 and V2 on G2, we get a bilinear mapping of:
e(aU,V)=e(U,aV)
and where U is a point on G2, and V on G1.
BLS Signature
With BLS signatures [1], we create a private key (sk) and then generate a public key on the G2 group as pk=sk.G and where G is the base point on the G2 group. The message (Msg) is then hashed to the G1 group, and the signature (S) is S=sk.HashToCurve(M). We can check the signature using pairings. Overall, we hash data and add the public key to the G1 group and the public key to the G2 group.
We have migrated the ECDSA method of signing Bitcoin transactions as the method has been shown to be only as strong as the…