BLS12-381 est la courbe adaptée aux couplages qu’utilisent la couche de consensus d’Ethereum, Zcash et Filecoin.
BLS12-381 est une courbe de Weierstrass réduite y² = x³ + ax + b sur un corps premier de 381 bits, avec un sous-groupe d’ordre premier de 255 bits et un cofacteur de 76329603384216526031706109802092473003 ; son niveau de sécurité estimé est de 117 bits. Statut : sûre, mais régionale ou de niche.
BLS12-381 est une courbe de Barreto–Lynn–Scott de degré de plongement 12, conçue par Sean Bowe pour Zcash en 2017. G1 est la courbe y² = x³ + 4 sur un corps premier de 381 bits, G2 se trouve sur une tordue définie sur GF(p²), et tous deux utilisent un sous-groupe d’ordre premier de 255 bits. Sa sécurité est estimée à environ 117 à 120 bits depuis les progrès du crible algébrique (NFS) qui ont affaibli BN254.
Le consensus en preuve d’enjeu (proof-of-stake) d’Ethereum signe les attestations avec des signatures BLS sur cette courbe (draft-irtf-cfrg-bls-signature), ce qui permet d’agréger des milliers de signatures en une seule, et l’EIP-2537 ajoute à la couche d’exécution des contrats précompilés pour cette courbe. Zcash Sapling, Filecoin et la balise d’aléa drand l’utilisent aussi.
Le cofacteur de G1 est grand (h ci-dessus) : les implémentations doivent donc vérifier que les points reçus appartiennent au sous-groupe d’ordre premier avant de les utiliser.
Noms dans les normes
Norme
Nom
draft-irtf-cfrg-pairing-friendly-curves
BLS12-381
EIP-2537
BLS12_381
Paramètres de domaine
corps premier de 381 bits · sécurité d’environ 117 bits