Skip to main content

Firma Schnorr | Bitcoin Glossary | Mapping Bitcoin

Firma Schnorr

Criptografía

Also known as: BIP340, Schnorr

Esquema de firma más eficiente que ECDSA, introducido con Taproot. Permite agregar firmas, mejorando privacidad y reduciendo el tamaño de transacciones.

Descripción general

Las firmas Schnorr, activadas en Bitcoin a través del soft fork Taproot en noviembre de 2021 (especificadas en BIP340), son un esquema de firma digital que ofrece ventajas significativas sobre las firmas ECDSA originales de Bitcoin. Inventado originalmente por Claus-Peter Schnorr en 1989, el esquema estuvo bajo patente hasta 2008 — irónicamente, justo antes de que se creara Bitcoin. La propiedad matemática clave que hace valiosas las firmas Schnorr para Bitcoin es la linealidad, que permite combinar múltiples firmas en una sola firma agregada.

Schnorr vs. ECDSA

Firma ECDSA:                      Firma Schnorr:
┌────────────────────────┐        ┌────────────────────────┐
│ Componentes: (r, s)    │        │ Componentes: (R, s)    │
│ Tamaño: 71-73 bytes    │        │ Tamaño: 64 bytes (fijo)│
│ Verificación: Compleja │        │ Verificación: Simple   │
│ Agregación: No         │        │ Agregación: Sí         │
│ Verif. por lotes: Lim. │        │ Verif. por lotes: Sí   │
└────────────────────────┘        └────────────────────────┘

Ecuación de Firma:
  ECDSA:   s = k⁻¹(z + r·d) mod n    (no lineal)
  Schnorr: s = k + e·d mod n          (¡lineal!)
                    ▲
                    └── Esta linealidad permite la agregación

Agregación de claves (MuSig)

La linealidad de las firmas Schnorr significa que múltiples partes pueden combinar sus claves públicas individuales en una única clave pública agregada y producir colaborativamente una única firma agregada. En cadena, esto luce idéntico a un gasto de clave única:

Comparación de Multifirma 3-de-3:

Con ECDSA (multisig P2SH):
  En cadena: 3 claves públicas + 3 firmas
  Tamaño: ~297 bytes de datos de testigo

Con Schnorr + MuSig:
  En cadena: 1 clave agregada + 1 firma agregada
  Tamaño: ~64 bytes de datos de testigo

  ¡Indistinguible de una transacción de firmante único!

Esto tiene profundas implicaciones para la privacidad — un gasto cooperativo MuSig en una salida P2TR luce exactamente como un simple pago de clave única para cualquier observador externo.

Verificación por lotes

Las firmas Schnorr admiten la verificación por lotes eficiente, donde múltiples firmas pueden verificarse juntas más rápido que verificar cada una individualmente. Esto es particularmente valioso para los nodos que procesan bloques enteros de transacciones, ya que puede reducir significativamente el costo computacional de la validación de bloques.

Por qué Bitcoin usó inicialmente ECDSA

Cuando Satoshi Nakamoto creó Bitcoin en 2008, la patente de la firma Schnorr había caducado recientemente, y ECDSA era el estándar establecido y bien probado con amplio soporte de bibliotecas. La comunidad Bitcoin pasó años diseñando y probando la actualización Taproot para introducir las firmas Schnorr de manera segura y con plena compatibilidad retroactiva.

Concepto erróneo común

Las firmas Schnorr no reemplazan a ECDSA en Bitcoin. Ambos esquemas de firma coexisten. ECDSA todavía se usa para salidas legacy, P2PKH y SegWit v0 (P2WPKH). Schnorr se usa exclusivamente en salidas Taproot (P2TR). Las direcciones y transacciones existentes siguen funcionando exactamente como antes.