Ataque Erebus pone a Bitcoin en peligro

¿Qué es el árbol de Merkle en Bitcoin y el árbol de Verkle en Ethereum?

En este post vamos a intentar explicar qué el árbol de Merkle en Bitcoin (Merkle Tree) y el árbol de Verkle en Ethereum. El árbol de Merkle es una estructura de datos dividida en varias capas que permite verificar, de forma rápida y eficaz, la información de un conjunto de datos relacionados entre sí, con una raíz única final. Es decir, relaciona las transacciones que entran a un bloque mediante la agrupación entre pares. En Bitcoin, los bloques están conectados mediante valores Hash. Cada cabecera del bloque contiene información relacionada con Merkle Root Hash, Versión, TimeStamp, Nonce, Target de dificultad y el hash del bloque anterior.

Qué es el árbol de Merkle

La base del funcionamiento del árbol de Merkle es el hashing, que en el caso de Bitcoin utiliza el famoso algoritmo de hash seguro SHA-256 (256 bits). Se realiza un hashing repetidamente hasta que solo quede un hash. Dicho hash será el que se introduzca en el bloque y se conoce como Merkle Root.

Todo sobre la criptografía de bitcoin y cómo ha cambiado

Por otra parte, podemos diferenciar distintos tipos de nodos dentro del árbol. Leaf Node hace referencia a los nodos que contienen hashes de transacciones y son considerados como los nodos hijos. Los Non-Leaf Node son conocidos como los nodos padres y son los que contienen los hashes de los nodos hijos.

¿Cómo funciona el árbol de Merkle?

Imaginemos que tenemos cuatro transacciones en el bloque (L1, L2, L3, L4). A estas transacciones se le aplica un hashing,  teniendo así un hash por cada transacción y originando un Leaf node ó nodo hijo. A continuación, se combinan los Leaf Nodes y se hashean, generando así un Non-Leaf Node o Nodo Padre, que es el un único hash originado del combinado de dos hashes. Es decir, si se combina el hash 0-0 y el hash 0-1 y se aplica un nuevo hashing, el resultado es el hash «cero». Finalmente, los Non-Leaf Nodes se vuelven a combinar y se hashean para crear la raíz de Merkle o Merkle Root. Este hash es el que se introduce en el bloque de la Blockchain. Este ejemplo es un caso sencillo, pero para casos como Bitcoin, donde el conjunto de datos es grande, también resulta de gran utilidad este método. Las transacciones se pueden verificar si las transacciones anteriores son verificables.

Descubriendo DeFi: cómo solicitar un préstamo saltándote los bancos

Beneficios del árbol de Merkle

Un árbol de Merkle nos permite validar la integridad de los datos de manera eficaz. Además, ocupa poco espacio en el disco en comparación con otras estructuras de datos. Los árboles de Merkle aportan una estructura de datos eficiente y no es necesario mucho tiempo para verificar la integridad de los datos. Otra ventaja notable es la verificación de pagos simples o SVP, que  consiste en solicitar una prueba de Merkle para corroborar que una transacción se encuentra en un bloque particular. Esto suele hacerse cuando se está ejecutando un nodo en un dispositivo con recursos limitados y no se desea descargar y hashear todas las transacciones de un bloque.

Árboles de Verkle

Asimismo, existe una alternativa a los árboles de Merkle, conocida como los árboles de Verkle. De hecho, esta solución se está convirtiendo en una parte muy importante en las actualizaciones de Ethereum. La idea principal del árbol de Verkle es que se puede construir un árbol de Merkle, pero sustituyendo las funciones criptográficas hash por compromisos vectoriales.

Por tanto, un árbol de Verkle tiene la misma función que un árbol de Merkle. Sin embargo, la diferencia principal es que los árboles de Verkle son mucho más eficientes en cuanto al tamaño en bytes. Realizar una prueba en un árbol de Merkle binario requiere alrededor de 1 kilobyte, pero en el árbol de Verkle la prueba requeriría al menos 150 bytes.

También puedes seguirnos en nuestros canales de Telegram Twitter

Julio José Marqués
Comparte esto:
Esta web utiliza cookies. Puedes ver aquí la Política de Cookies. Si continuas navegando estás aceptándola   
Privacidad