Saltar al contenido
Guia Bitcoins

Qué es el árbol Merkle

¿Qué es el árbol Merkle?

Un ejemplo de un árbol binario de Merkle. Hash 0-0 y 0-1 son los valores hash de los bloques de datos 1 y 2, respectivamente, y 0 es el hash de la concatenación de hashes 0-0 y 0-1.

Un árbol de hachís de Merkle (Merkle hash tree) o árbol de Merkle o árbol de hachís es una estructura de datos de árbol, binaria o no, en la que cada nodo es una hoja no está marcado con la dirección de concatenación calculada de las etiquetas o valores (para los nodos de hojas) de sus nodos hijos. Son una generalización de las listas de hash y de las cadenas de hash.

Permite enlazar un gran número de datos separados a un único valor hash, el hash del nodo raíz del árbol. De este modo, proporciona un método seguro y eficaz para comprobar el contenido de grandes estructuras de datos. En sus aplicaciones prácticas, el hash del nodo raíz se firma a menudo para asegurar su integridad y que la verificación es completamente fiable. Demostrar que un nodo de hoja es parte de un árbol de hash en particular requiere una cantidad de datos proporcional al logaritmo del número de nodos en el árbol. Fue patentado en 1979 por Ralph Merkle.

El árbol de Merkle es el producto de un algoritmo que toma como entrada el conjunto de transacciones almacenadas en un bloque para verificar que no han sido modificadas. El bloque no se procesa como un todo, sino que cada transacción se evalúa por separado, mientras que el algoritmo las agrupa en segmentos enlazados, produciendo en última instancia un hash de todo el bloque.

Qué es el árbol Merkle

Los árboles de Merkle permiten la representación arbitraria de conjuntos de datos de tamaño considerable e identifican eficientemente si han sido comprometidos y qué parte de su estructura ha sido afectada, sin tener que procesarlos todos. Esto es posible utilizando las llamadas pruebas de Merkle.

Para aplicar una prueba Merkle, sólo necesita saber el hash raíz del grupo de datos que desea analizar. Siempre que esta raíz sea fiable, tanto la posición como la integridad de los datos relativos a un conjunto dado pueden verificarse estudiando sólo la rama del árbol asociada a los datos particulares. Incluso la prueba de Merkle no requiere que el árbol esté completo, sino que se pueda acceder al fragmento de interés.

Los árboles de Merkle juegan un papel vital en términos de integridad y seguridad de las cadenas de bloques, y se utilizan para la gestión de fuentes de programas con cambios de código de verificación distribuidos como métodos Git. El Sistema de Archivos Interplanetarios (IPFS) también hace uso de ellos.

IPFS puede convertirse en una alternativa a Internet porque tiene su propio sistema de nombres, IPNS, para dirigir el contenido que administra. Esto puede considerarse una solución ideal para eludir las prohibiciones en los casos en que las leyes locales impidan el acceso a ciertos contenidos web.

Aplicaciones del árbol Merkle

Actualmente, el mayor uso de los árboles Merkle es asegurarse de que los bloques de datos recibidos de otros colegas en redes peer-to-peer, aseguren que se reciben en buenas condiciones y sin ser cambiados. Permitir también que los datos del bloque puedan ser entregados por partes: un nodo sólo puede descargar la cabecera de un bloque (árbol) de una fuente, y una pequeña parte del árbol relevante para él de otra fuente, y aun así asegurarse de que los datos son correctos. La razón por la que esto funciona es porque los hash se propagan hacia arriba: si un usuario malicioso intenta hacer un cambio en una operación falsa en la parte inferior del árbol de Merkle, este cambio causará un cambio en el nodo superior y luego otro cambio en el nodo superior, hasta que finalmente se produzca un cambio en la raíz del árbol y por lo tanto en el hash del bloque, provocando que el protocolo tenga que registrarlo como completamente diferente (bloque y casi con seguridad una prueba de funcionamiento no válida).

Qué es el árbol Merkle

Uno de los usos más esperados para este tipo de estructura de datos sería la futura actualización con el protocolo Casper al protocolo Ethereum, la segunda criptomoneda con mayor capitalización de mercado. Con esto, se espera poder mejorar la eficiencia de la cadena de bloqueo en varios órdenes de magnitud.