BLS Signatures Part 1 — Overview

BLS Signatures — overview

BLS stands for Boneh-Lynn-Shacham, it’s a signature scheme that is based on bi-linear pairings.
A pairing, defined as e(,), is a bilinear map of 2 groups G1 and G2 in some other group, GT. e(,) takese as arguments points in G1 and G2.

  • KeyGen — choose a random α. Given generator g1, pk=α*g1
  • Sign — σ = α*H(m) ∈ G2 (in the case of eth2.0)
  • Verify(pk,m, σ) — if e(g1, σ) = e(pk, H(m)) return true.

Properties

BLS signatures have some really exciting properties that make it special and interesting for many applications.

Deterministic

Many signature algorithms dictate some randomness to be included in every signature to prevent attacks exploiting multiple signatures to recover the secret key.
A famous case was Sony’s Playstation attack where user keys were recovered because Sony did not use a uniform (non bias) random generator for their signatures.

Aggregatable

BLS has an out-of-the-box ability to aggregate signatures into a fixed size output of 96 bytes and the aggregated public key is sized to 48 bytes.

Easy Multisig support

Having the above properties in mind, we can imagine a simple and easy recipe for a BLS multisig support. M-of-N.

Part 1 — Summary

  • BLS is a great adoption of cutting edge cryptography to solve specific issues, scale in the case of eth 2.0.
  • The way it works is more complicated than ECDSA but offers some interesting properties and possibilities.
  • Behind the scene, what makes BLS possible is a concept called bi-linear pairings. To better understand how pairings work (and thus how BLS works), we will need to cover some basic concepts.
  • Part 2 will cover some of the key concepts behind pairings and BLS signatures.
  • Part 2 is fairly technical and complex, proceed with caution :)

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Alon Muroch

Alon Muroch

CEO @ bloxstaking.com and blox.io. Developing trustless staking products for eth2.0.