Curso 1: Fundamentos de Blockchain y Bitcoin | Módulo 3 de 12

Criptografía para Blockchain

Hash, Merkle y firmas digitales: los pilares de la seguridad blockchain

SHA-256 Merkle Tree ECDSA
Piensa en un sello de cera medieval: Cuando un mensajero entregaba un pergamino, el sello de cera garantizaba que nadie lo había abierto antes. El hash es ese sello digital: cualquier cambio en el mensaje rompe el sello y todos lo detectan.

¿Qué aprenderás?

Intuición: hash

Un hash es como una batidora: pongas lo que pongas dentro (una naranja, un texto, una película), siempre obtienes un "batido" del mismo tamaño, pero es imposible volver a la fruta original. Además, si cambias un solo ingrediente, el resultado es completamente diferente.

SHA-256 produce siempre 64 caracteres hexadecimales (256 bits), sin importar si el input es "Hola" o la Enciclopedia Británica completa.

Paso a paso: hash

1. Tomas cualquier dato (texto, archivo, transacción). 2. Aplicas la función SHA-256. 3. Obtienes un string de 64 caracteres. 4. Cambias una coma del original. 5. El hash nuevo es radicalmente diferente al anterior (efecto avalancha). 6. No importa cuánto intentes, no puedes reconstruir el original desde el hash.

Ejemplo concreto: Merkle

Imagina que un bloque tiene 500 transacciones. Verificar cada una requeriría enorme ancho de banda. El árbol Merkle las agrupa por pares y las hashea hasta una sola raíz. Con solo guardar la raíz en el bloque, puedes demostrar que una transacción existe sin descargar las 500.

Es como tener un árbol genealógico: no necesitas conocer a todos tus primos lejanos para saber que tu abuelo es quien es.

Errores comunes

"Los hash son encriptación": No. La encriptación es bidireccional (se puede descifrar con la clave correcta). El hash es unidireccional: no existe "deshash".

"Si dos entradas dan el mismo hash, hay un problema": Se llama "colisión". En SHA-256 es tan improbable (1 en 2^256) que en la práctica es imposible.

"Mi clave pública es mi dirección": No exactamente. Las direcciones Bitcoin son un hash de la clave pública, añadiendo una capa extra de seguridad.

Firmas digitales

ECDSA (Elliptic Curve Digital Signature Algorithm) permite que Alice firme un mensaje con su clave privada y cualquiera pueda verificar la firma usando su clave pública. Es como un sello personal único que solo Alice puede crear, pero todos pueden verificar.

Matemáticamente, se basa en la dificultad de resolver el logaritmo discreto en curvas elípticas. Es prácticamente imposible derivar la clave privada desde la pública.

Importancia en blockchain

Sin criptografía, blockchain sería solo una base de datos compartida. Los hash garantizan inmutabilidad (encadenamiento de bloques). Los árboles Merkle permiten nodos ligeros (SPV). Las firmas digitales prueban propiedad de UTXOs.

Estos tres pilares criptográficos son lo que hace a blockchain un sistema de "confianza minimizada" donde las matemáticas reemplazan a los intermediarios.

Ejemplo paso a paso: Verificar una transacción con Merkle

1
Obtener la transacción

Alice quiere verificar que su transacción T está incluida en el bloque #800,000. Tiene el Merkle Root del bloque: 0x3a9f...c81d.

2
Calcular el hash de T

Alice aplica SHA-256 a su transacción: hash(T) = 0x8b2e...f71a. Este será el punto de partida en el árbol.

3
Obtener el hash hermano

Alice pide a un nodo completo el hash de la transacción hermana de T (T') en el árbol: hash(T') = 0x4c1d...a93f. Combina ambos: hash(hash(T) + hash(T')).

4
Subir por el árbol

Repite el proceso: para cada nivel del árbol, obtiene el hash hermano y combina. Cada paso reduce el número de nodos a la mitad. En un bloque de 1000 transacciones, solo necesita ~10 hashes.

5
Comparar con la raíz

El hash final obtenido debe ser exactamente igual al Merkle Root del bloque. Si coincide, la transacción está verificada sin necesidad de descargar las otras 999 transacciones.

Hash SHA-256 en vivo

Escribe cualquier texto y observa cómo cambia su huella digital (hash).

---

Árbol Merkle

Cuatro transacciones se hashean por pares hasta llegar a una raíz única (Merkle Root).

Firma Digital ECDSA

En blockchain tienes una clave privada (secreta) y una clave pública (compartible). La privada firma, la pública verifica.

Clave privada:
0x3a7b...f91c
Clave pública:
0x8d2e...5c4a

Tu clave privada firma transacciones; cualquiera con tu clave pública puede verificar que la firma es tuya sin conocer tu secreto.

Comprueba lo aprendido

Resumen del módulo

Explora las herramientas criptográficas y responde el quiz para ganar tu insignia.