BLS digital signature

From HandWiki
Short description: Digital signature scheme

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 for verification, and signatures are elements of an elliptic curve group. 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 [math]\displaystyle{ G_T }[/math] 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]

Pairing functions

A gap group is a group in which the computational Diffie–Hellman problem is intractable but the decisional Diffie–Hellman problem can be efficiently solved. Non-degenerate, efficiently computable, bilinear pairings permit such groups.

Let [math]\displaystyle{ e\colon G\times G\rightarrow G_T }[/math] be a non-degenerate, efficiently computable, bilinear pairing where [math]\displaystyle{ G }[/math], [math]\displaystyle{ G_T }[/math] are groups of prime order, [math]\displaystyle{ r }[/math]. Let [math]\displaystyle{ g }[/math] be a generator of [math]\displaystyle{ G }[/math]. Consider an instance of the CDH problem, [math]\displaystyle{ g }[/math],[math]\displaystyle{ g^x }[/math], [math]\displaystyle{ g^y }[/math]. Intuitively, the pairing function [math]\displaystyle{ e }[/math] does not help us compute [math]\displaystyle{ g^{xy} }[/math], the solution to the CDH problem. It is conjectured that this instance of the CDH problem is intractable. Given [math]\displaystyle{ g^z }[/math], we may check to see if [math]\displaystyle{ g^z=g^{xy} }[/math] without knowledge of [math]\displaystyle{ x }[/math], [math]\displaystyle{ y }[/math], and [math]\displaystyle{ z }[/math], by testing whether [math]\displaystyle{ e(g^x,g^y)=e(g,g^z) }[/math] holds.

By using the bilinear property [math]\displaystyle{ x+y+z }[/math] times, we see that if [math]\displaystyle{ e(g^x,g^y)=e(g,g)^{xy}=e(g,g)^{z}=e(g,g^z) }[/math], then, since [math]\displaystyle{ G_T }[/math] is a prime order group, [math]\displaystyle{ xy=z }[/math].

BLS signature scheme

A signature scheme consists of three functions: generate, sign, and verify.[1]

Key generation

The key generation algorithm selects a random integer [math]\displaystyle{ x }[/math] such as [math]\displaystyle{ 0 \lt x \lt r }[/math]. The private key is [math]\displaystyle{ x }[/math]. The holder of the private key publishes the public key, [math]\displaystyle{ g^x }[/math].

Signing

Given the private key [math]\displaystyle{ x }[/math], and some message [math]\displaystyle{ m }[/math], we compute the signature by hashing the bitstring [math]\displaystyle{ m }[/math], as [math]\displaystyle{ h=H(m) }[/math]. We output the signature [math]\displaystyle{ \sigma=h^x }[/math].

Verification

Given a signature [math]\displaystyle{ \sigma }[/math] and a public key [math]\displaystyle{ g^x }[/math], we verify that [math]\displaystyle{ e(\sigma,g)=e(H(m),g^x) }[/math].

Properties

  • Simple Threshold Signatures[3][better source needed]
  • Signature Aggregation: Multiple signatures generated under multiple public keys for multiple messages can be aggregated into a single signature.[4]
  • Unique and deterministic: for a given key and message, there is only one valid signature (like RSA PKCS1 v1.5, EdDSA and unlike RSA PSS, DSA, ECDSA and Schnorr).[citation needed]

Applications

  • Chia network has used BLS signatures.[5][6]
  • By 2020, BLS signatures were used extensively in version 2 (Eth2) of the Ethereum blockchain, as specified in the IETF draft BLS signature specification—for cryptographically assuring that a specific Eth2 validator has actually verified a particular transaction.[2] The use of BLS signatures in Ethereum is considered a solution to the verification bottleneck only for the medium term, as BLS signatures are not quantum secure. Over the longer term—say, 2025–2030—STARK aggregation is expected to be a drop-in replacement for BLS aggregation.[7]


See also

References

  1. 1.0 1.1 1.2 Dan Boneh; Ben Lynn; Hovav Shacham (2004). "Short Signatures from the Weil Pairing". Journal of Cryptology 17 (4): 297–319. doi:10.1007/s00145-004-0314-9. 
  2. 2.0 2.1 "Ethereum 2.0 Phase 0 -- The Beacon Chain : BLS Signatures". 28 July 2020. https://github.com/ethereum/eth2.0-specs/blob/dev/specs/phase0/beacon-chain.md#bls-signatures. Retrieved 4 September 2020. 
  3. Craige, Jake (11 March 2020). "Threshold BLS Signatures". https://www.jcraige.com/threshold-bls-signatures. 
  4. D. Boneh, C. Gentry, H. Shacham, and B. Lynn Aggregate and Verifiably Encrypted Signatures from Bilinear Maps, proceedings of Eurocrypt 2003, LNCS 2656, pp. 416-432, 2003
  5. "5. BLS Signatures | Chia Documentation" (in en). https://docs.chia.net/guides/chialisp-bls-signatures. 
  6. BLS signatures
  7. Drake, Justin (5 December 2019). "Pragmatic signature aggregation with BLS". Eth research. https://ethresear.ch/t/pragmatic-signature-aggregation-with-bls/2105. Retrieved 8 January 2021. 

External links