Nivel 3

Firma digital

El mecanismo que prueba que eres el dueño sin revelar tu secreto. Cómo se autorizan las transacciones.

El problema fundamental

Tienes bitcoin en una dirección. Quieres enviarlos a otra persona. ¿Cómo demuestra la red que tú, y no un impostor, estás autorizando la transacción?

En el sistema bancario tradicional, el banco verifica tu identidad y autoriza las transferencias. En Bitcoin no hay banco. La red está formada por miles de nodos que no te conocen y no confían en ti.

La firma digital resuelve esto: una prueba matemática de que controlas la clave privada asociada a una dirección, sin revelar la clave privada misma.

Cómo funciona (sin matemáticas complejas)

El proceso de firmar una transacción:

  1. Tu wallet construye la transacción: "Quiero enviar 0.1 BTC desde la dirección X a la dirección Y"
  2. Tu wallet usa tu clave privada para calcular una firma digital sobre los datos de la transacción
  3. La firma se incluye en la transacción junto con tu clave pública
  4. Cualquier nodo puede verificar que la firma es válida usando tu clave pública
  5. Si la firma es válida, la transacción es legítima. Si no, se rechaza.

La magia está en que la firma solo puede generarse con la clave privada, pero puede verificarse con la clave pública. Nadie que vea la firma puede deducir tu clave privada.

La analogía del cheque

Imagina que firmas un cheque. Tu banco conoce tu firma y puede verificar que es auténtica. Pero nadie puede replicar tu firma solo con verla en el cheque.

En Bitcoin:

  • El "cheque" es la transacción
  • Tu "firma" es la firma digital
  • El "banco" son todos los nodos de la red que verifican

La diferencia es que en Bitcoin la verificación es matemática y automática, no depende de un empleado de banco mirando tu rúbrica.

Cada transacción, una firma nueva

No firmas "una vez" y ya está autenticado. Cada transacción que envías requiere una firma nueva, específica para esa transacción.

La firma incorpora los datos de la transacción (destinatario, cantidad, etc.). Si alguien interceptara tu firma e intentara usarla para una transacción diferente, no funcionaría. La firma solo es válida para la transacción exacta que firmaste.

Esto previene ataques de replay: nadie puede "copiar" tu firma de una transacción antigua y usarla para robarte.

Hardware wallets y firmas

Aquí es donde las hardware wallets muestran su valor.

Cuando usas una hardware wallet:

  1. Tu ordenador (con Sparrow u otra wallet de software) construye la transacción
  2. Los datos se envían a la hardware wallet
  3. La hardware wallet muestra en su pantalla los detalles (destinatario, cantidad) para que verifiques
  4. Tú confirmas físicamente en el dispositivo
  5. La hardware wallet firma la transacción internamente, sin exponer la clave privada
  6. Solo la firma (no la clave privada) sale del dispositivo hacia el ordenador
  7. La transacción firmada se envía a la red

En ningún momento la clave privada abandona la hardware wallet. El ordenador nunca la ve, aunque esté infectado con malware.

Algoritmos de firma en Bitcoin

Bitcoin ha usado dos algoritmos de firma:

ECDSA (Elliptic Curve Digital Signature Algorithm): El algoritmo original, usado en direcciones Legacy, SegWit, y P2SH.

Schnorr: Introducido con Taproot en 2021. Más eficiente, permite agregar múltiples firmas en una sola, y habilita funcionalidades avanzadas de privacidad.

Los detalles matemáticos de estos algoritmos se explican en el nivel 5. Para el uso práctico, tu wallet elige automáticamente el algoritmo correcto según el tipo de dirección.

Firmar mensajes (no transacciones)

Además de firmar transacciones, puedes usar tu clave privada para firmar mensajes arbitrarios. Esto prueba que controlas una dirección sin mover fondos.

Casos de uso:

  • Demostrar propiedad de una dirección (por ejemplo, para verificar identidad en algunos servicios)
  • Firmar declaraciones o contratos de forma verificable
  • Prueba de reservas

Sparrow y otras wallets avanzadas permiten firmar y verificar mensajes. Es una funcionalidad de nicho pero útil en ciertos contextos.

Implicaciones de seguridad

Si alguien obtiene tu clave privada, puede firmar transacciones en tu nombre. No hay forma de distinguir una firma "legítima" tuya de una hecha por un ladrón con tu clave.

Por eso la protección de la clave privada es absoluta: no es "una capa de seguridad", es la única capa que importa.

Por otro lado, si mantienes tu clave privada segura (en hardware wallet, bien protegida), nadie puede firmar transacciones por ti. La matemática lo garantiza.