Zum Inhalt springen
ecdsa.com

BLS-Signaturen

Pairing-basierte Signaturen (Boneh, Lynn und Shacham, 2001), die kurz, deterministisch und nativ aggregierbar sind; am bekanntesten ist ihr Einsatz im Proof-of-Stake-Konsens von Ethereum auf der Kurve BLS12-381.
Auch geschrieben alsBLSBoneh–Lynn–ShachamBLS12-381 signatures

Eine Signatur ist σ = sk·H(m), wobei H die Nachricht auf einen Kurvenpunkt hasht (RFC 9380), und bei der Prüfung wird die Pairing-Gleichung e(σ, g) = e(H(m), pk) nachgerechnet. Signaturen über beliebige Nachrichten lassen sich zu einem Punkt addieren; die Prüfung eines Aggregats kostet ein Pairing pro unterschiedlicher Nachricht plus eins. Auf BLS12-381 hat die von Ethereum genutzte Variante „minimal public key“ öffentliche Schlüssel mit 48 Byte und Signaturen mit 96 Byte; die Variante „minimal signature“ vertauscht die Gruppen.

Das Verfahren ist im Internet-Draft draft-irtf-cfrg-bls-signature der IRTF CFRG spezifiziert; die Konsensschicht von Ethereum (seit dem Start der Beacon Chain am 1. Dezember 2020) nutzt die Cipher Suite BLS_SIG_BLS12381G2_XMD:SHA-256_SSWU_RO_POP_. Werden Signaturen über dieselbe Nachricht aggregiert, braucht jeder Schlüssel einen Proof of Possession, um Rogue-Key-Angriffe zu verhindern. Weitere Nutzer sind Filecoin, Chia und der Zufalls-Beacon drand, der auf Schwellenwert-BLS setzt.

BLS ist in keinem NIST-Standard enthalten, die Prüfung kostet etwa zwei Pairings (Millisekunden statt Mikrosekunden), und wie jede Pairing-basierte Kryptografie wird BLS durch den Shor-Algorithmus gebrochen.

Standards und Quellen

Alle Begriffe