Saltar al contenido
ecdsa.com

Firmas BLS

Firmas basadas en emparejamientos (Boneh, Lynn y Shacham, 2001), cortas, deterministas y agregables de forma nativa, cuyo uso más destacado es el consenso de prueba de participación de Ethereum sobre la curva BLS12-381.
También se escribeBLSBoneh–Lynn–ShachamBLS12-381 signatures

Una firma es σ = sk·H(m), donde H lleva el mensaje a un punto de la curva mediante un hash (RFC 9380), y la verificación comprueba la ecuación de emparejamiento e(σ, g) = e(H(m), pk). Las firmas de cualquier conjunto de mensajes se pueden sumar en un solo punto; verificar un agregado cuesta un emparejamiento por cada mensaje distinto, más uno. En BLS12-381, la variante «minimal public key» que usa Ethereum tiene claves públicas de 48 bytes y firmas de 96 bytes; la variante «minimal signature» intercambia los grupos.

El esquema se especifica en el Internet-Draft draft-irtf-cfrg-bls-signature del CFRG del IRTF; la capa de consenso de Ethereum (desde el lanzamiento de la Beacon Chain el 1 de diciembre de 2020) usa el conjunto de cifrado BLS_SIG_BLS12381G2_XMD:SHA-256_SSWU_RO_POP_. Agregar firmas sobre el mismo mensaje exige una prueba de posesión de cada clave para impedir los ataques de clave maliciosa (rogue key). Entre otros usuarios figuran Filecoin, Chia y la baliza de aleatoriedad drand, que se basa en BLS de umbral.

BLS no figura en ningún estándar del NIST, la verificación cuesta unos dos emparejamientos (milisegundos en lugar de microsegundos) y, como toda la criptografía basada en emparejamientos, el algoritmo de Shor la rompe.

Estándares y referencias

Todos los términos