A BLS digital signature, also known as Boneh–Lynn–Shacham[1] (BLS), is a cryptographic signature scheme which allows a user to verify that a signer is authentic.
The scheme uses a bilinear pairing
are elliptic curve groups of prime order
from the message space into
Signature are elements of
, public keys are elements of
, and the secret key is an integer in
Working in an elliptic curve group provides some defense against index calculus attacks (with the caveat that such attacks are still possible in the target group
of the pairing), allowing shorter signatures than FDH signatures for a similar level of security.
Signatures produced by the BLS signature scheme are often referred to as short signatures, BLS short signatures, or simply BLS signatures.
[2] The signature scheme is provably secure (the scheme is existentially unforgeable under adaptive chosen-message attacks) in the random oracle model assuming the intractability of the computational Diffie–Hellman problem in a gap Diffie–Hellman group.
[1] A signature scheme consists of three functions: generate, sign, and verify.
[1] The key generation algorithm selects the private key by picking a random integer
The holder of the private key publishes the public key,
Given the private key
, we compute the signature by hashing the bitstring
, and we output the signature
BLS12-381 is part of a family of elliptic curves named after Barreto, Lynn, and Scott[7] (a different BLS trio, except for the L).
It was designed by Sean Bowe in early 2017 as the foundation for an upgrade to the Zcash protocol.
It is both pairing-friendly, making it efficient for digital signatures, and effective for constructing zkSnarks.
[8] The planned usage[clarification needed] of BLS12-381 for BLS signatures is detailed in the June 2022 IETF internet draft.