LearnBitcoin

Glosario

ECDSA (algoritmo de firma digital de curva elíptica)

El esquema de firma original de Bitcoin para demostrar la propiedad de las monedas; todavía lo usa cada tipo de salida anterior a Taproot, junto a las firmas Schnorr de Taproot.

Traducción hecha con ayuda de IA, pendiente de revisión humana. Lee el original (en inglés).

ECDSA es el esquema de firma digital original de Bitcoin. Así es como la red verifica, desde 2009, que quien gasta un UTXO es quien de verdad controla la clave privada a la que se envió.

El mecanismo se construye sobre la curva elíptica secp256k1. A grandes rasgos:

  1. Un firmante con la clave privada d produce una firma (r, s) que depende de d, del mensaje que se firma y de un nonce secreto k (aleatorio en el ECDSA de libro de texto; libsecp256k1 lo deriva de forma determinista a partir de la clave y el mensaje, según el RFC 6979).
  2. Cualquiera que tenga la clave pública correspondiente puede verificar que la firma es matemáticamente consistente, es decir, que quien firmó tenía que conocer d.
  3. En el proceso, quien verifica no aprende nada sobre d.

Las implementaciones de ECDSA en producción también tienen que seguir una disciplina estricta de tiempo constante (en inglés): el paso de multiplicación escalar al firmar filtra bits de la clave a través de los tiempos de ejecución si se implementa de forma ingenua, y un ataque de 2011 recuperó la clave ECDSA de un servidor TLS a partir de una fuga de tiempos en la multiplicación escalar de OpenSSL. La libsecp256k1 de Bitcoin Core, construida para no tener canales laterales de tiempo en las operaciones con claves secretas, es una de las implementaciones de firma en tiempo constante mejor diseñadas de la criptografía en producción.

ECDSA funciona, pero tiene algunas molestias:

  • Maleabilidad de la firma. Una firma dada (r, s) se puede convertir trivialmente en (r, n - s), donde n es el orden de la curva. Las dos son válidas para la misma clave y el mismo mensaje. Eso causó dolores de cabeza reales con la estabilidad del txid. SegWit lo corrigió para las entradas que lo usan, al sacar las firmas de los datos con los que se calcula el txid.
  • Sin agregación nativa. Cinco cofirmantes en una salida multisig producen cinco firmas separadas, cada una ocupando espacio en la cadena. No hay una forma limpia de comprimirlas.
  • Pruebas algo incómodas. Los resultados de seguridad demostrable para ECDSA son más enredados que para Schnorr.

Las firmas Schnorr, activadas con Taproot en noviembre de 2021 en el bloque 709,632, resuelven los tres problemas. ECDSA sigue en uso en todos los tipos de salida anteriores a Taproot (P2PK, P2PKH, P2SH, P2WPKH, P2WSH) y sigue siendo el esquema de firma más probado que usa Bitcoin en producción. Las salidas Taproot usan solo Schnorr: la ruta de clave verifica una firma BIP 340, y el OP_CHECKSIG de tapscript se redefinió para claves y firmas Schnorr en vez de ECDSA.

La seguridad de ECDSA descansa en que el problema del logaritmo discreto en curvas elípticas sea computacionalmente difícil. El algoritmo de Shor rompe esa suposición en una computadora cuántica lo bastante potente. Consulta Bitcoin poscuántico para ver el marco de migración.

Ideas clave

  • Método basado en curvas elípticas para firmar transacciones
  • Fue la piedra angular de la seguridad criptográfica de Bitcoin
  • Las firmas Schnorr ahora conviven con él y traen ventajas potenciales

Fuentes (7)

Referencias externas (3)

Términos relacionados (5)

Publicado el . No hay correcciones registradas para esta página.

Editar esta página en GitHub