¿Qué es una prueba de árbol de Merkle?
Una prueba de árbol de Merkle es una prueba criptográfica que demuestra que un dato concreto pertenece a un conjunto de datos más amplio sin revelar ni descargar el conjunto completo.En el mundo cripto, las pruebas de árbol de Merkle suelen utilizarse para demostrar que una transacción, una cuenta, un saldo, un valor de almacenamiento, una solicitud de NFT o una dirección de wallet está incluida en un conjunto de datos verificado.Funcionan mediante hashes de un árbol de Merkle, también llamado árbol hash.Un árbol de Merkle toma varios datos, los convierte en hojas mediante hashes, combina esos hashes por pares y sigue aplicando hashes hacia arriba hasta que queda un único hash final.Ese hash final se denomina raíz de Merkle.Si se confía en la raíz de Merkle, un usuario puede verificar un elemento con una pequeña prueba en lugar de comprobar todo el conjunto de datos.La guía para desarrolladores de Bitcoin explica que los árboles de Merkle permiten a los clientes verificar que una transacción se ha incluido en un bloque utilizando la raíz de Merkle de la cabecera del bloque y los hashes intermedios proporcionados por un par.
Por este motivo, las pruebas de árbol de Merkle son importantes para la eficiencia de la blockchain, los clientes ligeros, los airdrops de tokens, las listas de permitidos de NFT, los bridges, las pruebas de estado y la verificación de datos.Cómo funciona un árbol de Merkle
Un árbol de Merkle comienza con elementos de datos individuales en la parte inferior del árbol.Estos elementos inferiores se denominan hojas.En una blockchain, cada hoja puede representar un hash de transacción, una entrada de cuenta, un valor de almacenamiento, una dirección de wallet o un registro de solicitud.Cada hoja se procesa mediante una función hash criptográfica.A continuación, los hashes se emparejan y se vuelven a procesar.El proceso continúa nivel por nivel hasta que el árbol produce un hash en la parte superior.Ese hash superior es la raíz de Merkle.Si cambia alguna hoja, también cambia su hash.Ese cambio se propaga hacia arriba por el árbol y modifica la raíz de Merkle.Por eso, una raíz de Merkle puede actuar como una huella digital compacta de un conjunto de datos grande.Cómo funciona una prueba de árbol de Merkle
Una prueba de árbol de Merkle demuestra que una hoja concreta pertenece a un árbol de Merkle cuya raíz es conocida.Por lo general, la prueba contiene los hashes hermanos necesarios para reconstruir el camino desde la hoja hasta la raíz.El verificador comienza con el hash de la hoja.A continuación, lo combina con el primer hash hermano y procesa el par.El resultado se combina con el siguiente hash hermano y se vuelve a procesar.El proceso continúa hasta que el verificador calcula una raíz final.Si la raíz calculada coincide con la raíz de Merkle de confianza, la prueba es válida.Si la raíz calculada no coincide, la prueba no es válida.Así se puede verificar la inclusión sin revelar todas las hojas del árbol.Ejemplo sencillo de una prueba de árbol de Merkle
Imagina una lista de permitidos de NFT con cuatro direcciones de wallet.Cada dirección se procesa mediante un hash para crear una hoja.Las hojas A y B se procesan juntas para crear un hash padre.Las hojas C y D se procesan juntas para crear otro hash padre.Después, esos dos hashes padre se procesan juntos para crear la raíz de Merkle.Si la wallet A quiere demostrar que está en la lista de permitidos, no necesita revelar la lista completa.Solo necesita su propia hoja y los hashes hermanos necesarios para reconstruir la raíz de Merkle.El contrato inteligente puede verificar la prueba y permitir que la wallet reclame o acuñe el NFT si la prueba coincide con la raíz almacenada.Por qué son importantes las pruebas de árbol de Merkle en el mundo cripto
Las pruebas de árbol de Merkle son importantes porque las blockchains necesitan formas eficientes de verificar grandes cantidades de datos.Sin las pruebas de Merkle, los usuarios y las aplicaciones podrían tener que descargar o confiar en mucha más información.Una prueba de Merkle permite que la verificación sea más breve, rápida y práctica.Resulta especialmente útil cuando hay limitaciones de almacenamiento, ancho de banda, comisiones de gas o recursos del dispositivo.Las wallets ligeras pueden utilizar pruebas para verificar datos sin ejecutar un nodo completo.Los contratos inteligentes pueden utilizar pruebas para comprobar listas de permitidos sin almacenar miles de direcciones on-chain.Los bridges y los sistemas cross-chain pueden utilizar pruebas para verificar eventos o estados de otra cadena.Los sistemas de disponibilidad de datos y los rollups también pueden utilizar compromisos basados en Merkle para ayudar a demostrar que los datos pertenecen a una estructura mayor comprometida.Pruebas de árbol de Merkle en Bitcoin
Bitcoin utiliza árboles de Merkle para resumir las transacciones de un bloque.La raíz de Merkle se incluye en la cabecera del bloque.Un cliente ligero puede verificar que una transacción está incluida en un bloque comprobando una prueba de Merkle frente a la raíz de Merkle del bloque.Esto permite la verificación de pagos simplificada, conocida habitualmente como SPV.SPV permite que una wallet o un cliente verifique la inclusión de una transacción sin descargar todos los bloques completos.Esto no significa que el cliente verifique todo lo que verifica un nodo completo.Significa que puede comprobar la inclusión de forma más eficiente utilizando las cabeceras de los bloques y los datos de la prueba.Pruebas de árbol de Merkle en Ethereum
Ethereum utiliza estructuras de datos autenticadas basadas en Merkle para verificar cuentas y almacenamiento.La documentación de Ethereum sobre los Merkle Patricia Tries explica que Ethereum utiliza estructuras de árbol enlazadas mediante hashes criptográficos para garantizar la integridad de los datos almacenados.
Las pruebas de Ethereum pueden demostrar que una cuenta o un valor de almacenamiento forma parte de una raíz de estado concreta.El estándar EIP-1186 eth_getProof describe un método RPC para crear pruebas de Merkle de cuentas y valores de almacenamiento de Ethereum.
Este tipo de prueba resulta útil cuando una aplicación quiere verificar el estado de una cuenta sin confiar ciegamente en un proveedor de datos.Los sistemas de pruebas de Ethereum son más complejos que un árbol de Merkle binario sencillo, porque el estado de Ethereum se almacena en estructuras basadas en trie.Sin embargo, la idea fundamental es similar: una prueba pequeña puede verificar un dato frente a una raíz de confianza.Pruebas de árbol de Merkle en listas de permitidos de NFT
Los proyectos de NFT suelen utilizar pruebas de árbol de Merkle para listas de permitidos y preventas.En lugar de almacenar cada dirección de wallet aprobada directamente en un contrato inteligente, el proyecto almacena una única raíz de Merkle.Cada usuario aprobado recibe una prueba que demuestra que su dirección de wallet forma parte del árbol de la lista de permitidos.Cuando el usuario reclama o acuña un NFT, el contrato inteligente verifica la prueba frente a la raíz almacenada.Esto puede reducir los costes de almacenamiento on-chain, ya que guardar una única raíz es mucho más barato que almacenar miles de direcciones.También puede mejorar la privacidad, porque no es necesario incluir la lista completa de permitidos directamente en el contrato.No obstante, los usuarios deben comprobar que la raíz la haya creado el proyecto oficial y que la página de reclamación no sea un sitio de phishing.Pruebas de árbol de Merkle en airdrops
Los airdrops suelen utilizar pruebas de árbol de Merkle para verificar quién puede reclamar tokens.El proyecto crea un conjunto de datos con las direcciones de wallet que cumplen los requisitos y los importes que pueden reclamar.Cada registro de reclamación se convierte en una hoja del árbol de Merkle.El contrato inteligente almacena la raíz de Merkle.Cuando un usuario reclama, envía su dirección, el importe de la reclamación y la prueba.El contrato comprueba si la prueba coincide con la raíz almacenada.Si la prueba es válida y la wallet aún no ha reclamado, el contrato puede liberar los tokens.Este diseño ayuda a los proyectos a gestionar airdrops de gran tamaño sin almacenar cada registro de reclamación directamente on-chain.Pruebas de árbol de Merkle en clientes ligeros
Un cliente ligero es una wallet o un nodo que verifica datos de la blockchain sin descargar ni procesar todos los datos completos de la blockchain.Las pruebas de árbol de Merkle ayudan a los clientes ligeros a verificar datos concretos frente a cabeceras de bloques o raíces de estado de confianza.La documentación de Ethereum sobre clientes ligeros explica que estos permiten a los usuarios verificar los datos recibidos utilizando solo una pequeña parte de los recursos que necesitan los nodos completos.
Esto es importante para dispositivos móviles, navegadores, sistemas integrados y usuarios con un ancho de banda limitado.Los clientes ligeros no son lo mismo que los nodos completos.Verifican menos datos, pero pueden aumentar la confianza en comparación con depender por completo de un proveedor de datos centralizado.Pruebas de árbol de Merkle en contratos inteligentes
Los contratos inteligentes pueden verificar pruebas de árbol de Merkle directamente on-chain.Esto resulta útil cuando un contrato necesita comprobar la pertenencia a un conjunto de datos grande.La documentación de OpenZeppelin MerkleProof proporciona herramientas para verificar pruebas de Merkle en contratos inteligentes.
Un patrón habitual en los contratos consiste en almacenar una raíz de Merkle y verificar las pruebas enviadas por los usuarios al reclamar recompensas, acuñar tokens o comprobar el acceso.Así se evita tener que almacenar todas las direcciones o registros que cumplen los requisitos dentro del contrato.La principal contrapartida es que la prueba debe generarse correctamente off-chain.Si la construcción del árbol, el método de hashing, la regla de ordenación o la codificación de las hojas son incorrectos, es posible que usuarios válidos no superen la verificación o que usuarios no válidos la superen en sistemas mal diseñados.Prueba de árbol de Merkle frente a raíz de Merkle
Una raíz de Merkle es el hash final que representa todo el árbol.Una prueba de árbol de Merkle es el conjunto de hashes y datos relacionados que permite demostrar que una hoja pertenece al árbol.La raíz es como la huella digital del conjunto de datos completo.La prueba es la evidencia que conecta un elemento con esa huella.Una raíz por sí sola no revela todos los datos del árbol.Una prueba por sí sola no sirve si el verificador no dispone de una raíz de confianza con la que compararla.Se necesitan ambas partes para realizar la verificación.Prueba de árbol de Merkle frente a prueba de conocimiento cero
Una prueba de árbol de Merkle y una prueba de conocimiento cero son herramientas criptográficas distintas.Una prueba de árbol de Merkle demuestra que un elemento concreto está incluido en un conjunto de datos comprometido.Una prueba de conocimiento cero puede demostrar que una afirmación es cierta sin revelar la información privada subyacente.Las pruebas de Merkle suelen ser más sencillas, baratas y fáciles de verificar que muchas pruebas de conocimiento cero.Las pruebas de conocimiento cero pueden admitir casos de uso más complejos relacionados con la privacidad y el cálculo.En algunos sistemas, se utilizan conjuntamente pruebas de Merkle y pruebas de conocimiento cero.Por ejemplo, un circuito de conocimiento cero puede verificar de forma privada una prueba de inclusión de Merkle.Prueba de árbol de Merkle frente a prueba de almacenamiento
Una prueba de almacenamiento suele ser un tipo de prueba basada en Merkle que verifica un valor almacenado en el estado de una blockchain.Por ejemplo, una prueba de almacenamiento de Ethereum puede demostrar que una posición de almacenamiento de un contrato inteligente tenía un valor determinado en una raíz de estado de un bloque concreto.La prueba de árbol de Merkle es el concepto más amplio.Una prueba de almacenamiento es un caso de uso específico para demostrar datos de estado o almacenamiento.Esta distinción importa porque cada blockchain puede utilizar estructuras de datos, formatos de prueba y reglas de hashing diferentes.Los usuarios no deben dar por sentado que una prueba de una blockchain funciona igual en otra.Ventajas de las pruebas de árbol de Merkle
La primera ventaja es la eficiencia.Una prueba permite verificar un elemento sin necesitar el conjunto de datos completo.La segunda ventaja es la reducción de los costes de almacenamiento on-chain.Los contratos inteligentes pueden almacenar una raíz en lugar de miles o millones de registros.La tercera ventaja es una mayor escalabilidad.Es posible comprometer conjuntos de datos grandes mediante una raíz pequeña y verificarlos con pruebas compactas.La cuarta ventaja es la integridad de los datos.Si se modifica una hoja o el hash de una prueba, la raíz calculada no coincidirá.La quinta ventaja es la privacidad parcial.Los usuarios pueden demostrar que un elemento está incluido sin revelar todos los demás elementos del conjunto de datos.Riesgos y limitaciones
El primer riesgo es una construcción incorrecta del árbol.Si un proyecto construye el árbol de forma incorrecta, las pruebas pueden fallar o producir resultados inesperados.El segundo riesgo es una codificación débil de las hojas.Si las hojas no se codifican con cuidado, distintas entradas pueden generar comportamientos confusos o inseguros en las pruebas.El tercer riesgo son las suposiciones incorrectas sobre la ordenación.Algunos sistemas de pruebas de Merkle requieren pares ordenados, mientras que otros dependen del orden de izquierda a derecha.El cuarto riesgo son las raíces no fiables.Una prueba válida solo demuestra la inclusión en el conjunto de datos representado por esa raíz, por lo que la propia raíz debe proceder de una fuente de confianza o verificada.El quinto riesgo son los problemas de repetición o de reclamación duplicada.Los contratos de airdrop y reclamación deben registrar si una prueba ya se ha utilizado cuando las reclamaciones solo pueden hacerse una vez.El sexto riesgo es el phishing.Los estafadores pueden crear páginas de reclamación falsas que pidan a los usuarios que envíen pruebas o firmen transacciones peligrosas.Cómo verificar una prueba de árbol de Merkle
Empieza con los datos de la hoja que quieras verificar.Aplica un hash a la hoja utilizando el mismo método que se usó para construir el árbol original.Combina el hash de la hoja con el primer hash hermano de la prueba.Aplica un hash al valor combinado.Repite el proceso con cada uno de los hashes hermanos restantes.Compara el hash final calculado con la raíz de Merkle de confianza.Si las dos raíces coinciden, la prueba es válida.Si no coinciden, la prueba no es válida.En los contratos inteligentes, el mismo proceso suele gestionarse mediante código de verificación.Para los usuarios, el paso más importante es confirmar que la raíz, el contrato, la página de reclamación y la fuente sean oficiales.Malentendidos habituales sobre las pruebas de árbol de Merkle
Un malentendido habitual es pensar que una prueba de árbol de Merkle demuestra que los datos son ciertos en todos los sentidos posibles.Solo demuestra que los datos están incluidos en el conjunto representado por una raíz concreta.Otro malentendido es pensar que una prueba de Merkle revela el conjunto de datos completo.Normalmente, solo revela la hoja objetivo y los hashes hermanos necesarios para la verificación.Un tercer malentendido es pensar que todas las pruebas de Merkle utilizan el mismo formato.Los distintos sistemas pueden utilizar funciones hash, reglas de ordenación, formas de árbol y codificaciones de pruebas diferentes.Un cuarto malentendido es pensar que las pruebas de Merkle eliminan toda necesidad de confianza.Reducen la confianza necesaria en la entrega de datos, pero el usuario sigue necesitando una raíz de confianza y reglas de verificación correctas.Un quinto malentendido es pensar que las pruebas de Merkle solo se utilizan para transacciones.También pueden verificar listas de permitidos, airdrops, estados de cuentas, valores de almacenamiento, datos de rollups, mensajes cross-chain y solicitudes de identidad digital.Preguntas frecuentes
¿Qué es una prueba de árbol de Merkle?
Una prueba de árbol de Merkle es una prueba criptográfica que demuestra que un dato pertenece a un conjunto de datos más amplio representado por una raíz de Merkle.¿Qué es una raíz de Merkle?
Una raíz de Merkle es el hash final situado en la parte superior de un árbol de Merkle y actúa como una huella digital compacta del conjunto de datos completo.¿Cómo verifica los datos una prueba de Merkle?
El verificador aplica hashes a la hoja objetivo junto con los hashes hermanos de la prueba y comprueba si el resultado final coincide con la raíz de Merkle de confianza.¿Por qué utilizan las blockchains pruebas de árbol de Merkle?
Las blockchains utilizan pruebas de árbol de Merkle para verificar datos de forma eficiente sin exigir a cada usuario o aplicación que descargue el conjunto de datos completo.¿Cómo se utilizan las pruebas de Merkle en los airdrops?
Los contratos de airdrop pueden almacenar una única raíz de Merkle y permitir que los usuarios envíen pruebas que demuestren que su wallet y el importe que pueden reclamar están incluidos en el conjunto de datos de direcciones que cumplen los requisitos.¿Cómo se utilizan las pruebas de Merkle en las listas de permitidos de NFT?
Los proyectos de NFT pueden utilizar pruebas de Merkle para verificar que una wallet está en una lista de permitidos sin almacenar directamente on-chain todas las direcciones autorizadas.¿Son privadas las pruebas de árbol de Merkle?
Ofrecen privacidad parcial porque no es necesario revelar el conjunto de datos completo, pero la hoja objetivo y los datos de la prueba aún pueden ser visibles.¿Son las pruebas de árbol de Merkle lo mismo que las pruebas de conocimiento cero?
No. Las pruebas de Merkle verifican la inclusión en un conjunto de datos, mientras que las pruebas de conocimiento cero pueden demostrar afirmaciones más amplias sin revelar datos privados.¿Puede falsificarse una prueba de Merkle?
Una prueba falsa fallará si el verificador utiliza las reglas de hashing correctas y la compara con la raíz de confianza correcta.¿Qué deben comprobar los usuarios antes de utilizar una página de reclamación con prueba de Merkle?
Los usuarios deben comprobar el contrato oficial, el sitio web oficial, la raíz de Merkle de confianza, la solicitud de la wallet, las reglas de reclamación y si la página es segura.Conclusión
Una prueba de árbol de Merkle es una de las herramientas de verificación más importantes del mundo cripto.Permite a usuarios, wallets, contratos inteligentes y aplicaciones demostrar que un elemento pertenece a un conjunto de datos más amplio sin descargar ni almacenar el conjunto completo.Esto hace que los sistemas blockchain sean más eficientes, escalables y prácticos.Las pruebas de árbol de Merkle se utilizan para verificar la inclusión de transacciones, clientes ligeros, airdrops, listas de permitidos de NFT, estados de cuentas, pruebas de almacenamiento, bridges y sistemas de rollup.La idea fundamental es sencilla: una raíz de Merkle de confianza representa el conjunto de datos y una prueba reconstruye el camino desde una hoja hasta esa raíz.Si la raíz calculada coincide, los datos están incluidos.Si no coincide, la prueba falla.Las pruebas de árbol de Merkle reducen la necesidad de confiar en los proveedores de datos, pero no eliminan todos los riesgos.Los usuarios y desarrolladores siguen necesitando reglas de hashing correctas, contratos inteligentes seguros, raíces de confianza, una generación cuidadosa de las pruebas y protección frente al phishing.Cuando se diseñan correctamente, las pruebas de árbol de Merkle hacen que los sistemas cripto sean más ligeros, baratos y fáciles de verificar.También te puede interesar
WhatsMiner M30S++
Dominios Web3
Proyectos Web3
POPULAR
Criptomonedas de moda que están acaparando la atención del mercado
Volumen TOP
Las criptomonedas con mayor volumen de trading
Recién Añadidos
Criptomonedas recientemente listadas y disponibles para operar

