0Pricing
Cryptology Academy · Lección

ECDSA de umbral: firma multipartita

Estudie los protocolos GG18, GG20 y CGGMP, que permiten firmar con ECDSA de forma distribuida sin reconstruir la clave.

ECDSA de umbral: firma multipartita es una lección gratuita de Cryptology Academy en CoddyKit. Esta es la lección 2 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.

Por qué es difícil aplicar umbral a ECDSA

Las firmas ECDSA requieren calcular un nonce aleatorio k, el punto de la curva R = k*G y la firma s = k^{-1}(h + r*x) mod n, donde x es la clave privada y r es la coordenada x de R. La inversión de k y la multiplicación por la clave privada hacen que ECDSA sea intrínsecamente no lineal, a diferencia de las firmas Schnorr, en las que la respuesta es una combinación lineal sencilla. Esta no linealidad hace que distribuir el cálculo entre varios participantes sea extremadamente difícil.

GG18: ECDSA de umbral de Gennaro y Goldfeder

El protocolo GG18, desarrollado por Gennaro y Goldfeder (2018), fue la primera construcción práctica de ECDSA de dos partes y de umbral segura sin un distribuidor de confianza. La idea clave consiste en utilizar el cifrado homomórfico de Paillier para realizar la conversión multiplicativa a aditiva (MtA) necesaria para el cálculo no lineal de ECDSA. GG18 proporciona seguridad basada en simulación frente a adversarios estáticos semihonestos.

GG20: mejoras de seguridad

GG20 (Gennaro y Goldfeder, 2020) mejoró GG18 al demostrar seguridad frente a adversarios maliciosos sin una configuración de confianza. GG20 añadió pruebas de conocimiento cero para garantizar que cada participante siguiera correctamente el protocolo. Estas pruebas impiden que un participante malicioso sesgue el nonce o la firma para extraer información sobre las partes de clave de los demás participantes. GG20 se convirtió en la base de muchas implementaciones de billeteras MPC en producción.

CGGMP21: estado del arte

CGGMP21 (Canetti, Gennaro, Goldfeder, Makriyannis, Peled, 2021) es actualmente el protocolo ECDSA de umbral más avanzado del estado del arte. Permite abortos identificables, lo que significa que, si el protocolo de firma falla debido a un comportamiento malicioso, puede identificar qué participante es responsable. Esto es fundamental para las implementaciones empresariales en las que la rendición de cuentas es importante. CGGMP21 está implementado en bibliotecas MPC populares, incluidas tss-lib y multi-party-sig.

Conversión de multiplicativo a aditivo

El desafío central de ECDSA de umbral consiste en calcular el producto de partes secretas sin revelarlas. La conversión MtA (de multiplicativo a aditivo) transforma el producto a*b de las partes de dos participantes en partes aditivas: el participante 1 obtiene alpha y el participante 2 obtiene beta, de modo que alpha + beta = a*b. Esto se consigue mediante el cifrado de Paillier: el participante 1 cifra a, el participante 2 realiza una multiplicación homomórfica por b y añade aleatoriedad, y el participante 1 descifra el resultado para obtener las partes aditivas.

Cifrado homomórfico de Paillier en MtA

El cifrado de Paillier es un esquema de cifrado homomórfico parcial que admite tanto la suma como la multiplicación por un texto plano. Dado un cifrado Enc(a), cualquiera puede calcular Enc(a*b) para un valor b conocido sin descifrarlo. Esta propiedad permite el protocolo MtA: el participante 1 genera un par de claves Paillier y envía Enc(k1) y Enc(x1) (partes del nonce y de la clave privada). El participante 2 utiliza operaciones homomórficas para calcular su contribución sin conocer k1 ni x1.

Rondas de firma en ECDSA de umbral

La firma ECDSA de umbral normalmente implica varias rondas de comunicación. En GG20, hay una fase de preprocesamiento (2 rondas) que calcula compromisos con el nonce y valores aleatorios de enmascaramiento, y una fase de firma en línea (1 ronda) que combina las firmas parciales. El preprocesamiento puede realizarse antes de conocer el mensaje, lo que reduce la latencia en línea a una sola ronda. CGGMP21 optimiza este proceso aún más.

Aborto identificable

Un aborto identificable significa que, si el protocolo de firma de umbral falla (porque un participante envió un mensaje mal formado o no siguió el protocolo), los participantes honestos pueden determinar criptográficamente qué participante se comportó mal. Esto requiere pruebas de conocimiento cero del cálculo correcto en cada paso. Sin abortos identificables, un participante malicioso podría provocar una denegación de servicio (negarse a completar el protocolo) sin que se le identificara.

EdDSA y FROST: umbralización más sencilla

EdDSA (firmas basadas en Schnorr sobre Ed25519) es mucho más fácil de convertir en un esquema de umbral que ECDSA porque las firmas Schnorr son lineales: la respuesta z = r + c*x es una suma de partes aditivas. FROST (Flexible Round-Optimized Schnorr Threshold), de Komlo y Goldberg (2020), permite realizar firmas Schnorr de umbral en dos rondas y sin una configuración de confianza. FROST está siendo estandarizado por el IETF (borrador de RFC) para su uso en protocolos que preservan la privacidad y carteras de criptomonedas.

Rendimiento de ECDSA de umbral

ECDSA de umbral tiene un coste computacional mayor que ECDSA de un solo participante debido al protocolo MtA y a las pruebas de conocimiento cero. La firma entre dos participantes de GG20 tarda aproximadamente entre 1 y 2 segundos en hardware moderno; un esquema de umbral con un n mayor tarda más debido a las ejecuciones adicionales de MtA entre pares. Las optimizaciones de CGGMP21 reducen este tiempo a cientos de milisegundos. En transacciones de criptomonedas donde la latencia de firma es importante, este rendimiento es aceptable, aunque no es despreciable.

Implementaciones en producción

ECDSA de umbral se utiliza a gran escala en las finanzas institucionales. Fireblocks utiliza ECDSA de umbral basado en GG20 para proteger un volumen de transacciones superior a 4 billones de dólares. Coinbase Prime utiliza custodia MPC basada en firmas de umbral. Qredo y Copper.co ofrecen ECDSA de umbral para la gestión institucional de activos. La biblioteca de Go tss-lib (utilizada por Binance) y multi-party-sig (utilizada por Coinbase) son implementaciones de código abierto importantes.

Cuestionario sobre la conversión MtA

¿Qué función desempeña el cifrado homomórfico de Paillier en ECDSA de umbral?

Repaso de ECDSA de umbral

ECDSA de umbral permite que t participantes firmen sin que ninguno conozca la clave completa. La estructura no lineal de ECDSA requiere una conversión MtA mediante el cifrado homomórfico de Paillier. GG18 inició este enfoque, GG20 añadió seguridad frente a participantes maliciosos y CGGMP21 añadió abortos identificables. EdDSA/Schnorr es más fácil de convertir en un esquema de umbral mediante FROST (2 rondas y sin configuración de confianza). Las implementaciones de producción de Fireblocks y Coinbase protegen activos por valor de billones de dólares.

Preguntas frecuentes

¿La lección «ECDSA de umbral: firma multipartita» es gratis?

Sí — el texto completo de «ECDSA de umbral: firma multipartita» 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 «ECDSA de umbral: firma multipartita»?

Estudie los protocolos GG18, GG20 y CGGMP, que permiten firmar con ECDSA de forma distribuida sin reconstruir la clave. 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 2 de 4.

¿Cuánto tiempo toma la lección «ECDSA de umbral: firma multipartita»?

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. Esquemas de firmas de umbral: conceptos
  2. ECDSA de umbral: firma multipartita
  3. Protocolos de generación distribuida de claves
  4. Esquemas de umbral en blockchains y HSM
← Volver a Cryptology Academy