The mathematics behind blockchain (parte V): El árbol de Merkle como base la cadena de bloques
Szabo revisando las referencias del artículo de Satoshi Nakamoto encontró el nombre de Ralph Merkle. Szabo ha considerado a Merkle uno de los criptógrafos más reconocidos del mundo, y le resulta gratificante que Nakamoto incluyera los árboles de Merkle dentro de su moneda electrónica.
Además no le resulta raro, ya que en 1990 Merkle, publicó un trabajo llamado ‘A Certified Digital Signature’ (Merkle R.C., 1990) donde expone cómo los sistemas de firmas digital pueden transformar la estructura de confianza en las redes y quienes participan en ellas.
Pero el árbol de Merkle es uno de sus trabajos en la informática que no están estrechamente ligados al campo de la criptografía. Los árboles de Merkle consiste que un único árbol permite verificar, de forma rápida y económica, la información de un conjunto de datos y Szabo ha comprobado en el documento que es una tecnología básicas que su fundamenta la moneda electrónica, ahora denominada criptomoneda bitcoin.
Por tanto, el árbol de Merkle es una estructura de datos divida en varias capas que tiene como finalidad relacionar cada nodo (usuario de la red blockchain) con una raíz única asociada a los mismos, como se puede ver en la imagen:
Para conseguir la relación que indica el árbol de Merkle, cada nodo debe estar identificado con un identificador único, es decir, la función hash. Estos nodos, llamados nodos hijos, podemos considerar que son las hojas del árbol, se asocian luego con un nodo superior denominado nodo padre, podemos considerar que los ramas del árbol. Por tanto el nodo padre, las ramas, tendrá un identificador único, función hash, resultado de la función hash de sus nodos hijos.
Esta estructura se repite hasta llegar al nodo raíz, o denominado también raíz Merkle, que está relacionado con todos los nodos del árbol.
Por tanto, se puede considerar que un árbol Merkle es un estructura que relaciona todas las transacciones y agrupa para tener la dirección hacia la raíz. Y sí una función hash es cambiada, cambiarán todas las funciones hash que componen el árbol hasta llegar a la función hash de la raíz. Por tanto, es invalidará la autenticidad de la información de todo el árbol y, por esto, que permite al árbol de Merkle dar una alto nivel de seguridad a la criptomoneda bitcoin.
Después Szabo de recordar el funcionamiento del árbol de Merkle, ve que el uso de este planteamiento es fundamental en el uso de la criptomoneda bitcoin y, posteriormente, para el uso en la tecnología blockchain.
Gracias al uso del árbol de Merkle, se puede descargar todo el historial de la criptomoneda bitcoin y verificar si ha habido algún cambio dentro de la estructura de los bloques. Por tanto, es posible bajar un raíz de función hash específica y desde allí iniciar la creación del historial cuando un usuario de bitcoin se lo descarga en su ordenador.
Como esa raíz de la función hash está relacionado con los bloque anteriores, lo único que de hacerse es verificar que no ha habido ninguna modificación en el hash. Para realizar esto, se puede ir al historial de los nodos en bitcoin y verificar la raíz de la función hash coincide. Sí esta información coincide, el usuario puede utilizar su nuevo nodo de cliente de la criptomoneda bitcoin.
Otra utilidad que pueden tener los árboles Merkle en la tecnología blockchain es en los sistemas de archivos. Un sistema de archivos es la estructura de los datos que un sistema utiliza para seguir la pista de los archivos que se están almacenando.
Otro uso que pueden tener los árboles Merkle es el seguimiento de las diferentes versiones que puede tener un software, ya que del tipo de software relaciona con el sistema de seguimiento de cambios dentro de un repositorio, como el Github, o espacio de trabajo donde se están almacenando los diferentes archivos. De esta forma, cada cambio realizado a un bloque nuevo pasa por un proceso de hashing que vuelve a pasar por el contenido del su repositorio y este genera una función de hash única de este espacio de trabajo, denominada commit.
Continuará…
Referencias:
- Merkle R.C. (1990) A Certified Digital Signature. In: Brassard G. (eds) Advances in Cryptology — CRYPTO’ 89 Proceedings. CRYPTO 1989. Lecture Notes in Computer Science, vol 435. Springer, New York, NY