Un simulateur pédagogique du schéma de signatures BLS (Boneh–Lynn–Shacham 2001, normalisé dans draft-irtf-cfrg-bls-signature-04) — le schéma derrière les attestations de la chaîne phare d’Ethereum 2, Chia, Polkadot et Filecoin.
Le corps scalaire est l’ordre r réel du sous-groupe BLS12-381 : clés privées, parts de Shamir, coefficients de Lagrange et annulations de clé voyou utilisent exactement le module de production. Le groupe est un groupe multiplicatif didactique d’ordre premier avec l’appariement abstrait e(g^a, g^b) = g^(ab) : toute identité bilinéaire dont dépend BLS (σ = H(m)^sk vérifié par e(σ, g) = e(H(m), g^sk)) est préservée ; l’arithmétique de courbe elliptique et le hash-to-curve (SSWU) ne sont pas exécutés.
Scénarios :
Joint-Feldman DKG — chaque participant distribue un polynôme aléatoire de degré t−1, publie des engagements de Feldman Ci,k = g^{ai,k} (plus des engagements Pedersen dissimulants facultatifs) et distribue ses parts en privé. Les vérifications démasquent les distributeurs malhonnêtes ; la clé publique de groupe Π Ci,0 égale g^{secret de groupe} bien que ce secret ne se matérialise jamais. Puis signature à seuil t-sur-n : les partielles σi = H(m)^{s_i} se combinent via Lagrange en une signature identique à celle du signataire complet ; les quorums sous le seuil sont rejetés.
Attaque à clé voyou — l’attaquant publie pk* = g^α·Πpkᵢ⁻¹ (calculable à partir des seules clés publiques) et forge une signature agrégée que la vérification naïve accepte. La défense par preuve de possession (PopProve = signer le haché de sa propre clé publique) rejette la clé voyou à l’enregistrement.
Agrégation d’attestations Ethereum 2 — n validateurs signent les mêmes données ; σ_agg = Πσᵢ reste à 96 octets et FastAggregateVerify coûte 2 appariements quel que soit n ; le sous-agrégat du quorum ⅔ vérifie de façon incrémentale.
Toute exécution est déterministe pour une graine donnée : les cérémonies se rejouent à l’identique.