Image default
aplicación Árbol Merkle Árbol Merkle Árbol Merkle Blockchain que es Árbol Merkle uso Árbol Merkle

Árbol Merkle, la clave para la verificación de la blockchain



El funcionamiento de un Árbol Merkle es bastante sencillo. El algoritmo está diseñado para generar una estructura de datos en la cada uno de sus conjuntos de datos (nodos hijos) se va agrupando en conjunto de datos más grandes (nodos padres o ramas). Estos grupos se relacionan a su vez con otros nodos padres hasta reunir a todos los datos del sistema. Como resultado se obtiene el llamado Merkle Root. 

Un funcionamiento en cascada que poco a poco va absorbiendo los datos del sistema hasta minimizarlos en un solo punto. Este punto o Merkle Root, está deterministicamente relacionado con todos los conjuntos de datos y el hash que identifica a cada uno de ellos. El hecho de que este proceso sea determinístico es vital. Ya que garantiza que cualquier modificación que se haga en el conjunto de datos, por mínima que sea, cambiará el resultado del Merkle Root. 

De esta forma, podemos garantizar que los datos no han sido alterados en ningún punto, y de haber sido alterados, toda la estructura queda invalidada. El proceso de verificación en este punto tiene un punto a favor, y es que resulta computacional y algorítmicamente sencillo de realizar. Esto significa que no se necesita de potentes computadoras para realizarlo de forma rápida.

Estas características son las que convierten al Árbol Merkle en una potente opción para crear sistemas de verificación e integridad de datos informáticos.

Ejemplo de cómo funciona un Árbol Merkle

Ahora bien, lo anterior seguramente puede resultar complejo para quienes no tienen conocimientos básicos de informática. Así que para señalar de mejor manera su funcionamiento tomemos en cuenta el siguiente ejemplo:

En primer lugar, imagine que debe organizar y crear una firma de verificación global para una base de datos. Pero además debe garantizar que cada conjunto de datos pueda ser verificado de forma individual. El complejo problema lo lleva a dividir esta base de datos en las unidades de datos más pequeñas que pueda crear. Partiendo de este punto, usted computa un hash para esta pequeña unidad de datos. De esa forma, cada unidad de datos tendrá un hash único e irrepetible que lo identificará de forma única entre todos los demás fragmentos.

A partir de este punto, usted comienza con la segunda fase del proceso. En este punto, comienza a unir y agrupar estos conjuntos de datos en otros más grandes.  Para ello toma los hashes individuales de cada uno de los elementos del grupo, los suma algorítmicamente y crea un nuevo hash que representa a todo el grupo. 

Continua con este proceso de agrupación y creación de hashes, consciente de que este proceso le permite establecer una vinculación entre los distintos conjuntos de datos. Esto gracias a que el hash de un conjunto de datos superior siempre será el resultado de la suma de hash del conjunto anterior. 

De esa forma, al seguir escalando, la misma estructura se repite mientras se conectan todos los conjuntos a un conjunto de datos mucho mayor. Al terminar el proceso, tendrá un Merkle Root o la representación resumida de todos los datos dentro de la base de datos. Este le servirá para verificar y proteger la integridad de su base de datos.

Gracias a esta estructura usted soluciona dos problemas. El primero, puede detectar cualquier alteración que se haga en la base de datos. Esto gracias a que el más mínimo cambio en la información afectará a los hashes y la suma de los mismos diferirá, invalidando el proceso.

El segundo problema, es la dificultad y la necesidad de potencia de cómputo.  Las funciones de generación de hashes han sido creadas para resumir grandes cantidades de información en cortas cadenas de datos, que se generan muy rápidamente. De esta forma, su sistema no debe leer toda la información de la base de datos, tan solo basta revisar los hashes y verificar que el Merkle Root que originó en el primer proceso.





Source link