Una firma digital es la prueba criptográfica de que un mensaje lo aprobó el poseedor de una clave privada concreta. En Bitcoin, el mensaje es una transacción, y la firma demuestra que tienes permiso para gastar las monedas.
Mejor que una firma manuscrita
Una firma en papel se ve igual en cada documento, así que se puede copiar. Una firma digital es distinta para cada mensaje. Se calcula a partir de la clave privada y de los datos exactos de la transacción. Cambia un satoshi o una dirección y la firma queda inválida. Copiarla a otra transacción tampoco funciona.
Firmar y verificar
Firmar: tu billetera combina los datos de la transacción con tu clave privada (y un número aleatorio fresco) para producir la firma.
Verificar: cualquier nodo puede comprobar la firma con tu clave pública. Si la matemática cuadra, la transacción está autorizada. En ningún momento se revela la clave privada.
Los algoritmos
Bitcoin usó originalmente ECDSA sobre la curva secp256k1. Desde la actualización Taproot de 2021 también admite firmas Schnorr. Las firmas Schnorr son más simples, tienen una prueba de seguridad bajo supuestos estándar (BIP340) y se pueden combinar. Un gasto multifirma puede entonces parecer un pago ordinario de una sola firma on-chain, lo que ahorra espacio y mejora la privacidad.
Un error famoso
Las firmas exigen un número aleatorio fresco cada vez. En 2010, la PlayStation 3 de Sony reutilizó el mismo número, y los hackers pudieron recuperar su clave privada de firma. Algunas billeteras tempranas de Bitcoin con aleatoriedad débil tuvieron el mismo problema y les robaron las monedas. Las billeteras modernas derivan ese número de forma determinista a partir de la clave y el mensaje (RFC 6979) para evitar el riesgo.
Las firmas son la razón por la que Bitcoin no necesita cuentas ni contraseñas. La matemática, no un banco, aprueba tu gasto.