Nivel 5

Firmas Schnorr

La evolución de las firmas digitales en Bitcoin. Más eficientes, más privadas, matemáticamente más elegantes.

Contexto histórico

Las firmas Schnorr fueron inventadas por Claus Schnorr en los años 80 y son matemáticamente más simples que ECDSA. Entonces, ¿por qué Bitcoin empezó con ECDSA?

Cuando Satoshi creó Bitcoin en 2008, las firmas Schnorr estaban bajo patente (expiró en 2008). ECDSA no tenía este problema. Además, ECDSA tenía implementaciones más maduras y probadas en el momento.

Con Taproot (activado en noviembre 2021, bloque 709.632), Bitcoin adoptó firmas Schnorr mediante BIP 340 para las transacciones que usan direcciones bc1p (P2TR).

Ventajas sobre ECDSA

Linealidad

La propiedad más importante: las firmas Schnorr son lineales. Esto significa que múltiples firmas pueden agregarse en una sola.

En un multisig 3-de-3 con ECDSA, necesitas incluir 3 firmas separadas en la transacción. Con Schnorr, las 3 firmas se combinan matemáticamente en una sola firma que ocupa el mismo espacio que una firma individual.

Resultado: menor tamaño de transacción (menores fees) y mayor privacidad (un multisig parece una transacción normal de una sola firma).

Seguridad demostrable

La seguridad de Schnorr se reduce formalmente al problema del logaritmo discreto: si puedes romper Schnorr, puedes resolver el logaritmo discreto, y viceversa.

ECDSA no tiene una reducción de seguridad tan limpia. Funciona, pero la prueba matemática de su seguridad es menos elegante.

Verificación por lotes

Verificar muchas firmas Schnorr simultáneamente es más eficiente que verificarlas una por una. Esto beneficia a los nodos que validan bloques con muchas transacciones.

Firmas más pequeñas

Una firma Schnorr ocupa 64 bytes. Una firma ECDSA en formato DER típicamente ocupa 71-72 bytes.

Cómo funciona (simplificado)

Para firmar un mensaje m con clave privada d:

  1. Elegir nonce aleatorio k
  2. Calcular R = k · G (punto en la curva)
  3. Calcular e = hash(R || P || m) donde P es la clave pública y || es concatenación
  4. Calcular s = k + e · d

La firma es el par (R, s), donde R es un punto (representado por su coordenada x) y s es un escalar.

La verificación comprueba que s · G = R + e · P.

La diferencia clave con ECDSA: el cálculo de s es una simple suma, no una división modular. Esta simplicidad es lo que permite la agregación.

MuSig2: firmas multisig agregadas

MuSig2 es un protocolo que permite a múltiples firmantes crear una firma Schnorr agregada en dos rondas de comunicación.

El flujo:

  1. Cada participante genera y comparte un nonce público
  2. Se calcula un nonce agregado
  3. Cada participante calcula su firma parcial
  4. Las firmas parciales se suman para obtener la firma final

El resultado es una firma que parece exactamente igual a una firma de una sola persona. Un observador externo no puede distinguir si la transacción fue firmada por una persona o por un comité de diez.

BIP 340: Schnorr en Bitcoin

BIP 340 define exactamente cómo Bitcoin implementa Schnorr:

  • Usa la curva secp256k1 (la misma que ECDSA)
  • Las claves públicas se representan con 32 bytes (solo coordenada x, se asume y par)
  • Las firmas tienen exactamente 64 bytes
  • El hash usa un esquema de "tagged hashes" para evitar colisiones con otros usos
Schnorr no reemplaza ECDSA completamente

Las direcciones Legacy (1...) y SegWit (bc1q...) siguen usando ECDSA. Solo las direcciones Taproot (bc1p...) usan Schnorr. ECDSA seguirá siendo parte de Bitcoin mientras existan UTXOs en direcciones antiguas.

Implicaciones prácticas

Para usuarios:

  • Las transacciones Taproot son más baratas (firmas más pequeñas)
  • Mejor privacidad en setups multisig
  • Las wallets que soportan Taproot aprovechan Schnorr automáticamente

Para desarrolladores:

  • Nuevas posibilidades de contratos inteligentes
  • Diseños de protocolos más elegantes
  • Menor complejidad en verificación

El futuro

Schnorr habilita mejoras futuras:

  • Cross-input signature aggregation: agregar firmas de diferentes inputs de la misma transacción
  • Protocolos de firma umbral más eficientes
  • Mejores esquemas de custodia colaborativa

La base criptográfica de Schnorr es más flexible que ECDSA, abriendo posibilidades que antes eran imposibles o imprácticas.