# BLS

The BLS (Boneh-Lynn-Shacham) signature scheme is a cryptographic scheme that provides a type of digital signature with unique properties and is developed by Dan Boneh, Ben Lynn, and Hovav Shacham in 2001.

Overview of the BLS signature scheme:

1. Key Generation:

• Select a pairing-friendly elliptic curve of prime order q that defines the additive prime order group G1 and a multiplicative prime order group G2.

• Choose P, a generator point on the elliptic curve G1.

• Choose a random secret key, x, from a large prime number space.

• Compute the corresponding public key, Q = x * P.

• The public key Q is shared, while the secret key x is kept private.

2. Signing:

• To sign a message m:

• Compute the message hash, H = H_1(m) belongs to G1, where H_1 is a cryptographic hash function.

• Multiply the H by the secret key x to generate the signature: S = x * H

3. Verification:

• To verify a signature S on a message m using a public key Q:

• Compute the message hash, H = H_1(m).

• Verify the signature by checking if e(S, P) = e(H, Q), where e() is the bilinear pairing function.

• e(S, P) is the pairing of the signature S with the generator point P.

• e(H, Q) is the pairing of the hashed message digest H and the public key.

• If the equation holds, the signature is valid.

The BLS signature scheme has very important properties,

Deterministic: The same message always produces the same signature when signed with the same secret key. This property makes it useful in various applications.

Full Aggregation: One of the significant advantages of BLS signatures is their efficient aggregation property. Multiple signatures can be combined into a single signature that verifies against the aggregated public key. Aggregation reduces the signature size and computational overhead of verification.

Taking into consideration the deterministic nature of BLS and aggregation property Insaanity protocol deploys much efficient and unique way to achieve selection mechanism and randomness generation and for zero knowledge proof used in developing the Insaanity cryptographic library

Last updated