Las firmas digitales desempeñan un papel fundamental en la seguridad de las criptomonedas. Aquí explicamos su papel en la autenticación y cómo la criptografía dio forma a la criptomoneda.
¿Qué es una firma digital?
Si alguien quiere demostrar que un mensaje ha sido creado por él, puede crear una firma digital en el mensaje para que otros puedan verificarlo.
Los esquemas de firma digital suelen utilizar criptosistemas asimétricos (como RSA o ECC) y funciones hash. Consulta este artículo sobre criptografía si quieres saber más sobre estos términos.
Las firmas digitales se utilizan hoy en día ampliamente en la industria empresarial y financiera, por ejemplo para autorizar pagos bancarios, intercambiar documentos electrónicos firmados, firmar transacciones en los sistemas públicos de cadenas de bloques, firmar contratos digitales y en muchos otros escenarios.
Cómo funcionan las firmas digitales
Volvamos al amor clandestino entre Alice y Bob, nuestra pareja criptográfica favorita que aparece en muchos de nuestros artículos.
Alice finalmente quiere romper con Bob ya que no puede tolerar más su amor secreto. Ha escrito el mensaje “Let’s break up” (que se tradujo como “9394” en el “Nerd Planet”). Teme que Bob pueda pensar que el mensaje no procede realmente de ella (tal vez la mujer de Bob descubrió su relación y robó la cuenta de Alice para escribir el mensaje). Por lo tanto, le gustaría adjuntar el mensaje junto con una firma digital y enviárselo a Bob para que éste crea que el mensaje procede de ella.
Con el ejemplo anterior, esperamos que el lector pueda entender para qué se utilizan las firmas digitales y por qué pueden garantizar que un mensaje procede realmente del remitente del mensaje. Las firmas digitales combinan inteligentemente la criptografía simétrica y asimétrica con las funciones hash, y la invención ha permitido una amplia gama de aplicaciones que requieren una comunicación segura y la verificación de la identidad.
Uso de la criptografía en las criptomonedas
Las criptomonedas se denominan “cripto” porque utilizan la criptografía. En esta sección, utilizando bitcoin como ejemplo, veremos cómo funciona.
¿Cómo funcionan las transacciones con bitcoin?
Tenemos un 101 sobre cómo funciona bitcoin y sus transacciones. Aquí vamos más allá para ver lo que sucede dentro de las transacciones para entender el uso de la criptografía en bitcoin.
La salida en una transacción contiene dos campos:
1) un campo de valor para el importe de la transferencia en satoshis
2) un script pubkey para indicar qué condiciones deben cumplirse para que esos satoshis puedan seguir gastándose
Las siguientes figuras ayudan a ilustrar el flujo de trabajo de Alice para enviar a Bob una transacción que Bob utiliza posteriormente para gastar dicha transacción. Tanto Alice como Bob utilizarán la forma más común del tipo de transacción estándar Pay-To-Public-Key-Hash (P2PKH). P2PKH permite a Alice gastar satoshis en una dirección Bitcoin típica y a Bob gastar esos satoshis utilizando un simple par de claves criptográficas.
Más tarde, Bob decide gastar el UTXO de Alice:
Minería Bitcoin y prueba de trabajo para verificar las transacciones
Los bitcoins se crean a través de la minería. Cuando se crea una transacción, se marca como “sin confirmar”. Los mineros recopilan un conjunto de transacciones no confirmadas e intentan crear un bloque que contenga transacciones. Para crear un bloque en la cadena de bloques, el minero debe resolver un complejo problema criptográfico cuya entrada es el bloque y cuya solución es una secuencia de números dentro del bloque, denominada nonce. Este proceso de encontrar el nonce se denomina minería de bitcoins y es un proceso competitivo en el que participan muchos mineros de todo el mundo.
Hay muchos parámetros fijos para el bloque en bitcoin, como el hash del bloque anterior, las características de las transacciones en el bloque actual, etc. Sólo hay un parámetro que se puede cambiar, llamado nonce. El trabajo del minero es encontrar el nonce que puede hacer que el bloque candidato satisfaga el objetivo de dificultad. La única manera de encontrar el nonce es probar diferentes valores posibles para el nonce, calcular el hash del nuevo bloque (último bloque hash id | bloque con transacciones | nonce, donde ‘|’ significa concatenar), y comprobar si el hash satisface el objetivo de dificultad (obtener una cadena que tenga un cierto número de ceros delante).
La tarea del minero es la siguiente:
La prueba de trabajo de Bitcoin utiliza dos hashes SHA-256 sucesivos y originalmente requería que al menos los primeros 32 de los 256 bits del hash fueran cero. Sin embargo, la red bitcoin restablece periódicamente el nivel de dificultad para mantener el ritmo medio de creación de bloques en 10 minutos.
La criptomoneda en la criptodivisa
Esperamos que ahora entienda cómo funcionan las firmas digitales como parte de la criptografía y, por supuesto, por qué la criptografía se llama “cripto”. Desde sus sistemas de seguridad profundamente entretejidos y cuidadosamente desarrollados hasta su capacidad para garantizar que los destinatarios puedan confiar en el sistema, la criptografía es un sistema increíblemente fascinante, maleable -en uso, no en seguridad- y futurista, con tantas posibilidades de avance. Bitcoin es sólo el principio.
Si desea profundizar en el tema de la criptografíaLea también nuestro artículo al respecto. En él se repasa la evolución de la criptografía, su funcionamiento, sus sólidos sistemas de seguridad y se abordan sus posibles usos.
Referencias
1. Alrammahi, M & Kaur, H. (2014). Desarrollo del algoritmo criptográfico Advanced Encryption Standard (AES) para el protocolo de seguridad Wi-Fi. 10.13140/RG.2.2.20993.97124.
2. Cifrados simétricos (s.f.). Obtenido de https://www.crypto-it.net/eng/symmetric/index.html
3. Menezes, A. J., C., V. O. P., & Vanstone, S. A. (2001). Cifrado de flujos. En Handbook of applied cryptography (pp.191- 216). Boca Ratón: CRC Press.
4. Cifrados simétricos (s.f.), Obtenido de https://www.crypto-it.net/eng/symmetric/index.html
5. Kessler G.C (Nov 2019), An Overview of Cryptography. Obtenido de https://www.garykessler.net/library/crypto.html#types
6. Lane Wagner (junio de 2018). (Muy) Criptografía básica de curva elíptica. Obtenido de https://blog.goodaudience.com/very-basic-elliptic-curve-cryptography-16c4f6c349ed
7. Cryptography Hash functions (n.d.) Obtenido de https://www.tutorialspoint.com/cryptography/cryptography_hash_functions.htm