Inicio Arquitectura técnica Firmas Schnorr

Firmas Schnorr

Esquema de firma digital activado en Bitcoin con Taproot (BIP-340) que ofrece linearidad matemática, pruebas de seguridad más simples y agregación de firmas, permitiendo multisig más eficiente y privado.

Qué son las firmas Schnorr

Las firmas Schnorr son un esquema de firma digital propuesto por el criptógrafo alemán Claus-Peter Schnorr a finales de los años 80. Se construyen sobre el problema del logaritmo discreto (el mismo que sustenta ECDSA) pero con una estructura matemática más elegante: linealidad, una prueba de seguridad más limpia y ausencia de maleabilidad intrínseca.

Durante décadas, la comunidad criptográfica consideró Schnorr el esquema "ideal" por su simplicidad. Sin embargo, Bitcoin nació en 2008-2009 usando ECDSA sobre la curva secp256k1. La razón principal no fue técnica sino legal.

Por qué Bitcoin no usó Schnorr desde el inicio

El algoritmo de Schnorr estuvo protegido por la patente US 4,995,082, presentada en 1989 y expirada en febrero de 2008, pocos meses antes de que Satoshi publicara el whitepaper. En 2008 todavía no existía una implementación estándar auditada de Schnorr lista para producción. ECDSA, en cambio, era un estándar NIST con bibliotecas maduras. Satoshi eligió la opción pragmática.

Schnorr vs ECDSA: las diferencias que importan

1. Linearidad

Una firma Schnorr tiene la forma s = k + e·x, donde k es un nonce aleatorio, e es el hash del mensaje combinado con el punto público del nonce, y x es la clave privada. Esta linealidad significa que dos firmas pueden sumarse algebraicamente para producir una firma válida sobre la suma de sus claves públicas. ECDSA, en cambio, contiene una inversión modular (s = k⁻¹(z + r·x)) que rompe cualquier intento directo de agregación.

2. Prueba de seguridad

Schnorr admite una demostración de seguridad relativamente simple en el modelo del oráculo aleatorio, asumiendo únicamente la dureza del logaritmo discreto. La prueba formal de ECDSA es considerablemente más intrincada y depende de suposiciones adicionales.

3. No maleabilidad

Una firma ECDSA (r, s) tiene un gemelo válido (r, -s mod n). Schnorr, tal como se implementa en BIP-340, produce firmas únicas para cada par (mensaje, clave), eliminando esta clase de maleabilidad por diseño.

4. Tamaño

Una firma Schnorr en BIP-340 ocupa 64 bytes fijos, frente a los 70-72 bytes promedio de una firma ECDSA codificada en DER. El ahorro se nota especialmente en transacciones multisig.

Activación en Bitcoin: BIP-340 y Taproot

Schnorr llegó a Bitcoin en el soft fork de Taproot, activado en noviembre de 2021. Tres BIPs definen el paquete:

  • BIP-340: esquema Schnorr sobre secp256k1, con claves públicas de solo coordenada X (32 bytes) y firmas de 64 bytes.
  • BIP-341: define Taproot, el nuevo tipo de salida que usa Schnorr.
  • BIP-342: define Tapscript, el lenguaje de script de Taproot.

BIP-340 usa nonces determinísticos, fuerza puntos con coordenada Y par para obtener unicidad, y define tagged hashes para separar dominios criptográficos y evitar ataques de colisión entre contextos.

Agregación de firmas: MuSig y MuSig2

La propiedad más transformadora de Schnorr es que n firmantes pueden producir una sola firma agregada que valida contra una sola clave pública agregada. Para un observador externo, una multisig 3-de-3 con Schnorr es indistinguible de una firma individual.

  • MuSig (2018): primer esquema seguro de agregación. Requiere 3 rondas de comunicación.
  • MuSig2 (2020): reduce la interacción a 2 rondas y permite precomputar los nonces de la primera ronda, facilitando flujos asíncronos y hardware wallets. Es el estándar práctico actual.

Un detalle crítico: la agregación ingenua de claves públicas es vulnerable al ataque de clave deshonesta, donde un firmante malicioso elige su clave como combinación de otras para controlar unilateralmente la firma. MuSig y MuSig2 lo evitan con coeficientes derivados del hash del conjunto total de claves.

Threshold signatures con FROST

MuSig2 es un esquema n-de-n. Para esquemas t-de-n (por ejemplo, 2-de-3 con cualquier subconjunto), existe FROST (Flexible Round-Optimized Schnorr Threshold), que genera una firma Schnorr válida con solo t participantes, apareciendo on-chain como una firma simple. FROST está en proceso de estandarización con implementaciones en producción para custodios corporativos.

Impacto en comisiones y privacidad

  • Comisiones menores: una multisig tradicional 2-de-3 incluye 3 claves públicas y 2 firmas en el witness. Con Taproot + MuSig2 se gasta una única firma de 64 bytes y una clave de 32 bytes.
  • Privacidad por uniformidad: el multisig es indistinguible del single-sig on-chain, rompiendo la heurística de detección de multisig.
  • Contratos más expresivos: Schnorr habilita adaptor signatures (base de pagos atómicos off-chain) y PTLCs para Lightning más privado.
La elegancia de Schnorr no es solo estética: su linealidad es la puerta de entrada a toda una generación de protocolos criptográficos que Bitcoin no podía construir con ECDSA.

Errores habituales

  • Creer que Schnorr reemplaza a ECDSA en toda la red: coexisten, y solo las salidas Taproot (P2TR) usan Schnorr.
  • Pensar que sumar dos claves públicas directamente basta para agregar firmas; sin MuSig/MuSig2 esto abre el ataque de clave deshonesta.
  • Confundir agregación de firmas (MuSig, muchas claves → una firma) con firmas threshold (FROST, t-de-n firmantes).
  • Asumir que Bitcoin no usó Schnorr por razones técnicas; fue principalmente por la patente vigente hasta 2008 y la falta de implementaciones maduras.
  • Suponer que Taproot y Schnorr son lo mismo: Taproot es el tipo de salida y el árbol de scripts, Schnorr es el esquema de firma que Taproot habilita.

Conceptos relacionados

Fuentes primarias

  • BIP-340: Schnorr Signatures for secp256k1 (Wuille, Nick, Ruffing, 2020)
  • BIP-341: Taproot: SegWit version 1 spending rules
  • Maxwell, Poelstra, Seurin, Wuille — "Simple Schnorr Multi-Signatures with Applications to Bitcoin" (MuSig, 2018)
  • Nick, Ruffing, Seurin — "MuSig2: Simple Two-Round Schnorr Multi-Signatures" (2020)
  • Komlo, Goldberg — "FROST: Flexible Round-Optimized Schnorr Threshold Signatures" (2020)