Descripción general
Una firma digital en Bitcoin es una prueba criptográfica de que el titular de una clave privada ha autorizado una transacción específica. Las firmas son el mecanismo fundamental que previene el gasto no autorizado — sin una firma válida que corresponda a la clave pública (o hash de clave) con la que está bloqueada una salida, el bitcoin no puede moverse. Bitcoin admite dos esquemas de firma: ECDSA (Algoritmo de Firma Digital de Curva Elíptica), utilizado desde el inicio de Bitcoin, y firmas Schnorr, introducidas con la actualización Taproot.
Cómo funcionan las firmas
Proceso de Firma:
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Datos de la │ │ Clave privada│ │ Firma │
│ transacción │────>│ + algoritmo │────>│ (r, s) para │
│ (mensaje a │ │ de firma │ │ ECDSA o │
│ firmar) │ └──────────────┘ │ (R, s) para │
└──────────────┘ │ Schnorr │
└──────┬───────┘
│
Proceso de Verificación: │
▼
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Datos de la │ │ Clave pública│ │ ¿Válida? │
│ transacción │────>│ + firma │────>│ SÍ / NO │
│ │ │ + verificar │ │ │
└──────────────┘ │ algoritmo │ └──────────────┘
└──────────────┘
Propiedad clave: Cualquiera puede verificar, solo el titular de la clave puede firmar
ECDSA vs. Schnorr
| Propiedad | ECDSA | Schnorr |
|---|---|---|
| En uso desde | 2009 (lanzamiento de Bitcoin) | 2021 (activación de Taproot) |
| Tamaño de firma | 71-73 bytes (DER) | 64 bytes (fijo) |
| Agregación | No soportada | Soportada (MuSig) |
| Verificación por lotes | Limitada | Eficiente |
| Tipos de salida | P2PKH, P2WPKH, P2SH | Solo P2TR |
Qué cubre una firma
Una firma no firma ciegamente toda la transacción. La bandera sighash especifica qué partes de la transacción se incluyen en el mensaje firmado. El SIGHASH_ALL predeterminado se compromete con todas las entradas y salidas, asegurando que ninguna parte de la transacción pueda modificarse después de firmar.
Las firmas en la transacción
Antes de SegWit, las firmas se colocaban en el campo scriptSig de cada entrada. Con SegWit, las firmas se mueven a la sección de testigo, que está segregada de los datos de la transacción usados para calcular el ID de transacción. Esta separación corrigió la maleabilidad de transacciones y habilitó el descuento de testigo.
Multifirma y firmas agregadas
La multifirma tradicional requiere múltiples firmas ECDSA separadas en cadena (por ejemplo, multisig 2-de-3 necesita 2 firmas y 3 claves públicas). Las firmas Schnorr habilitan la agregación de claves MuSig, donde múltiples firmantes colaboran para producir una única firma agregada que es indistinguible de una firma de clave única en cadena. Esto ahorra espacio y mejora la privacidad.
Concepto erróneo común
Una firma no cifra nada. No es un secreto — las firmas son públicamente visibles en cada transacción Bitcoin en la blockchain. La propiedad de seguridad es que solo el titular de la clave privada puede crear una firma válida, pero una vez creada, cualquiera puede verificarla. Revelar una firma no compromete la clave privada.