¿Qué es una prueba de Merkle?
Una prueba 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.En el mundo cripto, las pruebas de Merkle se utilizan para verificar transacciones, direcciones de wallet, saldos de tokens, estados de cuentas, valores de almacenamiento, requisitos para recibir airdrops, listas de permitidos de NFT y otros datos de la blockchain.Una prueba de Merkle también se denomina prueba de árbol de Merkle, porque demuestra la pertenencia a un árbol de Merkle.Su principal objetivo es permitir una verificación eficiente.En lugar de descargar o almacenar todo el conjunto de datos, el verificador solo necesita los datos que quiere comprobar, una pequeña lista de hashes relacionados y la raíz de Merkle de confianza.La documentación para desarrolladores de Bitcoin explica que los hashes de las transacciones se emparejan y se procesan mediante hashes repetidamente hasta que queda una única raíz de Merkle en la cabecera del bloque.
Este diseño permite que los sistemas blockchain demuestren la inclusión de datos de forma compacta y segura.Cómo funciona una prueba de Merkle
Una prueba de Merkle funciona reconstruyendo el camino desde un dato hasta la raíz de Merkle.Primero, el dato se procesa mediante un hash para formar una hoja.A continuación, la prueba proporciona los hashes hermanos necesarios para avanzar por el árbol.El verificador combina el hash de la hoja con el primer hash hermano y procesa el resultado.Después, combina ese resultado con el siguiente hash hermano y vuelve a procesarlo.El proceso continúa hasta calcular 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.Esto significa que una prueba de Merkle puede verificar un elemento sin mostrar los demás elementos del conjunto de datos.Por qué son importantes las pruebas de Merkle en el mundo cripto
Las pruebas de Merkle son importantes porque las blockchains necesitan verificar conjuntos de datos grandes sin obligar a todos los usuarios a procesar directamente todos los datos.Un bloque de una blockchain puede incluir muchas transacciones.Un airdrop gestionado mediante un contrato inteligente puede incluir miles o millones de wallets que cumplen los requisitos.Una base de datos del estado de una blockchain puede incluir cuentas, saldos, código de contratos y valores de almacenamiento.Las pruebas de Merkle hacen que estos sistemas sean más eficientes, ya que una prueba pequeña permite verificar una entrada concreta.Esto puede reducir el ancho de banda, el almacenamiento y las comisiones de gas on-chain.También ayuda a los clientes ligeros, contratos inteligentes, bridges, rollups y aplicaciones de wallet a verificar datos con menos dependencia de un servidor central.Raíz de Merkle
Una raíz de Merkle es el hash final situado en la parte superior de un árbol de Merkle.Actúa como una huella digital compacta de todos los datos del árbol.Si cambia alguna hoja, también cambian los hashes superiores y, por tanto, la raíz de Merkle.Esto hace que la raíz de Merkle resulte útil como compromiso con un conjunto de datos grande.La raíz no revela por sí sola el conjunto de datos completo.Solo proporciona a los verificadores un punto de referencia para comprobar las pruebas de Merkle.Una prueba de Merkle solo tiene sentido si el verificador confía en la raíz o puede verificarla mediante el consenso de la blockchain.Ejemplo de prueba de Merkle
Imagina una lista de airdrop con cuatro direcciones de wallet y sus importes reclamables.Cada registro de wallet e importe se procesa mediante un hash para formar una hoja.La primera y la segunda hoja se procesan juntas para crear un hash padre.La tercera y la cuarta hoja se procesan juntas para crear otro hash padre.A continuación, esos dos hashes padre se procesan juntos para crear la raíz de Merkle.Si la wallet uno quiere reclamar, envía su dirección de wallet, el importe de la reclamación y los hashes hermanos necesarios para reconstruir la raíz.El contrato inteligente verifica la prueba frente a la raíz almacenada.Si la prueba coincide, el contrato sabe que el registro de reclamación pertenece al conjunto de datos original.Pruebas de Merkle en Bitcoin
Bitcoin utiliza árboles de Merkle para resumir las transacciones de cada bloque.Se aplica un hash a cada transacción, se empareja con otro hash de transacción y se vuelve a procesar hasta generar una única raíz de Merkle.La raíz de Merkle se almacena en la cabecera del bloque.Una wallet ligera puede utilizar una prueba de Merkle para comprobar si una transacción está incluida en un bloque sin descargar todas las transacciones de ese bloque.Esto permite la verificación de pagos simplificada, conocida habitualmente como SPV.SPV no ofrece la misma seguridad que ejecutar un nodo completo.Sin embargo, proporciona a los clientes ligeros una forma más eficiente de verificar la inclusión de transacciones.Pruebas de Merkle en Ethereum
Ethereum utiliza estructuras de datos autenticadas basadas en Merkle para verificar datos de cuentas y almacenamiento.La documentación de Ethereum sobre los Merkle Patricia Tries explica que Ethereum utiliza estructuras trie enlazadas mediante hashes para que los datos de estado puedan verificarse criptográficamente.
Las pruebas de Ethereum pueden demostrar que una cuenta, un saldo, un nonce, un hash de código o un valor de almacenamiento pertenece a una raíz de estado concreta.El estándar EIP-1186 eth_getProof define un método RPC para crear pruebas de Merkle de cuentas y valores de almacenamiento de Ethereum.
Esto resulta útil cuando una aplicación quiere verificar el estado de la blockchain sin confiar ciegamente en un único proveedor de datos.La estructura de Ethereum es más compleja que un árbol de Merkle binario sencillo, pero la idea fundamental sigue siendo demostrar la pertenencia a una raíz de confianza.Pruebas de Merkle en airdrops
Las pruebas de Merkle se utilizan ampliamente en los airdrops de criptomonedas.Un proyecto puede crear una lista de direcciones de wallet que cumplen los requisitos y de los importes de tokens correspondientes.Cada entrada se convierte en una hoja de un árbol de Merkle.El proyecto almacena una única raíz de Merkle en el contrato inteligente.Cuando un usuario reclama tokens, envía los datos de la reclamación y la prueba de Merkle.El contrato comprueba si la prueba coincide con la raíz almacenada.Así se evita almacenar directamente on-chain todas las direcciones que cumplen los requisitos.También permite organizar airdrops grandes de forma más barata y escalable.Si las reclamaciones solo pueden realizarse una vez, el contrato debe seguir registrando si un usuario ya ha reclamado.Pruebas de Merkle en listas de permitidos de NFT
Los proyectos de NFT suelen utilizar pruebas de Merkle para listas de permitidos, preventas y acceso anticipado a la acuñación.En lugar de almacenar todas las wallets aprobadas en el contrato, el proyecto almacena una raíz de Merkle.Cada wallet aprobada recibe una prueba que demuestra que forma parte del conjunto de datos de la lista de permitidos.Durante la acuñación, el contrato inteligente comprueba la prueba antes de permitir que la wallet acuñe el NFT.Esto puede reducir las comisiones de gas y mantener la lista de permitidos completa off-chain.No obstante, los usuarios deben comprobar la página oficial de acuñación, la dirección del contrato y las instrucciones de reclamación antes de firmar nada.Pruebas de Merkle en contratos inteligentes
Los contratos inteligentes pueden verificar pruebas de Merkle directamente on-chain.Esto es habitual en airdrops, listas de permitidos de NFT, reclamaciones de recompensas, acceso restringido a titulares de tokens y sistemas de whitelist.La documentación de OpenZeppelin MerkleProof proporciona utilidades de Solidity para verificar si una hoja pertenece a un árbol de Merkle definido por una raíz.
Un contrato suele almacenar la raíz y verificar las pruebas enviadas por los usuarios durante una reclamación o una acción de acceso.Esto es más barato que almacenar on-chain una lista grande de direcciones o registros.El sistema de pruebas debe diseñarse con cuidado, ya que la codificación de las hojas, las reglas de ordenación y las funciones hash deben coincidir exactamente.Pruebas de Merkle y clientes ligeros
Los clientes ligeros utilizan métodos de verificación compactos en lugar de descargar y validar todos los datos de la blockchain.Las pruebas de Merkle ayudan a los clientes ligeros a verificar transacciones o valores de estado concretos frente a cabeceras de bloques o raíces de confianza.Esto puede hacer que las wallets cripto sean más prácticas en dispositivos móviles, navegadores y sistemas con capacidad de almacenamiento limitada.Un cliente ligero no es lo mismo que un nodo completo.Un nodo completo verifica más reglas y procesa más datos.Un cliente ligero utiliza pruebas para reducir los recursos necesarios y la dependencia de terceros, aunque se basa en un modelo de seguridad distinto.Pruebas de Merkle y bridges
Los bridges cross-chain y los sistemas de mensajería pueden utilizar pruebas de Merkle para verificar que un evento, una transacción o un valor de estado se ha producido en otra cadena.Por ejemplo, un bridge puede necesitar demostrar que se han bloqueado tokens en una red antes de liberar activos envueltos en otra red.Una prueba de Merkle puede ayudar a verificar que un evento concreto pertenece a un bloque o a una raíz de estado.Esto no hace que todos los bridges sean seguros por sí solo.La seguridad de un bridge también depende del diseño de los validadores, el código de los contratos, las suposiciones sobre los oráculos, las reglas de finalidad y el modo en que se confía en las raíces.Los usuarios no deben dar por sentado que las pruebas de Merkle eliminan todos los riesgos de los bridges.Pruebas de Merkle y rollups
Los rollups y los sistemas de escalabilidad suelen utilizar compromisos criptográficos para resumir grandes cantidades de datos de transacciones o de estado.Las pruebas basadas en Merkle pueden ayudar a verificar la inclusión, las salidas, las retiradas o las transiciones de estado, según el diseño del rollup.Un rollup puede comprometerse con lotes de transacciones o actualizaciones de estado mediante raíces que pueden comprobarse posteriormente.Las pruebas de Merkle pueden formar parte de este proceso de verificación.A menudo se combinan con pruebas de fraude, pruebas de validez, sistemas de disponibilidad de datos u otras herramientas criptográficas.La función exacta de las pruebas de Merkle depende del diseño del sistema de escalabilidad.Prueba de Merkle frente a árbol de Merkle
Un árbol de Merkle es la estructura completa de datos basada en hashes.Una prueba de Merkle es el pequeño conjunto de información que demuestra que una hoja pertenece a ese árbol.El árbol contiene todas las hojas y ramas.La prueba solo contiene los hashes hermanos necesarios para verificar un camino concreto.La raíz de Merkle representa todo el árbol.La prueba de Merkle conecta un elemento con esa raíz.Prueba de Merkle frente a raíz de Merkle
Una raíz de Merkle es un único hash.Una prueba de Merkle es una lista de hashes y otros datos de verificación relacionados.La raíz es el compromiso.La prueba es la evidencia.Una raíz por sí sola no demuestra que un elemento concreto esté incluido.Una prueba por sí sola no es fiable si no se dispone de una raíz válida.Se necesitan ambas para verificar la pertenencia.Prueba de Merkle frente a prueba de conocimiento cero
Una prueba de Merkle demuestra que un elemento concreto está incluido en un conjunto de datos comprometido.Una prueba de conocimiento cero puede demostrar una afirmación más amplia sin revelar la información privada que la sustenta.Las pruebas de Merkle suelen ser más sencillas y baratas de verificar.Las pruebas de conocimiento cero pueden admitir casos de uso más avanzados relacionados con la privacidad y el cálculo.Las dos herramientas también pueden utilizarse conjuntamente.Por ejemplo, un circuito de conocimiento cero puede demostrar de forma privada que un usuario está incluido en un árbol de Merkle sin revelar qué hoja le corresponde.Ventajas de las pruebas de Merkle
La primera ventaja es la eficiencia.Un verificador puede comprobar un elemento sin descargar el conjunto de datos completo.La segunda ventaja es la reducción de los costes de almacenamiento.Un contrato inteligente puede almacenar una raíz en lugar de miles de registros.La tercera ventaja es la escalabilidad.Es posible comprometerse con conjuntos de datos grandes mediante una raíz compacta y verificarlos con pruebas pequeñas.La cuarta ventaja es la integridad de los datos.Si se modifican los datos o la prueba, la raíz calculada no coincidirá.La quinta ventaja es la privacidad parcial.Un usuario puede demostrar que un elemento está incluido sin revelar el conjunto de datos completo.Riesgos y limitaciones de las pruebas de Merkle
El primer riesgo es confiar en una raíz incorrecta.Una prueba de Merkle solo demuestra la inclusión en el conjunto de datos representado por una raíz concreta.Si la raíz es falsa, está desactualizada o es maliciosa, la prueba puede inducir a error.El segundo riesgo es una codificación incorrecta de las hojas.Si las direcciones de wallet, los importes, los ID de token o los datos de reclamación se codifican incorrectamente, la verificación de la prueba puede fallar o comportarse de forma inesperada.El tercer riesgo son los errores de ordenación.Algunos árboles de Merkle ordenan los pares antes de aplicarles un hash, mientras que otros dependen del orden de izquierda a derecha.El cuarto riesgo son la repetición o las reclamaciones duplicadas.Los sistemas de reclamación deben registrar las pruebas utilizadas o las direcciones que ya han reclamado cuando cada usuario solo puede reclamar una vez.El quinto riesgo es el phishing.Los estafadores pueden crear páginas de reclamación falsas que imitan sistemas de pruebas de Merkle, pero piden a los usuarios que firmen transacciones peligrosas.Cómo verificar una prueba de Merkle
Empieza por confirmar la raíz de Merkle de confianza.A continuación, confirma los datos de la hoja, como la dirección de wallet, el importe, el ID de token o el hash de transacción.Aplica un hash a la hoja con el mismo método que se utilizó para construir el árbol original.Combina el hash de la hoja con cada hash hermano de la prueba.Aplica un hash a cada par en el orden correcto.Repite el proceso hasta calcular una raíz final.Compara la raíz calculada con la raíz de confianza.Si las raíces coinciden, la prueba es válida.Si las raíces no coinciden, la prueba no es válida.Malentendidos habituales sobre las pruebas de Merkle
Un malentendido habitual es pensar que una prueba de Merkle demuestra que un proyecto es legítimo.Solo demuestra que los datos pertenecen al conjunto representado por una raíz.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 tienen el mismo formato.Los distintos sistemas pueden utilizar funciones hash, formas de árbol, métodos de codificación y reglas de ordenación diferentes.Un cuarto malentendido es pensar que las pruebas de Merkle solo se utilizan para transacciones.También pueden verificar airdrops, listas de permitidos de NFT, valores de almacenamiento, estados de cuentas, eventos de bridges, datos de rollups y solicitudes de identidad digital.Preguntas frecuentes
¿Qué es una prueba de Merkle?
Una prueba de Merkle es una prueba criptográfica que demuestra que un dato concreto pertenece a un conjunto de datos más amplio representado por una raíz de Merkle.¿Es una prueba de Merkle lo mismo que una prueba de árbol de Merkle?
Sí. Por lo general, prueba de Merkle y prueba de árbol de Merkle se refieren al mismo concepto.¿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 un compromiso compacto con el conjunto de datos completo.¿Cómo verifica los datos una prueba de Merkle?
Utiliza la hoja objetivo y los hashes hermanos para reconstruir la raíz y compararla con la raíz de Merkle de confianza.¿Por qué se utilizan pruebas de Merkle en los airdrops?
Permiten que un contrato inteligente verifique si se cumplen los requisitos para reclamar sin almacenar directamente on-chain todas las wallets y sus importes.¿Por qué se utilizan pruebas de Merkle en las listas de permitidos de NFT?
Permiten que los contratos de NFT verifiquen si una wallet está autorizada para acuñar sin almacenar on-chain la lista de permitidos completa.¿Son privadas las pruebas 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.¿Se puede falsificar una prueba de Merkle?
Una prueba falsa debería fallar si el verificador utiliza la raíz, la función hash, la codificación de la hoja y el orden de la prueba correctos.¿Son las pruebas de Merkle lo mismo que las pruebas de conocimiento cero?
No. Las pruebas de Merkle demuestran la inclusión de datos en un conjunto comprometido, mientras que las pruebas de conocimiento cero pueden demostrar afirmaciones más amplias sin revelar datos privados.¿Qué deben comprobar los usuarios antes de utilizar una página de reclamación con prueba de Merkle?
Los usuarios deben verificar el sitio web oficial, la dirección del contrato, la raíz de Merkle, la solicitud de la wallet, las reglas de reclamación y los detalles de la transacción.Conclusión
Una prueba de Merkle es una herramienta fundamental de verificación cripto que demuestra que un dato pertenece a un conjunto de datos más amplio.Conecta una hoja con una raíz de Merkle de confianza mediante un pequeño conjunto de hashes hermanos.Esto permite verificar los datos de forma más rápida, barata y escalable que comprobando directamente un conjunto de datos completo.Las pruebas de Merkle se utilizan para verificar transacciones de Bitcoin, pruebas de estado de Ethereum, airdrops, listas de permitidos de NFT, contratos inteligentes, clientes ligeros, bridges y sistemas de rollup.Este concepto es potente porque combina datos compactos, hashes criptográficos e integridad verificable.Sin embargo, una prueba de Merkle solo es tan fiable como la raíz, la construcción del árbol, la función hash, las reglas de codificación y el código de verificación en que se basa.Los usuarios también deben estar alerta ante páginas de phishing y sistemas de reclamación falsos.Cuando se implementan correctamente, las pruebas de Merkle ayudan a que los sistemas cripto sean más eficientes, transparentes y requieran menos confianza.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

