Árbol de Merkle
El árbol de Merkle es un sistema de organización y creación de datos que se basa en un modelo de crecimiento en pirámide.
Este modelo de pirámide invertida se origina en que a partir de un dato que se utiliza como ráiz, surgen 1 o más subdatos que parten de este dato raíz. En otras palabras, es como si plantaramos un árbol, este produjera semillas, y esas semillas las plantáramos de nuevo y crecieran más árboles, y así sucesivamente.
Este tipo de estructuras se dan en la mayoría de proyectos blockchain, ya que para incluir nuevos bloques en la cadena, es necesario verificarlos antes de incluirlos de forma definitiva.
Por tanto, el árbol de Merkle es esencial en la mayoría de los procesos de validación en blockchain, puesto que es el modelo más frecuente. Por otro lado, su creador no lo concibió pensando en esta tecnología, ya que fue en 1979 cuando Ralph Merkle diseñó este sistema de validación de datos.
Características del árbol de Merkle
La característica principal del árbol es que sirve para relacionar y organizar información para así, comprobar el origen de esta. También es útil para estructurar grandes cantidades de datos. Además, cabe destacar que su método de validación para por comprobar el hash, el cual, es el identificador que posee cada dato, información o archivo, dependiendo del caso.
En este sentido, es importante saber qué es un hash en criptoactivos. De forma resumida, un hash es un identificador criptográfico que se relaciona con, por ejemplo, un archivo. Este archivo posee un nombre y una extensión, las cuales serán ocultadas bajo un nombre aleatorio que no nos arrojará ninguna pista de qué es y qué hay dentro.
Partiendo de esta base, el árbol de Merkle tiene como tarea relacionar datos en base a su origen. Esto pasa cuando tenemos una serie de archivos base (nodo padre) que da lugar a otros archivos que descienden del mismo (nodos hijos).
A modo de aclaración, un nodo es una red de computadoras unidas entre sí vía proyecto blockchain (por ejemplo Bitcoin).
Funcionamiento del árbol de Merkle
El árbol Merkle posee un funcionamiento básico y bastante mecánico fácil de comprender, el cual, se va a exponer gráficamente de la siguiente forma:
Como se puede observar, se da un denominado ‘root hash’ ( en español, hash raíz) que posibilita la existencia del resto de datos. El resto de hash son los denominados nodos padre y nodos hijo, que, dependiendo del caso, un nodo puede ser padre de varios hash, pero sólo ser hijo de uno sólo bajo un esquema simple. En esquemas más avanzados se podría combinar la raíz de más de un hash y así, pasarían a tener un nodo padre y madre.
Luego, sabiendo cómo se organizan y originan los datos de un conjunto de nodos, podremos comprobar si las referencias son correctas y así poder validar la operación o no. Es un sistema básico y sencillo que lo dota de una seguridad bastante sólida.
Ejemplo de árbol de Merkle
Dado un root hash básico con identificador ABCD1234, determinar qué hash podría ser hijo directo:
- Hash AB12…
- Hash EFGH5678…
- Hash ABCD…
- Hash A&%$4…
En primer lugar, debemos tener en cuenta que el hash root posee la base general del resto de hash. Luego teniendo esto en cuenta, y afirmando de una forma general dado un ejemplo sencillo, los apartados a y c serán los que podrán provenir del hash root indicado.
Por otro lado, los apartados b y d no muestran una relación directa con el has root, ya que poseen un identificador que no proceden en su forma base, del hash root.