Un árbol Merkle (también llamado árbol hash binario) es una estructura de datos utilizada en las cadenas de bloques para resumir y verificar de manera eficiente grandes conjuntos de datos. Cada nodo hoja contiene un hash de un bloque de datos (una transacción), cada nodo no hoja contiene un hash de sus nodos hijos, y la raíz —el Raíz de merkle — es un único hash que representa todas las transacciones en todo el bloque.
Tanto Bitcoin como Ethereum utilizan árboles Merkle para organizar las transacciones dentro de cada bloque. La raíz Merkle se almacena en el encabezado del bloque, lo que permite pruebas de merkle — Pruebas matemáticas de que una transacción específica está incluida en un bloque utilizando solo un pequeño número de hashes (O(log n)) en lugar de requerir la descarga de todas las transacciones. Esto permite una verificación ligera para SPV y clientes ligeros sin necesidad de descargar toda la cadena de bloques.
Estructura del árbol Merkle
4 transactions in a block: Tx1, Tx2, Tx3, Tx4
Step 1: Hash each transaction (Bitcoin uses double SHA-256)
H1 = SHA256(SHA256(Tx1)) = "abc..."
H2 = SHA256(SHA256(Tx2)) = "def..."
H3 = SHA256(SHA256(Tx3)) = "ghi..."
H4 = SHA256(SHA256(Tx4)) = "jkl..."
Step 2: Hash pairs of child nodes
H12 = SHA256(SHA256(H1 + H2)) = "mno..."
H34 = SHA256(SHA256(H3 + H4)) = "pqr..."
Step 3: Hash to root
Merkle Root = SHA256(SHA256(H12 + H34)) = "stu..."
Tree structure:
Merkle Root (stu...)
/ \
H12 (mno...) H34 (pqr...)
/ \ / \
H1(abc) H2(def) H3(ghi) H4(jkl)
| | | |
Tx1 Tx2 Tx3 Tx4
Merkle Proof for Tx3 (prove Tx3 is in block):
Provide: H4, H12
Verifier computes:
H3 = hash(Tx3) ← from the transaction itself
H34 = hash(H3 + H4) ← H4 provided
Root = hash(H12 + H34) ← H12 provided
If computed Root matches block header Root → Tx3 confirmed ✓
Data required: 2 hashes (not all 4 transactions)
For a block with 4,096 transactions:
Proof requires only 12 hashes — not 4,096
For 1,000,000 transactions: ~20 hashes
Nota sobre recuentos de transacciones inusuales: Si un bloque contiene un número impar de transacciones, el hash de la última transacción se duplica para formar un par, una peculiaridad conocida de la implementación del árbol Merkle de Bitcoin.
Aplicaciones del árbol Merkle
| Aplicación | Cómo se utilizan los árboles Merkle |
|---|---|
| bloques de Bitcoin | La raíz Merkle de la transacción se almacena en el encabezado del bloque; habilita las pruebas SPV para monederos ligeros. |
| Estado de Ethereum | Merkle Patricia Trie (MPT) para estados de cuenta, almacenamiento y registros de transacciones/recibos; Verkle Trees planificado como actualización |
| Elegibilidad para el airdrop | Las pruebas Merkle verifican direcciones individuales en la cadena de bloques sin almacenar la lista completa de destinatarios en el contrato. |
| Pruebas ZK | Las pruebas de Merkle se pueden verificar dentro de circuitos ZK para pruebas de inclusión compactas. |
| Git (control de versiones) | Git utiliza un DAG (grafo acíclico dirigido) de objetos con direccionamiento de contenido, una estructura inspirada en los árboles de Merkle y estrechamente relacionada con ellos. |
| Transparencia de certificado | Los registros Merkle de solo adición permiten la auditoría pública de todos los certificados TLS emitidos. |
| clientes apátridas | Las pruebas Merkle/Verkle permiten a los nodos verificar bloques sin almacenar el estado completo. |
Preguntas Frecuentes
P: ¿Cómo utilizan los airdrops de DeFi los árboles Merkle?
Los airdrops utilizan árboles Merkle para demostrar la elegibilidad en la cadena de bloques sin almacenar todas las direcciones elegibles en el contrato, lo cual resultaría prohibitivo a gran escala. El protocolo crea un árbol Merkle con todas las direcciones y cantidades elegibles, y la raíz se almacena en la cadena de bloques. Los usuarios elegibles envían su dirección junto con una prueba Merkle (un pequeño conjunto de hashes). El contrato verifica la prueba con la raíz almacenada y, si es válida, libera la reclamación. Esto permite una verificación eficiente en términos de gas de millones de direcciones elegibles con una única raíz Merkle de 32 bytes almacenada en la cadena de bloques.
P: ¿Qué es un árbol de Merkle Patricia?
Ethereum utiliza una variante más compleja llamada Merkle Patricia Trie (MPT) — combinando un árbol Merkle (hash criptográfico para verificación de integridad) con un trie Patricia (una estructura comprimida por prefijo para búsqueda eficiente de clave-valor). Ethereum mantiene tres MPT separados por bloque: el estado trie (todos los saldos de las cuentas y el almacenamiento de contratos), el árbol de transacciones (todas las transacciones en el bloque), y la recibo intentar (resultados y registros de ejecución de transacciones). Esto permite pruebas de estado eficientes, que demuestran el saldo de cualquier cuenta o cualquier valor de almacenamiento en cualquier bloque histórico. La hoja de ruta de Ethereum incluye la transición de MPT a árboles verdes, que producen pruebas aún más pequeñas y permiten clientes sin estado.
P: ¿Cómo ayudan las pruebas Merkle a los clientes ligeros (carteras SPV)?
Una cartera ligera, como una cartera móvil de Bitcoin, no descarga la cadena de bloques completa, sino solo las cabeceras de los bloques (80 bytes cada una). Para verificar que una transacción se ha confirmado, solicita una prueba Merkle a un nodo completo: un pequeño conjunto de hashes que demuestran que la transacción está incluida en un bloque específico. Para un bloque de Bitcoin con miles de transacciones, esta prueba requiere aproximadamente 20 hashes en lugar de descargar todas las transacciones. Esto permite verificar las transacciones con kilobytes de datos en lugar de gigabytes, lo que posibilita el desarrollo de carteras móviles de criptomonedas prácticas.
P: ¿Qué sucede si un árbol Merkle tiene un número impar de hojas?
En la implementación de Bitcoin, si hay un número impar de transacciones, el hash de la última transacción se duplica para poder emparejarlo y aplicarle el hash correspondiente. Esta es una peculiaridad conocida del diseño original del árbol Merkle de Bitcoin y, en la práctica, no tiene implicaciones de seguridad, aunque algunos investigadores del protocolo la han considerado poco elegante.
P: ¿En qué se diferencian los árboles Merkle de los árboles Verkle?
Los árboles Verkle son un sucesor propuesto para los árboles Merkle Patricia en Ethereum. Utilizan compromisos vectoriales (basado en criptografía de curva elíptica) en lugar de compromisos basados en hash, lo que produce pruebas mucho más pequeñas. Una prueba de Verkle para un gran número de hojas puede ser una fracción del tamaño de una prueba de Merkle equivalente, una propiedad fundamental para habilitar clientes Ethereum sin estado que no necesitan almacenar el estado completo.
Términos relacionados
SHA-256 · Función hash criptográfica · Bitcoin · Ethereum · Cliente ligero (SPV) · Airdrop · Prueba ZK · Árbol Verkle · Merkle Patricia Trie
Consejo de UPay: Los árboles Merkle explican por qué la verificación de blockchain es eficiente, no solo teóricamente completa. Al verificar una transacción en Etherscan, se comprueba una prueba Merkle. Al reclamar un airdrop mediante una transacción en la cadena, se presenta una prueba Merkle que acredita la elegibilidad. Cuando una billetera móvil confirma un pago de Bitcoin sin descargar la cadena completa, utiliza SPV con pruebas Merkle. Comprender los árboles Merkle ayuda a apreciar por qué la verificación de blockchain es criptográficamente demostrable y, a la vez, eficiente en la práctica: nunca es necesario descargar toda la información para verificar nada.
Descargo de responsabilidad: este contenido es sólo para fines educativos y no constituye asesoramiento financiero.










