Firmas digitales en Bitcoin
¿Qué demuestra una firma digital?
Una firma manuscrita demuestra que firmaste un documento, pero puede falsificarse. Una firma digital no: está vinculada matemáticamente tanto al firmante como al documento exacto que firmó. Cualquier modificación posterior al documento invalida la firma automáticamente.
En Bitcoin, una firma digital cumple tres funciones simultáneas: autenticación (demuestra que quien firmó posee la clave privada), integridad (la transacción no fue alterada después de firmarse) y no repudio (quien firmó no puede negar haberlo hecho). Todo esto sin que la clave privada se revele en ningún momento.
ECDSA: el esquema original de Bitcoin
Bitcoin usó desde su origen el algoritmo ECDSA (Elliptic Curve Digital Signature Algorithm) sobre la curva secp256k1. Para crear una firma, la billetera combina los datos de la transacción con la clave privada y un número aleatorio temporal llamado nonce criptográfico. El resultado es un par de valores (r, s) que constituyen la firma. Cualquier nodo puede tomar esa firma, la clave pública del firmante y los datos de la transacción, y verificar matemáticamente su validez sin conocer la clave privada.
Punto crítico: si el nonce se reutiliza en dos firmas distintas, la clave privada puede calcularse matemáticamente a partir de ambas firmas. Este fue un vector de ataque real en los primeros años de Bitcoin. Las implementaciones modernas usan generación determinista del nonce (RFC 6979) para eliminar este riesgo.
Sin firma válida, el UTXO no se mueve
En Bitcoin, los fondos existen como UTXOs (salidas de transacción no gastadas). Cada UTXO está bloqueado por un script que define las condiciones para gastarlo. La condición más común: «proporciona una firma válida correspondiente a esta clave pública». Sin esa firma, el UTXO es inamovible. No hay administrador que lo desbloquee ni proceso de recuperación. Cada nodo verifica independientemente cada firma: la verificación distribuida hace innecesario confiar en ningún intermediario.
Firmas Schnorr: la mejora de Taproot
Con la activación de Taproot en noviembre de 2021, Bitcoin incorporó un segundo esquema: Schnorr (BIP 340). Sus ventajas sobre ECDSA:
- Linealidad: varias firmas pueden sumarse matemáticamente para producir una sola firma válida. Clave para transacciones con múltiples firmantes.
- Agregación de claves: en un esquema multifirma, todas las claves públicas se combinan en una sola. La firma resultante es indistinguible de una firma individual: mejora la privacidad y reduce el tamaño de la transacción on-chain.
- Verificación por lotes: más eficiente para los nodos que validan bloques completos.
ECDSA sigue siendo completamente válido. Taproot añadió Schnorr como opción para las transacciones que usan el nuevo tipo de salida (P2TR), no lo reemplazó.
El flujo completo de una transacción firmada
Para ver cómo encaja todo, aquí está el proceso de principio a fin:
- Construcción: la billetera define qué UTXOs gasta, a qué direcciones envía y cuánto destina a comisiones.
- Firma: la billetera genera una firma para cada input. En una hardware wallet, esto ocurre dentro del dispositivo sin que la clave privada toque el ordenador.
- Difusión: la transacción firmada se envía a la red y entra en la mempool.
- Verificación: cada nodo verifica de forma independiente que todas las firmas sean válidas y que los UTXOs no hayan sido gastados previamente.
- Confirmación: un minero incluye la transacción en un bloque. A partir de ahí, acumula confirmaciones.
Errores habituales
- Creer que la firma digital revela la clave privada (la firma demuestra su posesión sin exponerla nunca)
- Pensar que ECDSA ya no se usa en Bitcoin (sigue siendo válido; Taproot añadió Schnorr como opción, no como reemplazo)
- Confundir el nonce criptográfico de la firma con el nonce del bloque en minería (son conceptos distintos: uno protege la clave privada, el otro es parte de la prueba de trabajo)
- Subestimar el riesgo del nonce reutilizado: dos firmas con el mismo nonce exponen la clave privada por completo
Conceptos relacionados
Fuentes primarias
- Whitepaper de Bitcoin, Sección 2
- BIP 340 (Schnorr Signatures for secp256k1)
- RFC 6979 (Deterministic ECDSA)
- Mastering Bitcoin, A. Antonopoulos, Cap. 6