Merkle Trees y Merkle Roots ayudan a hacer posibles las cadenas de bloques

Los árboles Merkle y las raíces Merkle son una parte clave de la criptografía blockchain que sustenta Bitcoin y otras redes blockchain descentralizadas.

Resumen

Un árbol de Merkle es una estructura de datos que puede ayudar a demostrar la integridad de un conjunto de datos al tiempo que reduce significativamente los requisitos de memoria necesarios para hacerlo. Esta utilidad se logra a través de funciones unidireccionales llamadas funciones hash que fusionan capas de datos en una raíz Merkle singular capaz de validar todos los datos contenidos en el árbol Merkle asociado. La arquitectura de datos del árbol de Merkle es un componente clave de Bitcoin y otras cadenas de bloques descentralizadas, y se utiliza en redes peer-to-peer (P2P) como aplicaciones de intercambio de archivos, Bitcoin y otras cadenas de bloques descentralizadas.

Árboles de Merkle: “Hagámoslo todo”

El nombre del profesor de Stanford Ralph Merkle, los árboles de Merkle y las raíces de Merkle se propusieron como un nuevo proceso de verificación de datos en su artículo de 1979, “Una firma digital certificada”. Usando funciones unidireccionales llamadas funciones hash, un árbol Merkle, también llamado árbol hash binario, toma datos y los combina para crear una raíz Merkle que puede servir como una forma de verificar los datos en un árbol Merkle mientras usa significativamente menos memoria que métodos anteriores. En la red Bitcoin, una raíz de Merkle se crea mediante el hash de todos los hash de transacciones en pares, lo que produce un hash único para todas las transacciones en un bloque.

Treinta años después de “Una firma digital certificada”, Satoshi Nakamoto escribió sobre los árboles de Merkle e incluso incluyó uno de los artículos de Ralph Merkle en las referencias del documento técnico de Bitcoin. Sin los árboles Merkle y sus raíces Merkle asociadas, la transferencia de valor sin confianza de las cadenas de bloques probablemente no hubiera sido posible.

Árboles Merkle y Blockchain

La informática utiliza el término “árbol” para describir cualquier cosa con una estructura de datos ramificada. A diferencia de los que consumen CO2, los árboles Merkle tienen sus hojas en la parte inferior y una raíz singular en la parte superior. Cuando se trata de blockchains, un árbol Merkle tiene tres componentes clave:

  1. Nodos de hoja
  2. Nodos no foliares
  3. Raíz de Merkle

En la parte inferior del árbol Merkle, tienes nodos de hojas. Estos son los hash de transacción, más comúnmente conocidos como ID de transacción (TXID), de cada transacción criptográfica en un bloque. Si busca una transacción en un explorador de bloques, está mirando el hash de la transacción.

Luego, estos nodos de hoja se combinan en pares para crear una capa de nodos que no son de hoja por encima de los nodos de hoja. Se denominan no hoja porque, a diferencia de los nodos hoja, no contienen ID de transacción (o hash) y, en su lugar, simplemente almacenan el hash de los dos nodos hoja debajo de él que representa. Como resultado, la capa de nodos no hoja por encima de los nodos hoja tendrá la mitad de hash (o nodos) que la capa de nodo hoja.

Estas capas de nodos que no son hojas continúan uniéndose juntas en pares, creando la mitad de nodos por capa a medida que el árbol se estrecha en su camino hacia arriba. La última capa de nodo no hoja contendrá dos nodos. Aquí es donde tiene lugar el hash final en un árbol Merkle y crea la raíz Merkle.

La raíz de Merkle, a través del proceso de hash, ahora se puede utilizar para verificar los nodos de hoja (ID de transacción / hashes) en la parte inferior del árbol de Merkle. Si está familiarizado con el funcionamiento de Bitcoin, es posible que sepa que los hash de transacción se convierten en un solo hash que se incluye en el encabezado del bloque. Este único hash es la raíz de Merkle, que a veces se denomina hash raíz.

Ejemplo de árbol Bitcoin Merkle

Si bien un bloque puede contener cientos o miles de transacciones criptográficas, veamos un ejemplo con ocho transacciones:

  • Los ocho hash de transacción, más comúnmente conocidos como ID de transacción, constituyen el nivel de nodo hoja en la parte inferior del árbol. Estas transacciones se agrupan en pares.
  • Los hashes emparejados crean cuatro nodos no hoja, que no contienen hashes de transacciones. Estos nodos que no son hojas se agrupan en pares.
  • Esto crea otros dos nodos que no son hojas en el árbol Merkle. Luego, estos se combinan en un emparejamiento final.
  • Esto crea la raíz de Merkle singular en la parte superior del árbol de Merkle. La raíz de Merkle contiene un solo hash que puede validar cada hash de transacción en el bloque. Como tal, se incluye una raíz de Merkle en el encabezado del bloque de cada bloque en la cadena de bloques.

Los árboles de Merkle son una estructura de datos binarios que requieren un número par de nodos de hoja o hashes de transacciones. Si un bloque tuviera un número impar de hashes de transacción, el hash de la última transacción se duplicaría y se haría hash consigo mismo. Por ejemplo, si el ejemplo anterior tuviera siete transacciones, la séptima transacción se duplicaría y se codificaría con su copia. El resto del árbol procedería de la misma manera que en el ejemplo de ocho transacciones anterior.

Merkle Roots en Blockchain: ¿Por qué?

En teoría, en lugar de usar un árbol Merkle, podría simplemente mezclar todos los TXID en un solo lote. Sin embargo, si hiciste esto y quisieras verificar una transacción específica, necesitarías conocer cada TXID en el bloque asociado. Esto requeriría almacenar y transmitir una gran cantidad de memoria a través de la red. Con un árbol de Merkle, puede verificar un TXID usando la raíz de Merkle, sin necesidad de conocer cada TXID en un bloque. En esencia, un árbol de Merkle es una excelente manera de demostrar que algo está en un conjunto de datos sin necesidad de descargar el conjunto completo. Es por eso que se considera más eficiente que el simple hash como una forma de almacenar y verificar los datos de las transacciones.

A continuación, se muestran algunos de los principales beneficios de usar árboles Merkle para blockchains:

  • Reducen significativamente la memoria necesaria para verificar que los datos hayan mantenido su integridad y no hayan sido alterados.
  • Requieren que se transmitan menos datos a través de la red blockchain para verificar los datos y las transacciones. Esto mejora la eficiencia de una cadena de bloques.
  • Permiten la Verificación de pago simple (SPV) que le ayuda a verificar una transacción sin descargar un bloque completo o una cadena de bloques. Esto le permite enviar y recibir transacciones utilizando un nodo de cliente ligero, más comúnmente conocido como billetera criptográfica.

Mientras que los nodos completos aseguran la red y almacenan un historial completo de la cadena de bloques, estos nodos ligeros pueden usar la raíz Merkle en el encabezado de un bloque para verificar una transacción. Dado que Bitcoin tiene cientos de miles de bloques que contienen miles de transacciones cada uno, estos nodos ligeros o carteras criptográficas no podrían funcionar de manera eficiente sin la cadena de bloques que implementa el árbol Merkle y la arquitectura de datos raíz de Merkle.

Para poner esto en un contexto más claro, en abril de 2021, la cadena de bloques de Bitcoin contenía alrededor de 330 gigabytes de datos. Además, mientras que la raíz de Merkle incluida en un encabezado de bloque tiene solo 80 bytes, un bloque de Bitcoin completo es mil veces más grande. Además de todas estas consideraciones, un bloque de Bitcoin Cash tiene 8 MB (más de cien mil veces más grande que su encabezado de bloque asociado de 80 bytes). Sin los árboles de Merkle, cada nodo de la red necesitaría mantener una copia completa de cada transacción que haya ocurrido en una cadena de bloques, una tarea desalentadora y que requiere mucha memoria. ¿Te imaginas si tuvieras que almacenar 330 gigabytes de datos en tu teléfono solo para enviar y recibir bitcoins usando una billetera móvil?

Árboles Merkle en Bitcoin y más allá

Las eficiencias en el almacenamiento, la transferencia y la verificación de datos obtenidas de los árboles Merkle fueron un componente técnico clave de Bitcoin que hizo posibles sus avances criptográficos. La estructura de almacenamiento de datos del árbol Merkle utilizada en Bitcoin también es utilizada por Ethereum, las bifurcaciones de Bitcoin y muchas otras redes públicas de blockchain. Al hacer posible la SPV, las raíces de Merkle derivadas de los árboles de Merkle permiten a las personas de todo el mundo enviar, recibir y verificar transacciones con carteras criptográficas que se pueden ejecutar de manera fácil y sencilla en una computadora personal o un teléfono inteligente. Merkle Trees ayuda a las redes blockchain a verificar de manera eficiente y segura grandes estructuras de datos al llegar a la raíz Merkle del problema.

CriptoMundo

CriptoMundo.com es un medio digital independiente que difunde noticias y contenido sobre criptomonedas y tendencias emergentes de tecnologías financieras. Ofrece noticias, guías, artículos de opinión y gráficos en tiempo real.

Monedas

Bitcoin

Ethereum