Resumen mediante IA
Mostrar más
¡Entérate rápidamente del contenido del artículo y calibra el sentimiento del mercado en tan solo 30 segundos!
Los árboles genealógicos se utilizan en aplicaciones informáticas como estructura de datos para la verificación y sincronización de datos. Los árboles de mercadeo también se utilizan para cifrar de forma más segura y eficiente los datos de cadena de bloques en Bitcoin y otras criptomonedas.
Con las criptomonedas, se utiliza una base de datos de árbol de Merkle para dividir de forma segura los datos del bloque y garantizar que no se pierdan, dañen o alteren. Este método de gestión de datos permite validar transacciones específicas sin descargar toda la cadena de bloques de terabytes. Es un método fiable, seguro y criptográfico para ejecutar la cadena de bloques.
Como resultado de la caída del gigante de la Bolsa Centralizada (CEX), FTX, muchos CEX han construido e implementado Merkle Tree como forma de Prueba de Reservas (PoR) para garantizar a los usuarios que sus fondos están seguros. En este artículo, analizaremos qué son los árboles de Merkle, su papel en la cadena de bloques y cómo un usuario puede validar sus fondos utilizando el árbol de Merkle.
Ralph Merkle, un informático reconocido por su trabajo en criptografía de clave pública, propuso árboles Merkle en el artículo de 1987 “Una firma digital basada en una función de cifrado convencional”. Merkle también inventó el hashing criptográfico.
Merkle tree es una estructura de datos matemáticos basada en hash que compila los resúmenes de todas las transacciones en un bloque. Es un método para comprobar rápidamente la precisión de los datos de forma descentralizada. Como resultado de sus funcionalidades, los árboles Merkle se utilizan de forma más eficaz y segura para cifrar los datos de la cadena de bloques.
Los árboles genealógicos a menudo se utilizan con redes entre pares (P2P) debido a la necesidad de compartir y validar la información de forma independiente. Comprendamos más sobre los árboles de Merkle y cómo funcionan.
El árbol de Merkle, también conocido como árbol hash, tiene una estructura de árbol binaria, con los hashes de los datos transaccionales en la fila inferior denominados "Nodos de hoja", los hashes intermedios denominados "Nodos sin hoja" y el hash en la parte superior denominado "Ruta". Aunque la mayoría de las implementaciones de árbol hash son binarias (cada nodo tiene dos nodos secundarios), también pueden tener muchos más nodos secundarios.
Al observar la estructura de un árbol de Merkle, todas las transacciones se agrupan en pares. Cada par tiene un hash calculado que se almacena directamente en el nodo principal. Estos nodos también se agrupan en pares, después de lo cual su hash se almacena en el siguiente nivel. Este proceso continúa hasta llegar a la raíz del árbol de Merkle.
Echemos un vistazo a cada uno de los nodos:
Estos son los hashes de cada transacción de criptomoneda en un bloque, también denominados ID de transacción (TXID). Puede ver el hash de la transacción cuando busca una transacción en un explorador de bloques.
A continuación, para crear una capa de nodos sin hoja por encima de los nodos de hoja, estos nodos de hoja se unen en pares. Se conocen como nodos sin hoja porque, a diferencia de los nodos de hoja, simplemente almacenan el hash de los dos nodos de hoja que representa y no contienen ID de transacción (o hashes). Como resultado, habrá la mitad de hashes (o nodos) en la capa de nodo sin hoja por encima de los nodos de hoja que en la capa de nodo de hoja. A medida que el árbol se estrecha a medida que asciende, estas capas de nodo sin hoja continúan siendo unidas por pares, lo que da como resultado la mitad de nodos por capa. Habrá dos nodos presentes en la capa final de nodo sin hoja. Esto crea la raíz de Merkle y es la ubicación del último hashing en un árbol de Merkle.
Con Bitcoin, los hashes de todas las transacciones se combinan en un único hash y se almacenan en el encabezado del bloque. La raíz de Merkle, también conocida como el hash de la raíz, es este hash en particular. Los nodos de hoja (ID de transacción/hashes) en la base del árbol Merkle se pueden verificar con esta raíz Merkle. Cuando se utiliza para criptomonedas, la raíz de Merkle garantiza que los bloques de datos estén inalterados, sin daños y completos.
Un árbol de Merkle es binario, lo que significa que el número total de nodos de hoja diferentes debe ser igual para que el árbol se construya correctamente. Cuando existe un número impar de nodos de hoja, el hash anterior se duplicará para proporcionar un número par de nodos.
Un árbol de Merkle está diseñado esencialmente para dividir grandes fragmentos de datos en fragmentos considerablemente más pequeños, lo que garantiza que todas las transacciones se puedan verificar rápidamente. El árbol resume cada transacción creando una pequeña huella digital de un conjunto específico de transacciones, lo que facilita a los usuarios verificar la disponibilidad de las transacciones en un bloque.
Los árboles de Merkle se forman mediante el hash de diferentes pares de nodos hasta que solo queda un hash, que se conoce como la raíz de Merkle. Estos árboles se construyen de abajo hacia arriba, y cada transacción consiste en hashes. Cada nodo de hoja es un hash singular de datos. En cuanto a los nodos sin hoja, estos son hashes de hashes anteriores.
Supongamos que un árbol de Merkle consta de cuatro transacciones etiquetadas como D0, D1, D2 y D3. Cada transacción se tacha antes de que el hash se almacene directamente en el nodo de hoja. Cuando esto ocurre, se crean los hash N0, N1, N2 y N3. Cualquier par consecutivo de nodos de hoja se resumirá entonces en un nodo padre mediante el hash N0 y el hash N1, lo que da como resultado el hash N4. Si el hash N2 y el hash N3 están unidos, se crea el hash N5. Ambos hashes, N4 y N5, se vuelven a tachar para crear la raíz de Merkle.
Este proceso se puede utilizar con conjuntos de datos extensos. La raíz de Merkle es responsable de resumir los datos presentes en transacciones específicas, todos los cuales se almacenan directamente en el encabezado del bloque. Esta técnica hace que la integridad de los datos se mantenga correctamente. En caso de que se cambie un detalle de la transacción en algún momento, la raíz de Merkle cambiará automáticamente junto a ella.
Existen muchas ventajas para la tecnología de cadena de bloques y las plataformas de criptomonedas cuando se utiliza un árbol Merkle para verificar transacciones, que incluyen desde una verificación eficiente hasta una detección de manipulación fácil.
Es fácil verificar la integridad de las transacciones prácticamente en muy poco tiempo. Debido a la estructura de los datos, es necesario utilizar muy poca memoria durante el proceso de verificación y la potencia informática necesaria se reduce significativamente.
Debido a que las cadenas de bloques suelen consistir en cientos de miles de bloques, cada uno de los cuales puede contener hasta varios miles de transacciones, validar los datos plantea dos desafíos principales: espacio de memoria y potencia informática. Se habría requerido que cada nodo de la red mantuviera una copia completa de cada transacción que haya tenido lugar alguna vez en la cadena de bloques si los árboles de Merkle no fueran un concepto en la cadena de bloques. Un nodo habría tenido que comparar cada línea de entrada por línea al verificar una transacción para garantizar que sus registros coincidan exactamente con los registros de red. La seguridad de la red podría ponerse en peligro si hubiera alguna discrepancia entre los registros. Como resultado, para comparar los registros y asegurarse de que no hubiera habido cambios, el ordenador utilizado para validar los datos habría necesitado mucha más potencia de procesamiento.
Por otro lado, los árboles genealógicos ofrecen una solución a este problema al reducir drásticamente la cantidad de datos que se deben tener a mano para las necesidades de verificación. Tienen cada entrada en el libro mayor, separando eficazmente los datos en sí de las pruebas que los respaldan. Sin conocer cada TXID en un bloque, puede comprobar un TXID utilizando la raíz Merkle con un árbol Merkle. Un árbol de Merkle es esencialmente una excelente manera de demostrar que hay algo presente en un conjunto de datos sin tener que descargar todo el conjunto. En consecuencia, se necesita menos potencia informática para validar las transacciones.
Como resultado de la distribución de las transacciones en el bloque entre los validadores, cada validador está trabajando en una transacción diferente al mismo tiempo. En comparación con un método en el que cada transacción se valida secuencialmente después de otra, esto es mucho más eficaz.
La verificación de pago simple (SPV), que le permite confirmar una transacción sin descargar un bloque o cadena de bloques completos, es posible gracias al árbol de Merkle. Esto permite el uso de un nodo de cliente ligero, más formalmente conocido como cartera criptográfica, para enviar y recibir transacciones.
La estructura hash facilita a los mineros la identificación de si se ha producido manipulación en las transacciones.
Se genera un valor hash distinto para cada bloque utilizando la raíz de Merkle. El bloque une un bloque a otro en la cadena de bloques incluyendo el hash del bloque anterior. El hash de cualquier transacción cambia cada vez que se modifica esa transacción. El bloque deja de ser válido como resultado de este cambio porque se transmite en cascada hasta la raíz de Merkle y altera su valor. Esto provoca un cambio en el hash del siguiente bloque, lo que invalida el resto de la cadena de bloques. Como resultado, el árbol de Merkle crea un registro inmutable de las transacciones del bloque.
Como resultado, también se puede evitar el doble de gastos. Si una persona intenta gastar dos veces su moneda digital, se generará un hash para esa transacción. Si ese hash coincide con los registros existentes presentes en la cadena de bloques, esa transacción se rechaza.
Los árboles mercantil han demostrado ser esenciales para la tecnología de cadena de bloques porque facilitan una verificación rápida y fácil de una manera que no es posible con otras técnicas. Estos árboles de Merkle proporcionan a los desarrolladores la capacidad de comprimir conjuntos de datos extremadamente grandes eliminando todos los datos innecesarios y convirtiendo los datos que permanecen en hash. Las diversas características proporcionadas por los árboles Merkle incluyen:
Como se mencionó al principio, tras la caída de FTX, los usuarios se han preocupado por si sus fondos se mantienen seguros en los CEX. Como resultado, se han desarrollado varios CEX para desarrollar un mecanismo de prueba de reserva Merkle Tree. En esta sección, analizaremos las pruebas de Merkle y cómo nuestros usuarios pueden validar sus fondos.
Una prueba de árbol de Merkle es un corte de un árbol de Merkle, no el árbol real. Y representarse como una matriz o secuencia (mostrada por la parte naranja en el diagrama siguiente).
Todos los nodos de hoja y la información de balance para un usuario único en particular de nuestra empresa están representados por los nodos de último nivel de la figura. Suponiendo que las personas rosas de la figura representan a los destinatarios previstos de las pruebas, extraemos las porciones naranjas de la figura nivel por nivel y presentamos los documentos de prueba a los usuarios en orden de altura. Es importante recordar que la prueba Merkle tiene dos componentes principales
Tomando como ejemplo el volumen de 10 millones de usuarios, la altura del árbol se puede calcular como Log2(10 000 000) = 23,2534966642 basado en la fórmula matemática, que da la altura del árbol como 24 niveles. Por lo tanto, los nodos del gráfico que no se proporcionan intencionadamente a los usuarios serán 24 - 2 = 22.
El árbol de Merkle es un árbol binario completo que nos permite calcular toda la información sobre su nodo principal con solo conocer los nodos izquierdo y derecho. Esta información completa se compone de dos partes: los datos de equilibrio y los datos hash.
La validación del árbol de Merkle se calcula derivando B y D y verificando que
Al utilizar una función de resumen de hash, el árbol de Merkle permite a los usuarios determinar si forman parte de todo el árbol sin tener que ser conscientes de cada nodo morado del gráfico. La prueba Merkle es exclusiva para ese usuario. Por ejemplo, un árbol Merkle de 24 niveles requiere una matriz de 23 elementos para verificar la información de saldo del usuario, y esta matriz solo puede confirmar que la prueba de saldo del usuario es precisa.
El usuario no puede reconstruir todo el árbol basándose en su información fragmentada siempre que no obtenga más de la mitad del número total de usuarios. Como resultado, el árbol de Merkle protege tanto la privacidad del usuario como la capacidad de la empresa para evitar la filtración de información sobre los activos generales de la empresa.
Hay 2 métodos disponibles para validar su cuenta de Bybit y comprobar la validez de los fondos.
Herramienta de validación de plataforma
Este método es el primero y el único de toda la red, y mostrará el proceso de derivación de nodos de validación de Merkle Tree de forma gráfica intuitiva en la plataforma de la empresa.
Herramienta de autovalidación
El código fuente de generación de árbol Merkle y el código de validación de la empresa están disponibles abiertamente en github para ayudar a los usuarios a programar su propia validación. El proceso de cálculo del árbol de Merkle implica una gran cantidad de cálculos de usuario, que normalmente se implementan mediante big data y Java.
*Un código Java abierto significa que está abierto a los usuarios sin retener ninguna información.
Bybit ha abierto el siguiente código para que los usuarios profesionales validen su propio archivo de prueba Merkle Tree copiándolo desde su página de prueba de reservas a su propia versión "pegajosa" del sistema a través del botón Copiar datos y almacenándolo como un archivo llamado myProof.json en el disco local.
Las estructuras de árbol de Merkle y raíz de Merkle ya se han adoptado ampliamente en muchas cadenas de bloques y plataformas de criptomonedas diferentes. A continuación se detallan tres aplicaciones de este tipo.
El bitcoin utiliza árboles Merkle de varias maneras, lo que hace que estos árboles sean parte integral de toda la plataforma Bitcoin. De hecho, estos árboles están presentes en cada encabezado de bloque Bitcoin. El hash de cada transacción disponible dentro del bloque se coloca en el encabezado. Cuando se trata de Bitcoin, la raíz de Merkle es importante tanto para la minería como para la verificación.
Los bloques de bitcoins consisten en encabezados que contienen metadatos, así como una extensa lista de transacciones. Esta lista suele ser mayor que el encabezado del bloque. Los mineros tienen datos hash para crear una salida que se adhiere a condiciones específicas, que es necesaria al validar un bloque. Los mineros pueden realizar billones de intentos separados antes de encontrar un bloque válido. Cada intento requiere que se cambie un número en el encabezado del bloque. Aunque pueden existir miles de transacciones separadas en un bloque, cada una debe estar tachada.
Las raíces de Merkle permiten a los mineros hacer que este proceso sea mucho más eficiente. Cuando comienza el proceso de minería, todo lo necesario es que las transacciones se realicen en un árbol Merkle, después de lo cual se puede colocar el hash raíz dentro del encabezado del bloque. En este punto, el minero solo debe almohadillar el encabezado del bloque, en lugar de todo el bloque.
Otro aspecto de la raíz de Merkle que se utiliza con Bitcoin implica el apalancamiento, que se centra en clientes ligeros. Cuando un nodo se opera en un dispositivo relativamente débil que tiene recursos limitados, los usuarios no podrán descargar y almohadillar cada transacción en un solo bloque. En su lugar, se puede solicitar una prueba Merkle, que es la confirmación de que una transacción está presente en un bloqueo. Al reducir el número de hashes que deben realizarse durante el proceso de verificación, la verificación puede producirse sin utilizar tantos recursos informáticos.
Ethereum se basa en una versión modificada del árbol Merkle, por lo que se le conoce como árbol Merkle Patricia. Cada bloque dentro de la cadena de bloques Ethereum consta de tres árboles Merkle, en lugar de un árbol binario, que es lo que sucede en los bloques Bitcoin. Cada una de las tres raíces tiene su propio propósito.
La raíz inicial se considera la raíz de cada transacción. En cuanto a la segunda raíz, muestra el estado de la transacción. La raíz final es la recepción de la transacción. Un usuario puede ver una raíz de Merkle para determinar si se encuentra una transacción en un bloque específico, así como determinar cuál es el saldo de su cuenta.
Al observar específicamente Hyperledger Fabric, esta plataforma de cadena de bloques utiliza un árbol de Merkle para calcular los datos de bloques como hash. El valor hash identifica el ancho del árbol de Merkle. Los árboles mercantil de la plataforma Hyperledger Fabric funcionan igual que los de la plataforma Bitcoin.
Los árboles genealógicos han demostrado ser muy útiles para plataformas de criptomonedas que desean asegurarse de que su proceso de verificación de transacciones sea lo más fácil y eficiente posible. Sin esta estructura, la verificación sería un proceso que requiere mucho tiempo porque los datos tendrían que transferirse a toda la red para su verificación. Las plataformas que utilizan árboles de Merkle se benefician de menos ancho de banda y requisitos de energía computacional.
Sin spam. Sólo un montón de contenido de calidad y actualizaciones sobre el mundo de las criptomonedas.