Fundamentos de Blockchain: ¿qué es un Merkle tree?

Publicado el 4 de Diciembre 2019 a las 12:04 PM

El Merkle tree es uno de los métodos más utilizados para la verificación de datos en un blockchain. Este destaca por su alta fiabilidad y la rapidez con la que permite llevar a cabo las operaciones de transmisión de datos.

1500x844_blockchain_merkle_tree.jpg

Un Merkle tree, árbol de Merkle o árbol hash binario es, según la definición del especialista Luis Francisco Rosales, profesor del curso Blockchain y disrupción en la industria financiera del PEE de ESAN, "una estructura de datos usada en el blockchain que sirve para resumir y verificar la integridad de una base de datos". Esta, según el docente, es "parte fundamental del blockchain hoy en día". 

Este sistema recibe su nombre de Ralph Merkle, quien desarrolló el mecanismo en 1979 para agilizar la comprobación de grandes bloques de datos. Se caracteriza por ser una estructura ramificada, como un árbol invertido, en la que se parte desde los nodos base (hojas) y se escala progresivamente a través de nodos padre (ramas) hasta llegar al nodo raíz o Merkle root. Este último es el identificador principal que permitirá verificar el conjunto de datos como un todo.

¿Cómo funciona un árbol de Merkle?

El proceso para la generación de un árbol hash binario es bastante directo e incluso puede parecer trivial. A cada nodo base se le asigna, usando alguno de los mecanismos criptográficos, un hash (identificador) único. Una vez que todos estos nodos cuentan con su propio hash se procede a concatenarlos en pares y a esta suma se le asigna un nuevo identificador.

De esta manera se prosigue en cada nivel, concatenando por pares y generando en cada uno su propio hash. La repetición se lleva a cabo hasta que ya no quedan pares que sumar, obteniendo un único hash principal o Merkle root.

¿Cuáles son las principales características de un Merkle tree?

1. Eficiencia: La idea principal detrás del desarrollo del árbol de Merkle, y la razón por la que sostiene la funcionalidad del blockchain, es la eficiencia que ofrece al verificar grandes lotes de data. Esto se debe a su propia estructura ramificada, que permite chequear la integridad del árbol completo con tan solo analizar el nodo raíz.

2. Rápida sincronización de datos: Dada su propia naturaleza ramificada, esta estructura permite que, de ser necesario, la actualización de los datos que la componen se haga de una manera distribuida entre todos los pares que contengan la información y no solo a través de un único nodo. De este modo, cualquier sincronización se hace de una forma mucho más rápida y eficaz.

3. Seguridad: Por la forma en la que operan los procesos de hashing, la más mínima modificación en el contenido de un archivo generará un identificador totalmente distinto. Ya que de estos identificadores depende toda la estructura de un Merkle tree, resulta casi imposible alterar los datos sin que de inmediato se produzca un efecto en cadena que termine por modificar la propia raíz que se utiliza para verificar la integridad de todo el bloque.

Blockchain en la industria farmacéutica

Con la evolución del blockchain, las distintas tecnologías que la componen han formado un ecosistema denominado Distributed Ledger Technologies (DLTs), que ha permitido que distintas industrias la adopten, entre ellas el Sector Farmacéutico.

Las DTLs tienen como objetivo facilitar el almacenamiento y procesamiento de información de manera distribuida, eficiente, segura y transparente. Esto se logra mediante protocolos de consenso entre los participantes de la red, que permiten descentralizar la sincronización, réplica y entrega de la data, sin necesidad de un tercero que valide el proceso.  

La industria farmacéutica ya viene utilizando este nuevo ecosistema en la optimización de procesos de la producción de medicamentos, detección de medicamentos falsos y gestionar la cadena de suministros, entre otros.

El árbol de Merkle aplicado fuera del blockchain

El uso más común y conocido de los árboles hash binarios se realiza en el mundo del blockchain, en sistemas como Bitcoin y Ethereum, sin embargo, también se aplica en otros campos de la informática.

  • Sistemas de archivo: Algunos sistemas operativos han implementado los árboles de Merkle para responder a las demandas de sus usuarios de manera rápida. El más destacado es el Zettabyte File System, ZFS, desarrollado por Sun Microsystems en el 2004. Su resistencia a fallos, recuperación y corrección de errores y su alta escalabilidad dependen en buena medida de la utilización de los árboles de hash binarios.
  • Sistemas de versionamiento de software: Para facilitar el seguimiento de cambios y versiones en grandes espacios de trabajo, como Git, se implementa el uso de Merkle trees. De esta manera resulta más sencillo para todos los involucrados acceder a versiones previas de un proyecto sin afectar el flujo de trabajo en la versión más reciente. 

El uso de árboles de Merkle como mecanismo para resumir y verificar grandes bloques de datos se ha convertido en una de las formas más populares de llevar a cabo esta tarea, dándole una gran importancia dentro del mundo del blockchain y en la informática en general.

Si quieres conocer más sobre Merkle trees y todo lo fundamental sobre blockchain, participa en el curso Blockchain y disrupción en la industria financiera del PEE de ESAN.

Fuentes:

¿Qué es un Árbol Merkle?

Funciones hash y el árbol de Merkle: los escudos criptográficos de blockchain

Merkle Tree Hashing: How Blockchain Verification Works

Blockchain Fundamentals #1: What is a Merkle Tree?

What is a Merkle Tree? Beginner's Guide to this Blockchain Component

¿Qué ventajas ofrece blockchain a la industria farmacéutica?