Árbol Merkle la clave para la verificación de la blockchain
Solidez del árbol de Merkle
Contenidos
En la cadena de bloques de Bitcoin, un bloque de transacciones se ejecuta a través de un algoritmo para generar un hash, que es una cadena de números y letras que se puede utilizar para verificar que un determinado conjunto de datos es el mismo que el conjunto original de transacciones, pero no para obtener el conjunto original de transacciones. Sin embargo, el software de Bitcoin no ejecuta todo el bloque de datos de transacciones -que representa una media de 10 minutos de transacciones- a través de la función hash de una sola vez. Más bien, cada transacción se convierte en hash, luego cada par de transacciones se concatenan y se convierten en hash, y así sucesivamente hasta que hay un hash para todo el bloque. (Si hay un número impar de transacciones, una transacción se duplica y su hash se concatena consigo misma).
Visualizada, esta estructura se asemeja a un árbol. En el diagrama siguiente, “T” designa una transacción, “H” un hash. Nótese que la imagen está muy simplificada; un bloque medio contiene más de 500 transacciones, no ocho.
El árbol de Merkle es útil porque permite a los usuarios verificar una transacción específica sin descargar toda la cadena de bloques (más de 350 gigabytes a finales de junio de 2021). Por ejemplo, supongamos que desea verificar que la transacción TD está incluida en el bloque del diagrama anterior. Si se tiene el hash raíz (HABCDEFGH), el proceso es como un juego de sudoku: se consulta a la red sobre HD, y ésta devuelve HC, HAB y HEFGH. El árbol de Merkle permite verificar que todo está contabilizado con tres hashes: dados HAB, HC, HEFGH y la raíz HABCDEFGH, HD (el único hash que falta) tiene que estar presente en los datos.
¿Cómo se verifica una transacción con un árbol de Merkle?
¿Cómo se utilizan los árboles de Merkle en la tecnología blockchain y por qué? En la red Bitcoin, todas las transacciones dentro de un bloque se resumen en un árbol de Merkle produciendo una huella digital de todo el conjunto de transacciones. De este modo, un usuario puede verificar si una transacción está incluida en un bloque o no.
¿Qué es la cadena de bloques con estructura de árbol de Merkle?
¿Qué es un árbol de Merkle? Un árbol de Merkle es una estructura de datos que se utiliza en aplicaciones informáticas. En bitcoin y otras criptomonedas, los árboles de Merkle sirven para codificar datos de blockchain de forma más eficiente y segura. También se conocen como “árboles hash binarios”.
¿Qué utilizamos para verificar la integridad de todo el árbol de Merkle?
La raíz de Merkle es una especie de resumen de todas las transacciones de un bloque. Lo veremos en la integridad de los datos del árbol de Merkle. Utilizando la raíz de Merkle, los participantes de la red pueden verificar que las transacciones no han sido manipuladas.
Prueba Merkle
Un árbol hash, también conocido como árbol de Merkle, es un árbol en el que cada nodo hoja está etiquetado con el hash criptográfico de un bloque de datos, y cada nodo no hoja está etiquetado con el hash criptográfico de las etiquetas de sus nodos hijos. La mayoría de las implementaciones de árboles hash son binarias (cada nodo tiene dos nodos hijos), pero también pueden tener muchos más nodos hijos.
En realidad, un árbol Merkle es mucho más complicado (especialmente cuando cada ID de transacción tiene 64 caracteres). Aun así, este ejemplo le ayudará a hacerse una idea general de cómo funcionan los algoritmos y por qué son tan eficaces.
Piense en una cadena de bloques sin Árboles de Merkle para hacerse una idea de lo vitales que son para la tecnología de cadenas de bloques. Pensemos en Bitcoin porque su uso de los Árboles de Merkle es esencial para la criptomoneda y más fácil de entender.
Árbol de Merkle java
Una cadena de bloques se compone de varios bloques vinculados entre sí (de ahí el nombre de cadena de bloques). Un árbol de hash, o árbol de Merkle, codifica los datos de la cadena de bloques de forma eficiente y segura. Permite la verificación rápida de los datos de la cadena de bloques, así como el movimiento rápido de grandes cantidades de datos de un nodo informático a otro en la red de cadena de bloques entre pares.
Cada transacción que se produce en la red blockchain tiene un hash asociado. Sin embargo, estos hash no se almacenan en un orden secuencial en el bloque, sino en forma de una estructura arborescente en la que cada hash está vinculado a su padre siguiendo una relación arborescente padre-hijo.
Por ejemplo, consideremos un bloque de siete transacciones. En el nivel más bajo (llamado nivel de hoja), habrá cuatro hashes de transacción. En el nivel uno por encima del nivel hoja, habrá dos hashes de transacción, cada uno de los cuales se conectará a dos hashes que están por debajo de ellos en el nivel hoja. En la parte superior (nivel dos), estará el último hash de transacción llamado raíz, y se conectará a los dos hashes que están por debajo de él (en el nivel uno).
Pitón del árbol de Merkle
Los árboles de Merkle son increíblemente valiosos cuando se trata de blockchains. En los sistemas distribuidos, los árboles de Merkle ayudan a verificar fácilmente la información sin inundar la red con datos innecesarios. Si nos fijamos en la cronología, la primera mención del árbol de Merkle se produjo a principios de los años 80, cuando el informático Ralph Merkle, famoso por la criptografía de clave pública, introdujo el árbol de Merkle para verificar la integridad de los datos en una red entre pares. A continuación, introdujo el concepto de hashing, como un nuevo modo de conducta de verificación.
El objetivo de este artículo es ayudar a los principiantes en la comprensión de la idea del árbol de Merkle cuando se trata de la representación de datos y también de élite en diferentes operaciones realizadas en él. Sin más preámbulos, vamos a comprobarlo.
¿Qué le viene a la mente cuando piensa en un ÁRBOL? Un objeto físico decorado con deliciosas hojas verdes, ramas, un tronco enorme y una raíz firme y fuerte. Sin embargo, en la jerga informática, “árbol” tiene un significado diferente. Aquí se refiere a una estructura de datos parecida a un árbol “invertido”.