En este artículo
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. Linealidad
Una firma Schnorr tiene la forma s = k + e·x, donde k es el nonce secreto, e es el reto (un hash del punto público del nonce, la clave pública y el mensaje) y x es la clave privada. Esta linealidad es la que permite que varios firmantes produzcan juntos una sola firma válida para una clave agregada. Pero dos firmas hechas por separado no se suman sin más: aunque sean sobre el mismo mensaje, cada una tiene su propio nonce y su propio reto e, así que la suma no es una firma válida para la suma de las claves. Hace falta acordar antes un punto de nonce común (la suma de los de cada uno; cada k sigue siendo secreto), y con él un reto común, y eso es lo que organiza un protocolo como MuSig2. 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, no es maleable: su seguridad (SUF-CMA) impide fabricar otra firma válida a partir de una existente. Eso no la hace única: el mismo mensaje admite muchas firmas válidas.
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 sobre todo en transacciones multifirma.
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 deriva el nonce de la clave, el mensaje y unos datos auxiliares que recomienda que sean aleatorios, fuerza la coordenada Y par de los puntos para poder guardarlos con solo la X, 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 multifirma 3 de 3 con MuSig2, gastada por la clave, no se distingue 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, aunque guardarlos más tiempo obliga a extremar el cuidado para no reutilizarlos. 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 falsa (rogue key), 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 en cadena como una firma simple. Su versión para firmas BIP-340 es el borrador BIP-445, que a 7 de octubre de 2026 seguía sin fusionar (PR #2070 en bitcoin/bips). Detalle en MuSig2 y FROST.
Impacto en comisiones y privacidad
- Comisiones menores: una multifirma 2 de 3 en P2WSH publica en el witness 3 claves públicas y 2 firmas, unos 104,5 vB por entrada. Un gasto por la clave de Taproot, con MuSig2 (n de n) o con FROST (t de n), lleva una sola firma de 64 bytes, unos 57,5 vB. Un 2 de 3 con MuSig2 solo lo consigue si firma el par de la clave interna; si firma otro, revela una hoja.
- Privacidad por uniformidad: un gasto por la clave con MuSig2 o FROST no se distingue en cadena de uno con una sola clave. Un gasto por script muestra la hoja que se gasta.
- 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 falsa.
- 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)
- BIP-327: MuSig2 for BIP340-compatible Multi-Signatures (Nick, Ruffing, Jin)
- BIP-445 (borrador): FROST Signing Protocol for BIP340 Signatures, PR #2070 en bitcoin/bips, consultado el 7 de octubre de 2026