- Privada → firma
- Mensaje + firma
- Pública → verifica
Dos claves, funciones distintas
En un esquema de firma, una clave privada permite producir firmas y una clave pública permite verificarlas. La firma depende del mensaje: copiar una firma válida junto a un mensaje distinto no debería producir una autorización válida. Verificar no revela la clave privada. Tampoco demuestra que quien firmó entendiera el mensaje o estuviera libre de engaño.
Tres herramientas que no son sinónimos
Un hash resume bytes en una huella de tamaño fijo. El cifrado transforma información para que solo quien tenga una clave apropiada pueda recuperarla. Una firma permite comprobar una autorización vinculada al mensaje. Firmar un mensaje no lo cifra automáticamente. Publicar su hash tampoco elimina todas las posibilidades de adivinar un mensaje corto.
Una dirección es una representación que ayuda a especificar condiciones de recepción. Su relación con las claves depende del protocolo y del tipo de dirección. No debe explicarse como una clave pública escrita de otra manera en todos los casos.
Un experimento sin fondos
El laboratorio genera claves efímeras ECDSA P-256 mediante Web Crypto, solo al pulsar el botón. No se guardan, no se exporta la clave privada y desaparecen al reiniciar o cerrar la página. Es una demostración genérica de firmas, no una wallet ni el algoritmo exacto de Bitcoin.
Firma un mensaje de juguete y cambia una letra. La verificación del mensaje nuevo falla. Ese resultado no dice nada sobre saldo: tener autoridad para firmar y tener una salida disponible para gastar son comprobaciones diferentes.
El secreto necesita una política de recuperación
Perder una clave sin recuperación puede impedir autorizar futuros movimientos. Copiarla a otro lugar amplía los lugares que debes proteger. Una frase de recuperación merece el mismo cuidado que las claves que permite derivar. Nunca la pegues en una web educativa, un chat de soporte o una oferta de premio. No necesitamos ninguna clave real para aprender.
Pon la idea a prueba en el laboratorio ↗
Comprueba tu idea.
Elige primero. La explicación aparece después.
Un paso más: profundización
Bitcoin utiliza firmas secp256k1 y, según el tipo de gasto, ECDSA o Schnorr. Nuestro P-256 sirve para ilustrar la relación entre mensaje y firma, sin reproducir un gasto Bitcoin.
Fuentes y siguiente paso.
- Transactions · Developer Guide · Bitcoin Developer Documentation
- SubtleCrypto: sign() · Mozilla / MDN