Subpágina · Plan B Program — Clase 6

Árbol de Merkle: Resumen Criptográfico de un Bloque

Miles de transacciones condensadas en 32 bytes. Cómo Bitcoin permite probar que una transacción existe en un bloque sin descargar todo el bloque.

¿Qué es un Árbol de Merkle?

src/consensus/merkle.cpp. Miles de transacciones se condensan en un hash de 32 bytes en la cabecera del bloque. Permite probar que una transacción existe en un bloque.

Árbol binario: cada tx se hashea dos veces (doble SHA256). Pares se concatenan y hashean. Impar: se duplica la última. ComputeMerkleRoot hace el trabajo.

Árbol de Merkle en Bitcoin

Selecciona una transacción para ver su prueba

H(A)BC0AA9
H(B)BD0AAB
H(C)BE0AAD
H(D)BF0AAE
H(AB)6D5F7B
H(CD)FB9F29
Raíz de Merkle
E4E11150

Miles de transacciones condensadas en 32 bytes en la cabecera del bloque. Permite probar inclusión sin descargar todo el bloque.

Cadena de Bloques

Cada cabecera incluye el hash del bloque anterior. Modificar el pasado requiere recalcular toda la cadena. Computacionalmente prohibitivo.

En Bitcoin Core

src/consensus/merkle.cpp — ComputeMerkleRoot

La cabecera de cada bloque (80 bytes) incluye la raíz de Merkle. Con ~2,000–4,000 transacciones por bloque, la raíz representa el compromiso criptográfico de todas ellas. Una SPV (Simplified Payment Verification) puede verificar que una tx está en el bloque con solo O(log n) datos.

Concepto

¿Qué es la raíz de Merkle en un bloque?

Click para revelar

Concepto

¿Por qué doble SHA256?

Click para revelar

Recap completado!