Una inmersión técnica en la infraestructura subyacente de Conflux Network

tree-graph

Comprensión del algoritmo de consenso Conflux Tree-Graph

TL;DR
Conflux nació en el laboratorio de investigación del Dr. Andrew Yao, galardonado con el premio Turing, y se basa en un novedoso mecanismo de consenso Tree-Graph que optimiza la seguridad, la escalabilidad y la descentralización. Esta característica contrasta con otras redes conocidas como Bitcoin y Ethereum, que procesan los bloques estrictamente uno a uno, y es lo que da a Conflux su velocidad y escalabilidad.


El dilema de la escalabilidad de Blockchain

Las redes de criptomonedas como Bitcoin y Ethereum han sido promocionadas como el futuro del sistema financiero. Sin embargo, a medida que estas redes han ido creciendo, se ha hecho cada vez más evidente un problema persistente: la escalabilidad.

Por ejemplo, las redes Bitcoin y Ethereum están muy limitadas en cuanto al número de transacciones que pueden procesar en un momento dado. La red Bitcoin procesa una media de siete transacciones por segundo (TPS); Ethereum procesa entre 30 y 40 TPS. En momentos de mucho tráfico, las transacciones en ambas redes pueden tardar horas en completarse. Además, las tarifas de estas redes, sobre todo las de Ethereum, han excluido a muchos usuarios.

La arquitectura Tree-Graph de Conflux: La solución a los problemas de escalabilidad de Blockchain

Conflux. una cadena PoW, está construida con un mecanismo único de consenso Tree-Graph, una estructura de bloques dinámica utilizada para facilitar el procesamiento de 3000-6000 TPS sin sacrificar la descentralización o la seguridad. ¿Cómo funciona? A diferencia de las blockchains de Bitcoin y Ethereum, que son lineales por naturaleza, la estructura Tree-Graph de Conflux es divergente. Bitcoin y Ethereum sólo pueden confirmar un bloque en cada momento. El Tree-Graph de Conflux, por el contrario, puede confirmar múltiples bloques simultáneamente. Este procesamiento paralelo de bloques y transacciones reduce los tiempos de confirmación y aumenta sustancialmente el rendimiento de las transacciones.

Para conseguirlo, es necesario determinar con éxito el orden cronológico preciso de cada bloque de transacciones en Conflux. El Tree-Graph utiliza un algoritmo único para determinar qué transacciones se añadirán primero a la estructura de bloques. De este modo, el Tree-Graph convierte el complejo problema de escalabilidad de la blockchain en una simple ecuación de secuenciación.

Las relaciones interconectadas y dinámicas entre los bloques de transacciones

¿Cómo determina el Tree-Graph el orden cronológico de las transacciones? La respuesta a esta pregunta tiene que ver con la forma en que se organizan los bloques en la red Conflux. A diferencia de Bitcoin y Ethereum, los bloques de Conflux no forman una “cadena” lineal, sino una serie de bloques multifacéticos e interconectados. De ahí el nombre de “Árbol-Gráfico”: consiste en una red de bloques de transacciones que forman un gráfico. Estos bloques de transacciones se registran en una estructura jerárquica conocida como árbol.

El Tree-Graph es un gráfico acíclico dirigido (DAG). En un DAG, las conexiones entre puntos de datos (en este caso, bloques de transacciones) se denominan “aristas”. En el Tree-Graph, se forma una arista cada vez que un bloque hace referencia a otro bloque.

Hay dos tipos de aristas que puede tener un bloque de Tree-Graph: una arista padre y una arista de referencia. Las aristas padre se forman entre un bloque nuevo y otro bloque anterior. Cuando un minero se prepara para confirmar un nuevo bloque, debe elegir un bloque anterior para que funcione como bloque padre. Cada bloque sólo puede tener una arista madre.

0*LgzCUFBzwg4OQV5E
Las aristas padre se forman cuando un nuevo bloque hace referencia a un bloque anterior. En esta imagen, cada arista madre está representada por una flecha.

Además de la arista madre, cada bloque nuevo sin referencia puede hacer referencia a otros bloques sin referencia. Estas referencias forman bordes de referencia. Éstas proporcionan más información sobre qué operaciones se realizaron primero. Cuando un nuevo bloque forma una arista de referencia con otro bloque, la arista indica que el bloque referenciado fue anterior al bloque recién añadido. No todos los bloques del Tree-Graph tienen aristas de referencia.

0*fAH_mpZMlNnzbqpA
Los aristas de referencia se forman entre nuevos bloques no referenciados para proporcionar datos sobre qué bloques ocurrieron primero.

Una vez que un bloque de datos de transacción forma una arista madre y cualquier arista de referencia relevante, la transacción se secuencia y se registra en la estructura de bloques del Tree-Graph. La secuenciación en la red es crucial: es la principal forma de confirmar y registrar las transacciones. Establecer la validez de las transacciones mediante la secuenciación significa que los ataques de doble gasto son prácticamente imposibles en Conflux.

¿Cómo funciona el algoritmo de secuenciación Conflux?
¿Cómo se determina la secuencia en el Tree-Graph? Todo se reduce al algoritmo de secuenciación de Conflux, que funciona en varias fases. En primer lugar, el protocolo Conflux determina qué secuencia de bloques es la “cadena principal”, o cadena pivote. La cadena pivote se elige según la regla de la cadena más pesada, que favorece la secuencia de bloques con más aristas de referencia.

0*hygtYrLkR4Jci8fI
La cadena de pivote es la secuencia de bloques que tiene más aristas de referencia.

Una vez seleccionada la cadena de pivote, el resto de los bloques se secuencian en función de sus aristas de referencia. Por ejemplo, en la imagen anterior, el Bloque F hace referencia al Bloque B. Esto significa que cuando se creó el Bloque F, fue “testigo” del Bloque B. Por lo tanto, el Bloque B se creó antes que el Bloque F.

Si dos bloques de referencia parecen haber sido creados al mismo tiempo (por ejemplo, los bloques B y D), Conflux determina la secuencia de estos bloques utilizando algo llamado Epoch. Una epoch es un periodo de tiempo determinado, o una fase, en el ciclo de vida del Tree-Graph.

Por ejemplo, en la imagen anterior, el bloque A está en la época 0. Cada bloque posterior de la cadena matriz tiene su propia época: el bloque C = época 1, el bloque G = época 2, el bloque J = época 3, etc. Si un bloque no está en la Cadena Pivote, su Época está determinada por el primer bloque de la Cadena Pivote que lo referencia directa o indirectamente. Por ejemplo, el bloque F está en la época 3 porque el bloque J hace referencia a él.

https://twitter.com/Conflux_LATAM/status/1386056764773199874?s=20
Vídeo: Conflux: Visualización del Tree-Graph (TG)

Por lo tanto, el algoritmo de secuenciación en Conflux tiene dos pasos principales: primero, secuenciar los epoch en la cadena de pivote, y segundo, secuenciar todos los bloques dentro de cada epoch.


Resumen

El mecanismo único de consenso Tree-Graph es la solución única e innovadora de Conflux para el problema de escalabilidad de la cadena de bloques. Esto posiciona a Conflux para soportar protocolos y dApps que requieren velocidad a escala. Y como la única blockchain que cumple con las regulaciones, pública y sin permisos en China, Conflux es realmente un puente transaccional y tecnológico sin fronteras para los proyectos de criptografía de mentalidad global.


Conecta con nosotros:

Website / Github / Twitter / Discord / Telegram / Reddit / YouTube / Forum

Artículo/blog traducido por Maxi y revisado por Alex