0Pricing
Cryptology Academy · Lección

Firmas BLS y esquemas de firmas agregadas

Explore los emparejamientos BLS12-381, la agregación de firmas y cómo Ethereum 2.0 utiliza BLS para reducir la carga de los validadores.

Firmas BLS y esquemas de firmas agregadas es una lección gratuita de Cryptology Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Cryptology Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Cryptology Academy incluye 4 lecciones en total.

Emparejamientos bilineales: el fundamento matemático

Las firmas BLS se basan en emparejamientos bilineales, una operación matemática sobre curvas elípticas. Un emparejamiento e: G1 x G2 -> GT asigna pares de puntos de dos grupos (G1, G2) a un grupo objetivo GT. La propiedad fundamental es la bilinealidad: e(aP, bQ) = e(P, Q)^(ab) para escalares a, b y puntos P, Q. Esto permite comprobar relaciones entre elementos de grupo sin conocer los logaritmos discretos. La curva de emparejamiento más utilizada en criptografía es BLS12-381, elegida por su nivel de seguridad de 128 bits, el reducido tamaño de sus elementos de grupo (48 bytes en G1 y 96 bytes en G2) y el cálculo eficiente del emparejamiento.

Construcción de firmas BLS

Una firma BLS (Boneh-Lynn-Shacham) funciona así. Generación de claves: la clave privada x es un escalar aleatorio; la clave pública PK = x * G, donde G es el generador de G2. Firma: dado el mensaje m, se calcula H = hash-to-curve(m) en G1 y, después, sigma = x * H. La firma sigma es un único punto de G1 (48 bytes en BLS12-381). Verificación: se comprueba e(sigma, G) == e(H, PK). Por la bilinealidad, e(x*H, G) = e(H, G)^x = e(H, x*G) = e(H, PK). La seguridad se basa en el supuesto co-CDH: calcular x*H a partir de H y x*G es difícil sin conocer x.

Agregación de firmas: la innovación clave

Las firmas BLS admiten la agregación no interactiva: dadas las firmas sigma_1, ..., sigma_n sobre los mensajes m_1, ..., m_n y las claves públicas PK_1, ..., PK_n, un agregador calcula sigma_agg = sigma_1 + sigma_2 + ... + sigma_n (suma de puntos de curva elíptica). La firma agregada es un único valor de 48 bytes, independientemente de n. La verificación requiere n+1 operaciones de emparejamiento: se comprueba e(sigma_agg, G) == product(e(H_i, PK_i)). En el caso habitual en que todos los firmantes firman el mismo mensaje, la verificación se reduce a 2 emparejamientos: e(sigma_agg, G) == e(H, sum(PK_i)).

Ataque de clave maliciosa y defensa

La agregación BLS ingenua es vulnerable al ataque de clave maliciosa. Un atacante registra PK_adv = x_adv*G - PK_honest. La clave agregada PK_agg = PK_honest + PK_adv = x_adv*G queda completamente bajo el control del atacante. Opciones de defensa: (1) prueba de posesión (PoP): cada firmante demuestra que conoce su clave privada firmando su propia clave pública durante el registro. (2) ampliación del mensaje: incluir la clave pública de cada firmante en su mensaje. (3) delinearización (BGLS): multiplicar cada clave pública por hash(PK_i, all_PKs) antes de la agregación, rompiendo la linealidad que permite el ataque. Ethereum utiliza PoP para el registro de validadores.

Uso de BLS en Ethereum 2.0

La capa de consenso de Ethereum (Beacon Chain) utiliza ampliamente la agregación BLS12-381. En cada ranura, aproximadamente 400,000+ validadores activos atestiguan la cabeza de la cadena. Sin agregación, almacenar todas las firmas requeriría ~400,000 * 96 bytes = 38 MB por ranura. Con la agregación BLS por comité (normalmente 512 validadores), cada comité produce una firma agregada de 96 bytes, lo que reduce el total de datos de firmas a kilobytes por ranura. El cuerpo del bloque de la Beacon Chain contiene atestaciones agregadas: un campo de bits que indica qué validadores participaron, además de una firma BLS agregada por cada comité.

Rendimiento de BLS frente a ECDSA

Las operaciones de firma BLS tienen características de rendimiento diferentes de las de ECDSA. La firma BLS requiere un hash-to-curve y una multiplicación escalar (~1 ms en hardware moderno). La verificación BLS requiere dos operaciones de emparejamiento (~3-5 ms cada una = ~6-10 ms en total). La firma ECDSA requiere una multiplicación de puntos (~0.2 ms); la verificación requiere dos multiplicaciones de puntos (~0.4 ms). La verificación BLS es más lenta por firma, pero mucho más rápida en conjunto: verificar 1000 firmas BLS agregadas requiere ~10 ms en total frente a ~400 ms para 1000 verificaciones ECDSA individuales. El punto de equilibrio se sitúa en torno a 2-3 firmas.

Firmas BLS de umbral

BLS amplía la agregación a la compartición de secretos. En un esquema de umbral (t, n), la clave privada se divide en n participaciones mediante el esquema de compartición secreta de Shamir sobre el campo de escalares de BLS. Cada participante i produce una firma parcial sigma_i = sk_i * H(m). Cualquier conjunto de t firmas parciales puede combinarse mediante coeficientes de interpolación de Lagrange: sigma = sum(lambda_i * sigma_i). El resultado es idéntico a la firma producida por la clave original, pero ninguna entidad posee nunca la clave completa. Las firmas BLS de umbral se utilizan en tecnología de validadores distribuidos (DVT), carteras MPC y servicios de firma de umbral como Fireblocks y Web3Auth.

BLS en la red Filecoin

Filecoin utiliza firmas BLS para su sistema de pruebas de almacenamiento y para la firma de transacciones. Los mineros de almacenamiento agregan múltiples pruebas mediante la agregación BLS, reduciendo los costes de verificación en la cadena. El grupo de mensajes de Filecoin también agrega múltiples firmas de transacciones en una sola firma agregada, lo que reduce el tamaño de los bloques. La implementación de Filecoin utiliza el borrador del estándar BLS de la IETF (hash-to-curve según RFC 9380, curva BLS12-381), con la variante de tamaño mínimo de clave pública, en la que las claves públicas están en G1 (48 bytes) y las firmas en G2 (96 bytes), lo contrario de la convención de Ethereum.

BLS en Zcash y los protocolos de privacidad

Aunque Zcash utiliza principalmente pruebas zk-SNARK Groth16, los emparejamientos BLS son la base de muchas construcciones de conocimiento cero basadas en emparejamientos. La ecuación de verificación de Groth16 es una comprobación de emparejamiento: e(A, B) = e(alpha, beta) * e(vk, C), donde A, B y C son elementos de la prueba. Los compromisos polinómicos KZG (utilizados en las transacciones blob de EIP-4844 de Ethereum y en diversos sistemas de rollup ZK) también se basan en emparejamientos BLS12-381: un compromiso con el polinomio f(x) es C = f(tau)*G, y las pruebas de evaluación se verifican mediante emparejamientos. BLS12-381 se eligió específicamente por sus operaciones de emparejamiento eficientes y su seguridad de 128 bits.

Firmas agregables más allá de BLS

BLS no es el único esquema de firmas agregables. Las firmas Schnorr permiten la agregación de claves (MuSig2, utilizado en Bitcoin Taproot), donde varios firmantes producen una única firma Schnorr indistinguible de la firma de un único firmante. FROST (Flexible Round-Optimized Schnorr Threshold) proporciona firmas Schnorr de umbral en dos rondas. Sin embargo, la agregación Schnorr requiere interacción entre los firmantes (a diferencia de la agregación no interactiva de BLS), por lo que resulta menos adecuada para grandes conjuntos de validadores. BLS sigue siendo la opción preferida para el consenso de cadenas de bloques gracias a su agregación no interactiva y su verificación por lotes eficiente.

Perspectiva poscuántica de BLS

Las firmas BLS se basan en emparejamientos de curvas elípticas, que son vulnerables a los ordenadores cuánticos que ejecutan el algoritmo de Shor. Un ordenador cuántico suficientemente potente podría calcular logaritmos discretos en BLS12-381, lo que rompería todas las firmas BLS existentes y comprometería la seguridad del consenso de Ethereum. El calendario es incierto, pero NIST estima que faltan entre 15 y 20 años para que existan ordenadores cuánticos relevantes para la criptografía. Ethereum y otras cadenas que dependen de BLS tendrán que migrar a esquemas de firma poscuánticos (CRYSTALS-Dilithium/ML-DSA o SPHINCS+/SLH-DSA) antes de que esta amenaza se materialice. La migración requiere cambios a nivel de protocolo en el registro de validadores, los formatos de atestación y la verificación agregada.

Cuestionario sobre la agregación BLS

¿Cuál es la principal ventaja de la agregación de firmas BLS en la capa de consenso de Ethereum?

Resumen de las firmas BLS

Las firmas BLS utilizan emparejamientos bilineales en curvas BLS12-381. Las firmas son puntos G1 de 48 bytes; las claves públicas son puntos G2 de 96 bytes según la convención de Ethereum. La agregación no interactiva combina n firmas en un único valor de 48 bytes, que se verifica mediante n+1 emparejamientos. El ataque de clave impostora se mitiga mediante Proof of Possession durante el registro del validador. Ethereum utiliza BLS para comprimir más de 400 000 atestaciones de validadores por slot en unos pocos kilobytes. BLS de umbral permite contar con validadores distribuidos sin un único titular de la clave. BLS se basa en emparejamientos y no ofrece seguridad poscuántica, por lo que será necesario migrar en el futuro.

Preguntas frecuentes

¿La lección «Firmas BLS y esquemas de firmas agregadas» es gratis?

Sí — el texto completo de «Firmas BLS y esquemas de firmas agregadas» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Cryptology Academy, actualiza a CoddyKit PRO. El curso de Cryptology Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Firmas BLS y esquemas de firmas agregadas»?

Explore los emparejamientos BLS12-381, la agregación de firmas y cómo Ethereum 2.0 utiliza BLS para reducir la carga de los validadores. Practicas Cryptology Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Cryptology Academy?

No se requiere experiencia previa. Cryptology Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «Firmas BLS y esquemas de firmas agregadas»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Cryptology Academy?

Sí. Cada lección de Cryptology Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Mecanismos criptográficos de Proof-of-Stake
  2. Protocolos BFT: PBFT y Tendermint
  3. Funciones aleatorias verificables en el consenso
  4. Firmas BLS y esquemas de firmas agregadas
← Volver a Cryptology Academy