Définition
BLS : définition
BLS (Boneh-Lynn-Shacham) est un schéma de signature numérique qui permet d'agréger de nombreuses signatures en une seule, compacte et rapide à vérifier. Ethereum l'utilise pour les attestations de ses validateurs en preuve d'enjeu.
Thème : Consensus et minage
Le nom provient de ses trois inventeurs. Les signatures BLS reposent sur des courbes elliptiques dotées d'une opération mathématique particulière, le couplage (pairing). Cette propriété permet d'additionner des signatures produites par des clés différentes sur un même message et d'obtenir une signature unique, vérifiable contre la combinaison des clés publiques correspondantes. Cette opération d'agrégation peut même être réalisée par un tiers, sans coordination préalable entre les signataires.
Dans une blockchain en preuve d'enjeu comme Ethereum, des centaines de milliers de validateurs votent régulièrement sur l'état de la chaîne. Stocker et vérifier chaque signature séparément serait très coûteux. Grâce à BLS, les votes d'un même comité sont agrégés, ce qui réduit fortement la taille des blocs et le temps de vérification. Ethereum utilise pour cela la courbe BLS12-381. En revanche, les transactions des utilisateurs restent signées en ECDSA. BLS sert aussi dans d'autres protocoles de consensus et dans des schémas de signature à seuil.
Un exemple concret
Imaginons un comité de plusieurs centaines de validateurs chargés d'attester un même bloc. Chacun signe son vote avec sa clé BLS. Un agrégateur combine toutes ces signatures en une seule, accompagnée d'une liste indiquant qui a signé. Le bloc suivant n'inclut que cette signature agrégée, et n'importe quel nœud peut vérifier en une opération que la majorité du comité a bien voté.
Les risques à connaître
La vérification par couplage est plus lourde qu'une vérification ECDSA unique, l'avantage n'existe donc qu'en cas d'agrégation. Une implémentation naïve est exposée à l'attaque dite de clé malveillante (rogue key), qu'il faut contrer par une preuve de possession des clés. La cryptographie BLS est moins répandue dans le matériel grand public.
Questions fréquentes sur BLS
Les portefeuilles Ethereum utilisent-ils des signatures BLS ?
Non, les comptes utilisateurs signent leurs transactions en ECDSA sur la courbe secp256k1. Les clés BLS sont propres aux validateurs de la couche de consensus.
Pourquoi l'agrégation de signatures est-elle utile ?
Elle permet de prouver l'accord de nombreux participants avec une seule signature, ce qui économise de l'espace dans les blocs et du temps de vérification pour chaque nœud.