¿Qué es un Árbol Merkle?

que-es-un-arbol-merkle
7 min read

En el contenido de cualquier bloque de Bitcoin podemos encontrar una estructura que es denominada Árbol Merkle o Merkle Tree. Si bien muchos no tenemos muy en claro qué es, este es un componente vital para el funcionamiento de la cadena de bloques.

Es por eso que hoy vamos a hacer un repaso general sobre estos árboles, que si bien no se plantan sobre tierra firme ni se riegan, han dado muchos buenos frutos. Tal es así, que hasta es normal ver a gente del espacio cripto con un Árbol Merkle estampado en sus camisas, gorras y laptops (mmm, tal vez podríamos sortear alguna en nuestro grupo de Telegram).

Los árboles Merkle son una estructura de datos que han sido creados con el propósito de hacer más eficiente la verificación de gran cantidad de datos.
Para hacerlo, relacionan estos datos a través de técnicas criptográficas y de manejo de información.

Este árbol o estructura de datos está dividido en varias capas que tienen el objetivo de relacionar cada nodo de la red con una raíz única asociada a las mismas. Para hacerlo posible, cada nodo debe poseer un identificador único (también llamado hash). 

Estos primeros nodos (hojas) se asocian con un nodo superior o nodo padre (rama). Este nodo padre, llevará un identificador único que es resultado del hash de sus nodos anteriores (hojas). Así, sucesivamente se repite la estructura hasta llegar al nodo raíz o raíz merkle cuya impronta está asociada a todos los nodos del árbol.

De manera resumida, es así como los Merkle Trees pueden relacionar grandes cantidades de datos en un solo punto o Merkle Root (raíz). Gracias a esto la verificación o validación de cualquiera de esos datos pasa a ser mucho más rápida y eficiente. Así, ya no será necesario verificar toda la estructura sino simplemente habrá que verificar la raíz.

¿Cómo funciona un árbol Merkle?

Para entender un poco mejor lo que hablamos el párrafo anterior, ampliemos sobre el funcionamiento de un árbol merkle:

Este árbol es una estructura que relaciona todas las transacciones y posteriormente las junta entre pares para crear un Root Hash o “dirección raíz”. Este hash tiene relación con todos los hash que existen en el árbol.

Si un hash es modificado, haría que cambien todos los hash hasta llegar a la raíz del árbol y esta raíz invalidará la autenticidad de la información del árbol completo.

Esta característica es la que le otorga un nivel de seguridad muy alto a los árboles merkle.

Ejemplo de Árbol Merkle

Imagina un bloque en la blockchain de Bitcoin que lleva un hash (código) único e irrepetible. Este bloque está vinculado a una capa superior por medio de este hash. De este modo, los bloques de arriba señalan siempre a los bloques de abajo.

Y además el hash de los bloques superiores es el resultado de la suma de información que contiene el nuevo bloque con el hash del bloque anterior. De este modo, al seguir escalando, la estructura misma del árbol se va entrelazando y conforma un gran bloque de datos

Un problema u alteración en un bloque invalida a todo el resto de los bloques. Este sistema facilita la verificación de los datos de los bloques y la detección de cambios de hashes.

que-es-un-arbol-merkle

Ralph Merkle fue el creador de este diseño en el año 1979, con el fin de agilizar el proceso de verificación de grandes cantidades de datos.

Características de los árboles Merkle

Entre las características más importantes de estos árboles encontramos:

– Son un medio muy eficiente para crear una estructura de datos distribuida.

– Brindan una gran seguridad y resistencia a posibles alteraciones de datos.

– Disminuyen la cantidad necesaria de datos y mejoran el nivel de rendimiento en la transmisión de datos.

– Permiten hacer “disección” para hacer búsquedas de verificación más veloces sin poner en riesgo la seguridad y trazabilidad.

– Tienen bajo costo computacional y son muy eficientes.

– Poseen una gran capacidad de adaptación a diferentes sistemas y han sido utilizados para software de base de datos, estructuras de llaves públicas, redes distribuidas peer-to-peer, sistemas de versionamiento, etc.

Relación entre Árbol Merkle y Blockchain

Si te preguntas cuáles son los usos de los Árboles Merkle en la actualidad, encontrarás que una de sus principales aplicaciones son las cadenas de bloques.

Tanto es así, que es parte fundamental de una blockchain ya que gracias a ellos, el software cliente permite descargar el historial completo de la cadena y verificarlo. Además sirve para cortar parte del historial y reducir el peso creando los
nodos podados.

El uso de los árboles merkle en la tecnología blockchain es vital. Gracias a su uso, el software cliente puede descargar todo el historial de la blockchain y verificarlo en caliente. De hecho, su uso facilita el proceso al permitir “podar” (tomar solo una parte del historial) el historial y reducir el tamaño de la descarga.

Esto no perjudica la seguridad del cliente, ya que gracias al árbol merkle, se puede descargar un “hash raíz” determinado y empezar a crear un historial desde ese punto. Como ese hash raíz tiene relación con todos los bloques que lo anteceden lo único que debe hacer es verificarlo.

Por eso, se acude a los nodos completos de Bitcoin que poseen todo el historial de transacciones y simplemente se chequea que el root hash tomado coincida. Una vez hecho esto, el usuario puede usar tranquilamente su nuevo nodo cliente Bitcoin.