Un árbol Merkle, también conocido como árbol hash, es una estructura de datos jerárquica en la que cada hoja nodo Contiene el hash criptográfico de un bloque de datos, y cada nodo no hoja (padre) contiene el hash criptográfico de la concatenación de los hashes de sus nodos hijos. Esta estructura de árbol binario permite verificar la integridad y consistencia de grandes conjuntos de datos con una eficiencia extraordinaria: en lugar de comprobar cada dato individualmente, un verificador solo necesita examinar un pequeño número de hashes a lo largo de una única rama desde una hoja hasta la raíz. El único hash situado en la parte superior del árbol, llamado raíz Merkle, sirve como huella digital única para todo el conjunto de datos que se encuentra debajo. Si se altera incluso un solo bit de datos en cualquier parte del árbol, el cambio se propaga en cascada a través de cada hash padre hasta que la propia raíz Merkle cambia, lo que indica instantáneamente que los datos han sido manipulados.
En la tecnología blockchain, los árboles Merkle son fundamentales para el almacenamiento y la validación de transacciones en los bloques. Cada encabezado de bloque en Bitcoin, Ethereum y prácticamente todos los demás protocolos blockchain contiene una raíz Merkle que resume todas las transacciones incluidas en ese bloque. Este diseño permite que los clientes ligeros, a menudo llamados nodos de Verificación de Pago Simplificada (SPV), confirmen que una transacción específica está incluida en un bloque sin descargar todo su contenido. El cliente solo necesita el encabezado del bloque (que contiene la raíz Merkle) y una breve secuencia de hashes hermanos denominada prueba Merkle o ruta Merkle. Para un bloque con 4,096 transacciones, esta prueba requiere solo 12 hashes en lugar de los 4,096 hashes de transacción, una reducción logarítmica que hace que las carteras móviles y los dispositivos con recursos limitados sean participantes viables en la red.
Más allá de la simple inclusión de transacciones, los árboles Merkle sustentan algunas de las construcciones más avanzadas del ecosistema de criptomonedas. Ethereum utiliza una versión modificada llamada Merkle Patricia Trie para almacenar todo su estado global: cada saldo de cuenta, espacio de almacenamiento de contratos inteligentes y fragmento de código. Los rollups de conocimiento cero utilizan árboles Merkle para confirmar lotes de transacciones fuera de la cadena en una única raíz en la cadena. Los contratos de distribución de airdrop utilizan árboles Merkle para permitir que miles de direcciones reclamen tokens con datos mínimos en la cadena. La elegancia de la estructura reside en su simplicidad: una aplicación recursiva de hash que convierte un conjunto de datos arbitrariamente grande en un único compromiso de tamaño fijo, verificable en tiempo logarítmico.
Origen e Historia
1979: Ralph Merkle describió por primera vez los árboles hash en su tesis doctoral de Stanford y posteriormente patentó el concepto (Patente estadounidense 4,309,569, presentada el 5 de septiembre de 1979 y concedida el 5 de enero de 1982). Merkle desarrolló esta estructura como parte de su trabajo pionero en criptografía de clave pública y firmas digitales, buscando un método eficiente para autenticar grandes estructuras de datos.
1987 1988-: Merkle combinó su estructura de árbol hash con esquemas de firma de un solo uso, basándose en la construcción previa de firma de un solo uso de Lamport-Diffie, en un artículo presentado en CRYPTO '87 y publicado en las actas de la conferencia en 1988. Esta combinación, ahora generalmente conocida como el esquema de firma Merkle, demostró que un solo árbol hash podía autenticar muchos pares de claves de un solo uso bajo una clave pública, gestionando eficientemente un gran número de claves criptográficas.
Finales del 1990: Con el surgimiento de los sistemas de intercambio de archivos entre pares, se aplicaron estructuras de árbol hash para permitir que los nodos verificaran de forma independiente la integridad de los segmentos de archivos descargados, detectando datos corruptos o maliciosos sin necesidad de volver a descargar los archivos completos. Este patrón se formalizó posteriormente en especificaciones como el formato Tree Hash Exchange (THEX).
2008: Satoshi Nakamoto integró los árboles Merkle en el diseño del protocolo Bitcoin. La sección 7 del documento técnico de Bitcoin, «Recuperando espacio en disco», describe cómo los árboles Merkle permiten eliminar datos de transacciones antiguas manteniendo un hash raíz compacto. La sección 8, «Verificación de pago simplificada», explica por separado cómo la misma estructura permite a los clientes ligeros confirmar que una transacción está incluida en un bloque utilizando únicamente el encabezado del bloque y una prueba Merkle.
2009: La red Bitcoin se lanzó con raíces Merkle integradas en el encabezado de cada bloque. El bloque génesis (Bloque 0) contenía una única transacción con una raíz Merkle igual al hash de dicha transacción, estableciendo así el patrón para todos los bloques subsiguientes.
2015: Ethereum se lanzó con tres variantes distintas de árbol Merkle en el encabezado de cada bloque: un árbol de transacciones, un árbol de recibos y un árbol de estado, todos implementados como árboles Merkle Patricia. Este diseño amplió la funcionalidad del árbol Merkle, pasando de la simple verificación de transacciones a la autenticación completa del estado global.
2017 2019-: Los árboles Merkle se convirtieron en un elemento central del diseño de soluciones de escalabilidad de capa 2. Las cadenas Plasma utilizaron compromisos Merkle para anclar el estado de las cadenas hijas a la red principal de Ethereum, mientras que los primeros diseños de rollup utilizaron raíces Merkle para agrupar cientos de transacciones en una única prueba en la cadena.
2020 2024-: Los sistemas de prueba de conocimiento cero como zkSync y StarkNet adoptaron variantes especializadas de árboles Merkle, incluidos los árboles Merkle dispersos basados en hash de Poseidón, optimizados para la computación eficiente dentro de los circuitos ZK. Los contratos de airdrop de Merkle se convirtieron en el patrón estándar para la distribución de tokens en Ethereum.
“Un árbol hash permite comprobar cualquier rama del árbol de forma independiente sin necesidad de que los nodos almacenen el conjunto de datos completo.”
En términos simples
Imagina un cuadro de eliminatorias de un torneo deportivo. Cada partido de la primera ronda tiene un ganador. Estos ganadores se emparejan para la segunda ronda, y así sucesivamente, hasta que un único campeón se queda en la cima. Un árbol Merkle funciona de la misma manera, solo que en lugar de equipos deportivos, se parte de bloques de datos, y en lugar de jugar partidos, se combinan pares de datos mediante funciones hash criptográficas hasta obtener un único "hash campeón" en la cima, llamado raíz Merkle.
Imagínalo como un árbol genealógico al revés. En la base hay cientos de miembros individuales de la familia (bloques de datos). Cada par de hermanos se combina para representar a sus padres. Estos padres se combinan para formar a los abuelos, y así sucesivamente, hasta llegar a un único ancestro en la cima. Si algún miembro de la familia cambia, todas las generaciones superiores también cambian, hasta llegar al ancestro en la cima.
Imagínese un sistema de catálogo de biblioteca. En lugar de revisar cada libro en cada estante para confirmar que no falte ninguno, el bibliotecario mantiene un resumen de cada estante, combina los resúmenes de estante en resúmenes de pasillo, combina los resúmenes de pasillo en resúmenes de piso y mantiene un resumen maestro para toda la biblioteca. Para verificar que existe un solo libro, solo necesita revisar los resúmenes a lo largo de su recorrido desde el estante hasta el resumen maestro, no todos los demás libros.
Imagina el proceso de sellar pruebas en un juicio. Cada prueba se guarda en un sobre a prueba de manipulaciones. Los pares de sobres se introducen en sobres más grandes, que a su vez se introducen en sobres aún más grandes, hasta que todo queda dentro de un sobre maestro con un único sello. Si alguien manipula alguna prueba, todos los sobres superiores muestran señales de manipulación y el sello maestro se rompe.
Importante: Los árboles Merkle proporcionan prueba de la inclusión e integridad de los datos, pero no los cifran ni garantizan su confidencialidad. Cualquier persona con acceso al árbol puede ver los datos; el árbol solo garantiza que no han sido alterados. Además, la seguridad de un árbol Merkle depende completamente de la robustez de la función hash subyacente; si esta se ve comprometida, la integridad del árbol deja de ser válida.
Características técnicas clave
Estructura de árbol hash binario
Los nodos hoja contienen el hash de bloques de datos individuales (por ejemplo, transacciones).
Los nodos internos contienen el hash de la concatenación de sus dos hashes hijos: H(parent) = Hash(H(left) || H(right))
El árbol siempre está equilibrado; si el número de hojas es impar, la última hoja se duplica para completar un par.
La profundidad del árbol es log2(n) dónde n es el número de nodos hoja
El hash raíz (raíz Merkle) es una huella digital de tamaño fijo de todo el conjunto de datos, independientemente del tamaño del conjunto de datos.
Cómo funciona la verificación de la prueba Merkle
Un verificador quiere confirmar que una transacción específica Tx_k está incluido en un bloque
El verificador obtiene el encabezado del bloque, que contiene la raíz Merkle.
El probador proporciona el hash de Tx_k junto con su prueba Merkle: la secuencia de hashes hermanos a lo largo del camino desde la hoja hasta la raíz.
Los hashes del verificador Tx_ky luego lo combina con el primer hash hermano usando la misma función hash.
El resultado se combina con el hash del siguiente hermano, y así sucesivamente, ascendiendo por el árbol nivel por nivel.
Si el hash calculado final coincide con la raíz Merkle en el encabezado del bloque, la transacción se verifica como incluida.
Para un árbol con n hojas, solamente log2(n) Se necesitan hashes; por ejemplo, 20 hashes para verificar 1 transacción entre 1,048,576.
Merkle Patricia Trie (Ethereum)
Ethereum extiende el árbol Merkle básico a un trie Patricia (árbol radix) que asigna claves a valores.
El árbol de estados asigna direcciones de cuenta a estados de cuenta (saldo, nonce, raíz de almacenamiento, hash de código).
El árbol de almacenamiento asigna ranuras de almacenamiento de 256 bits a sus valores para cada contrato inteligente.
La compresión de rutas reduce la sobrecarga de almacenamiento al colapsar cadenas de un solo hijo en nodos de extensión.
Tres tipos de nodos: nodos de rama (16 hijos + valor), nodos de extensión (prefijo compartido + nodo siguiente), nodos hoja (ruta restante + valor)
Árboles Merkle dispersos para pruebas de conocimiento cero
Los árboles Merkle dispersos (SMT) son árboles Merkle donde la mayoría de las hojas están vacías (valor hash predeterminado).
Se utiliza en ZK-rollups para representar estados de cuenta con pruebas de pertenencia y no pertenencia eficientes.
Las funciones hash optimizadas, como Poseidon y Pedersen, se utilizan para realizar cálculos compatibles con circuitos ZK.
Una SMT de profundidad 256 puede representar todas las posibles claves de 256 bits sin dejar de ser computacionalmente viable.
La prueba de no inclusión es tan simple como demostrar que la hoja en una posición dada contiene el valor predeterminado.
Ventajas desventajas
Ventajas
Desventajas
Verificación logarítmica: tamaño de la prueba y escala de tiempo de verificación como O(log n), lo que permite una verificación eficiente incluso para millones de transacciones.
Sobrecarga de almacenamiento: Almacenar todos los hashes intermedios requiere aproximadamente 2n - 1 nodos para n nodos hoja, lo que aproximadamente duplica el requisito de almacenamiento de datos sin procesar.
Detección de manipulación: Cualquier cambio en cualquier nodo hoja se propaga hacia arriba, modificando la raíz Merkle y revelando inmediatamente la corrupción o manipulación de datos.
Costo de recálculo: Actualizar una sola hoja requiere recalcular todos los hashes a lo largo de la ruta hasta la raíz. O(log n) operaciones hash por actualización
Soporte ligero para clientes: los nodos SPV pueden verificar la inclusión de transacciones solo con encabezados de bloque y pruebas Merkle, lo que permite el uso de billeteras móviles e integradas.
Dependencia de la función hash: Todo el modelo de seguridad depende de la resistencia a colisiones de la función hash elegida; una función hash defectuosa rompe el árbol.
Eficiencia de ancho de banda: Las pruebas Merkle transmiten únicamente log2(n) hashes en lugar del conjunto de datos completo, lo que reduce drásticamente el ancho de banda de la red para la verificación.
Requisito de equilibrio: Los árboles Merkle binarios estándar requieren un número par de hojas; los conjuntos de datos con un número impar de hojas necesitan duplicación, lo que puede introducir errores de implementación sutiles.
Componibilidad: Los árboles Merkle pueden anidarse (una raíz Merkle puede ser una hoja en un árbol de nivel superior), lo que permite esquemas de compromiso de datos multicapa utilizados en agregaciones y particiones.
Complejidad de los Tries: Los Tries de Merkle Patricia (como en Ethereum) son significativamente más complejos de implementar que los árboles Merkle binarios básicos, con múltiples tipos de nodos y codificación de rutas.
Construcción paralela: Los hashes de las hojas se pueden calcular de forma independiente y en paralelo, lo que hace que la construcción del árbol Merkle sea altamente paralelizable en hardware moderno.
Expansión del estado: En las cadenas de bloques con estado, el árbol Merkle crece con cada nueva cuenta y espacio de almacenamiento, lo que contribuye a la expansión del estado a largo plazo y al aumento de los tiempos de sincronización.
Estandarizado y probado en combate: Décadas de investigación académica y despliegue en producción (Bitcoin desde 2009) brindan una gran confianza en las propiedades de seguridad de la estructura.
Escalado del tamaño de las pruebas: aunque logarítmico, el tamaño de las pruebas sigue creciendo con el tamaño del conjunto de datos; para árboles muy grandes (miles de millones de hojas), las pruebas pueden volverse de tamaño considerable.
Gestión de riesgos
Riesgo de vulnerabilidad de la función hash
Los árboles Merkle heredan las propiedades de seguridad de su función hash subyacente (normalmente SHA-256 para Bitcoin, Keccak-256 para Ethereum).
Si los ataques de colisión se volvieran viables contra la función hash, un atacante podría construir dos conjuntos de datos diferentes con la misma raíz Merkle.
Medidas de mitigación: Monitorear la investigación criptográfica para detectar avances contra SHA-256 y Keccak-256; las comunidades de blockchain pueden realizar una bifurcación dura para actualizar las funciones hash si es necesario.
La computación cuántica supone una amenaza a largo plazo para la seguridad de las funciones hash, aunque las estimaciones actuales sugieren que SHA-256 seguirá siendo seguro durante décadas.
Riesgo de errores de implementación
Los errores sutiles en las implementaciones de árboles Merkle, como el manejo incorrecto de hojas impares, errores de uno en las rutas de prueba o desajustes de endianness, pueden crear vulnerabilidades explotables.
La "división" de Bitcoin Cash en 2018 expuso casos límite en la validación del árbol Merkle durante la verificación de bloques.
Medidas de mitigación: Utilice bibliotecas de código abierto bien auditadas (por ejemplo, MerkleProof.sol de OpenZeppelin para Solidity); realice una verificación formal de las implementaciones críticas.
Prueba con entradas adversarias que incluyen árboles vacíos, árboles de una sola hoja y árboles de profundidad máxima.
Riesgo de ataque por ambigüedad de tipo
En un árbol Merkle simple, un atacante podría potencialmente crear un nodo interno fraudulento que colisione con un nodo hoja legítimo.
Esto se conoce con mayor precisión como un ataque de ambigüedad de tipo o un ataque entre nodos, y se puede mitigar anteponiendo un separador de dominio (0x00 para hojas, 0x01 para nodos internos) antes del hash.
La implementación del árbol Merkle de Bitcoin utiliza el hash SHA-256 doble, lo que proporciona resistencia adicional.
Medidas de mitigación: Diferencie siempre entre el hash de nodos hoja y el de nodos internos; siga los estándares establecidos, como RFC 6962 (Transparencia de certificados).
Riesgo de crecimiento y desempeño estatal
En Ethereum, el árbol de estado crece con cada nueva cuenta y espacio de almacenamiento de contratos, lo que aumenta el costo de generación y verificación de pruebas con el tiempo.
Los tiempos de sincronización completa de los nodos están fuertemente influenciados por el tamaño del árbol de estado (cientos de gigabytes).
Mitigación: Las propuestas de expiración de estado (EIP-4444, árboles de Verkle) buscan podar el estado histórico; la investigación de clientes sin estado se centra en proporcionar pruebas de estado con cada bloque.
Relevancia cultural
Los árboles Merkle ocupan un lugar único en la cultura de las criptomonedas, al ser una de las pocas estructuras de datos que ha alcanzado reconocimiento fuera del ámbito de la informática. La expresión «prueba Merkle» se usa comúnmente en servidores de Discord, hilos de Twitter y debates en foros de gobernanza, a menudo por participantes que quizás no comprendan del todo las matemáticas subyacentes, pero reconocen la importancia del término.
“Los árboles Merkle son los héroes anónimos de la tecnología blockchain. Cada vez que verifiques una transacción, dale las gracias a Ralph Merkle.”
El concepto alcanzó gran relevancia en la criptocultura durante el colapso de FTX en 2022, cuando la expresión «prueba de reservas» se popularizó. Plataformas como Binance y Kraken implementaron sistemas de prueba de reservas basados en el árbol Merkle, lo que permitió a los usuarios verificar de forma independiente que sus fondos estaban incluidos en las tenencias declaradas de la plataforma. La expresión «prueba de reservas mediante árbol Merkle» se convirtió en un símbolo de confianza en el contexto posterior a FTX, demostrando cómo un invento informático de 1979 se transformó en un referente cultural de responsabilidad financiera.
En las comunidades de NFT y airdrops, el término "airdrop Merkle" se ha convertido en un estándar. Proyectos como Uniswap, ENS y Optimism utilizaron contratos de distribución basados en árboles Merkle que permitían a las direcciones elegibles reclamar tokens proporcionando una prueba Merkle de su inclusión en la lista de distribución. Este patrón, popularizado por la biblioteca OpenZeppelin, ha sido replicado por cientos de proyectos y ahora es el estándar de facto para la distribución de tokens en la cadena de bloques.
La comunidad de desarrolladores debate regularmente las ventajas de los árboles Merkle frente a alternativas más recientes como los árboles Verkle (propuestos para la hoja de ruta de Ethereum hacia la ausencia de estado), lo que refleja la profunda integración de esta estructura en los debates sobre la arquitectura de la cadena de bloques.
Ejemplos del mundo real
Verificación de la billetera Bitcoin SPV
Escenario: Un usuario que utiliza una billetera móvil de Bitcoin en un teléfono inteligente con almacenamiento limitado quiere verificar que un pago de 0.5 BTC que recibió sea legítimo sin descargar la cadena de bloques completa de más de 500 GB.
Implementación: La billetera SPV solo descarga los encabezados de los bloques (80 bytes cada uno, lo que suma aproximadamente 60 MB para todo el historial de la cadena de bloques). Cuando el usuario recibe un pago, la billetera solicita una prueba Merkle a un nodo completo: un conjunto de 10 a 12 hashes hermanos que trazan una ruta desde la transacción hasta la raíz Merkle en el encabezado del bloque.
Resultado: La billetera verifica la inclusión de la transacción en el bloque recalculando los hashes hasta la raíz Merkle, lo que confirma que el pago es legítimo. Esto toma milisegundos y utiliza kilobytes de datos, lo que permite usar Bitcoin en dispositivos móviles con recursos limitados. Este es precisamente el caso de uso que Satoshi describió en la Sección 8 del documento técnico de Bitcoin.
Airdrop de tokens UNI de Uniswap (2020)
Escenario: Uniswap necesitaba distribuir 150 millones de tokens UNI a aproximadamente 250,000 usuarios históricos. Almacenar las 250,000 direcciones en la cadena de bloques costaría millones de dólares en comisiones por transacciones.
Implementación: Los ingenieros de Uniswap construyeron un árbol Merkle con cada dirección elegible y su cantidad reclamable como nodos hoja. Solo la raíz Merkle (32 bytes) se almacenó en la cadena de bloques en el contrato del distribuidor. Cada usuario podía reclamar sus tokens enviando una prueba Merkle (aproximadamente 18 hashes para 250 000 direcciones) que demostrara su inclusión en el árbol.
Resultado: El contrato de airdrop consumió un mínimo de almacenamiento en la cadena de bloques, permitiendo a cualquier usuario elegible reclamar tokens sin necesidad de permisos. El costo de gas por reclamación fue de aproximadamente 80 000 a 100 000 unidades, en comparación con los millones de dólares que habría costado precargar todas las direcciones en la cadena de bloques. Este patrón se ha convertido desde entonces en el estándar de la industria para la distribución de tokens.
Prueba de Reservas de Binance (posterior a FTX, 2022)
Escenario: Tras el colapso de FTX, Binance se vio sometida a una presión urgente para demostrar que los fondos de sus clientes estaban totalmente respaldados. La plataforma gestionaba activos de un gran número de cuentas de usuario, lo que hacía que la divulgación de información a nivel de cuenta individual fuera poco práctica y vulnerara la privacidad.
Implementación: Binance implementó un sistema de prueba de reservas basado en un árbol Merkle, donde el saldo de la cuenta de cada usuario se utilizaba como nodo hoja. Los usuarios podían verificar la inclusión de su cuenta iniciando sesión y solicitando su prueba Merkle personal, la cual podían cotejar de forma independiente con la raíz Merkle publicada. Auditores externos verificaron que las reservas totales coincidieran con el compromiso de la raíz Merkle.
Resultado: Los usuarios pudieron verificar la inclusión de su cuenta en el árbol de reservas, lo que restableció cierta confianza en las plataformas de intercambio centralizadas. Si bien este enfoque no es perfecto (no demuestra la ausencia de pasivos), consolidó la transparencia basada en el árbol Merkle como un estándar ampliamente adoptado para la rendición de cuentas en las plataformas de intercambio.
Verificación de estado de Ethereum para protocolos DeFi
Escenario: Un protocolo de préstamos DeFi en Ethereum necesita verificar el saldo de garantía actual de una cuenta de usuario en una operación de agregación de capa 2 antes de procesar una liquidación.
Implementación: El rollup publica su raíz de estado (una raíz Merkle de todos los saldos de las cuentas) en la red principal de Ethereum. El contrato de liquidación en Ethereum acepta una prueba Merkle que demuestra el saldo de garantía del usuario dentro del árbol de estado del rollup. La prueba contiene aproximadamente entre 20 y 30 hashes para un árbol Merkle disperso que representa un espacio muy grande de posibles cuentas.
Resultado: La liquidación entre capas se ejecuta sin necesidad de confianza; no se requiere confiar en ningún oráculo ni en ningún repetidor de puente. La prueba Merkle vincula criptográficamente el estado del rollup al contrato de la red principal, lo que permite la composición entre L1 y L2 sin sacrificar la seguridad. Este patrón general se utiliza en varios diseños de rollup y préstamos entre cadenas.
Tabla de comparación
Elemento
Árbol Merkle (binario)
Merkle Patricia Trie (Ethereum)
Árbol Verkle (Propuesto)
Estructura
Árbol binario de hashes
Trie Radix con compromisos de hash
Árbol con compromisos vectoriales
Tamaño de prueba
O(log n) hashes (~32 bytes cada uno)
O(log n) pero más grande debido al factor de ramificación 16
O(log n) pero más pequeñas que las pruebas Merkle
Uso primario
Inclusión de transacciones (Bitcoin)
Almacenamiento del estado completo del mundo (Ethereum)
Verificación de cliente sin estado (futuro Ethereum)
Mapeo clave
Posicional (basado en índices)
Clave-valor (dirección-estado)
Clave-valor (dirección-estado)
Costo de actualización
O(log n) refrito
O(log n) pero con gastos generales de reestructuración de trie
O(log n) con compromisos más económicos
Verificación de prueba
Recálculo simple de hash
Más complejo (múltiples tipos de nodos)
Requiere operaciones con curvas elípticas.
Inflación estatal
Mínimo (las listas de transacciones están limitadas)
Grave (el estado crece sin límites)
Mitigado por tamaños de prueba más pequeños
Resistencia cuántica
Basado en funciones hash (relativamente seguro frente a la computación cuántica)
Basado en funciones hash (relativamente seguro frente a la computación cuántica)
Se basa en curvas elípticas (vulnerable a la computación cuántica).
Madurez
Implementado desde 2009 (Bitcoin)
Implementado desde 2015 (Ethereum)
Fase de investigación/implementación (EIP-6800)
Términos relacionados
Función hash – Una función matemática que convierte los datos de entrada en una salida de tamaño fijo, sirviendo como el componente fundamental de cada nodo en un árbol Merkle.
Verificación de pago simplificada (SPV) – Un método para verificar transacciones de Bitcoin utilizando únicamente encabezados de bloque y pruebas Merkle, lo que permite el uso de clientes ligeros que dependen completamente de la eficiencia del árbol Merkle.
Raíz Merkle: el hash único en la parte superior de un árbol Merkle que sirve como compromiso criptográfico para todos los datos almacenados en el árbol, incluido en el encabezado de cada bloque de la cadena de bloques.
Encabezado de bloque – La sección de metadatos de un bloque de cadena de bloques que contiene la raíz Merkle, el hash del bloque anterior, la marca de tiempo y otros campos específicos del protocolo.
Patricia Trie: un trie (árbol de prefijos) optimizado en cuanto a espacio que Ethereum utiliza en combinación con el hash Merkle para crear el Merkle Patricia Trie para el almacenamiento de estado.
Árbol de Verkle: una propuesta para suceder a los árboles de Merkle en Ethereum que utiliza compromisos vectoriales en lugar de compromisos basados en hash, lo que reduce el tamaño de las pruebas.
Prueba de conocimiento cero – Un método criptográfico que permite a una de las partes probar el conocimiento de un hecho sin revelar el hecho en sí, a menudo utilizando árboles Merkle para los compromisos de estado en los ZK-rollups.
Prueba de Reservas: una práctica de auditoría en la que las plataformas de intercambio de criptomonedas utilizan árboles Merkle para demostrar que los depósitos de los clientes están totalmente respaldados por activos en la cadena de bloques.
AIRDROP – Un evento de distribución de tokens que suele utilizar contratos inteligentes basados en árboles Merkle para permitir que los destinatarios elegibles reclamen tokens mediante la presentación de pruebas Merkle.
State Trie: el árbol de prefijos Merkle Patricia de Ethereum que relaciona cada dirección de cuenta con su estado actual, formando la columna vertebral de la arquitectura de almacenamiento de datos de Ethereum.
Árbol binario: una estructura de datos fundamental en informática donde cada nodo tiene como máximo dos hijos, y que sirve como base estructural para los árboles Merkle estándar.
Recibo de transacción: una estructura de datos generada después de la ejecución de una transacción de Ethereum, almacenada en un árbol Merkle separado dentro de cada bloque para una verificación eficiente del recibo.
Preguntas Frecuentes
P: ¿Qué es un árbol Merkle y por qué es importante para la tecnología blockchain? Un árbol Merkle es una estructura de datos que organiza la información en un árbol binario de hashes criptográficos, generando un único hash raíz que representa todo el conjunto de datos. Es fundamental para la tecnología blockchain porque permite una verificación eficiente de las transacciones: un cliente ligero puede confirmar que una transacción está incluida en un bloque comprobando solo una pequeña prueba Merkle (de tamaño logarítmico) en lugar de descargar todas las transacciones.
P: ¿Cómo funciona una prueba Merkle? Una prueba Merkle consiste en los hashes de nodos hermanos a lo largo de la ruta desde un nodo hoja específico hasta la raíz Merkle. Para verificarla, se calcula el hash de los datos objetivo, se combina con el primer hash hermano, se calcula el hash del resultado, se combina con el siguiente hermano y se repite el proceso hasta llegar a la raíz. Si la raíz calculada coincide con la raíz Merkle conocida, se verifica que los datos están incluidos en el árbol. Para un árbol con un millón de hojas, esto requiere solo unos 20 hashes.
P: ¿Cuál es la diferencia entre un árbol Merkle y un árbol Merkle Patricia? Un árbol Merkle estándar es un árbol hash binario simple que se utiliza para listas ordenadas de datos (como las transacciones en un bloque de Bitcoin). Un Merkle Patricia Trie, utilizado por Ethereum, es una estructura más compleja que combina un árbol de prefijos (radix trie) con el hash Merkle para crear un almacén de clave-valor con integridad demostrable.
P: ¿Qué son los árboles Verkle y reemplazarán a los árboles Merkle? Los árboles de Verkle son una mejora propuesta para Ethereum (EIP-6800) que reemplaza los compromisos basados en hash con compromisos polinomiales (vectoriales), lo que produce pruebas más pequeñas, algo importante para la hoja de ruta del cliente sin estado de Ethereum. Sin embargo, los árboles de Verkle se basan en criptografía de curva elíptica, que es potencialmente vulnerable a las computadoras cuánticas, mientras que los árboles de Merkle basados en hash se consideran más resistentes a la computación cuántica.
P: ¿Cómo se utilizan los árboles Merkle en los airdrops de NFT y tokens? Los proyectos construyen un árbol Merkle con las direcciones de billetera elegibles (y sus cantidades reclamables) como hojas. Solo la raíz Merkle se almacena en la cadena de bloques, lo que ahorra costos de gas. Cada usuario elegible puede reclamar tokens enviando su prueba Merkle: un pequeño conjunto de hashes que prueban que su dirección está en el árbol. Este patrón, popularizado por la biblioteca MerkleProof de OpenZeppelin, ha sido utilizado por Uniswap, ENS, Optimism y cientos de otros proyectos.
P: ¿Se pueden utilizar los árboles Merkle para crear privacidad? Los árboles Merkle estándar no garantizan la privacidad, ya que todos los datos son visibles. Sin embargo, en sistemas que preservan la privacidad se utilizan variantes especializadas. Las pruebas Merkle de conocimiento cero permiten demostrar la inclusión sin revelar los datos de las hojas, lo que posibilita transacciones privadas y la verificación confidencial del estado.
P: ¿Qué sucede si dos conjuntos de datos diferentes producen la misma raíz Merkle? Esto constituiría una colisión de hash: dos entradas diferentes que producen la misma salida de la función hash. Con SHA-256 (utilizado en Bitcoin), encontrar dicha colisión requeriría aproximadamente 2^128 operaciones, lo cual es computacionalmente inviable con la tecnología actual y la que se prevé.
Fuentes
Merkle, RC “Una firma digital basada en una función de cifrado convencional”
Libro Blanco de Bitcoin, Secciones 7-8: Recuperación de espacio en disco / Verificación de pagos simplificada – https://bitcoin.org/bitcoin.pdf
Los préstamos respaldados por Bitcoin están entrando en lo que Silicon Valley Bank describe como un nuevo capítulo institucional, con estándares de préstamo más estrictos y en constante crecimiento.
La Unión Europea está reevaluando su emblemática regulación de criptomonedas tan solo tres años después de la entrada en vigor del marco de Mercados de Criptoactivos (MiCA).