Principios técnicos de GHOST, DAG, SPECTRE, PHANTOM y CONFLUX
?El concepto DAG se considera una nueva generación de tecnología blockchain (blockchain 3.0) después de Bitcoin y Ethereum. Entonces, ¿qué es la cadena de bloques DAG? ¿Cuál es el origen del DAG? ¿Cuál es su concepto técnico? ¿Cuáles son los protocolos que se ejecutan en la cadena de bloques DAG?
Para explicar DAG no se puede prescindir de Yonatan Sompolinsky y Aviv Zohar, dos israelíes que propusieron el concepto de blockchain DAG. Antes de DAG, Aviv Zohar propuso un protocolo GHOST (Ethereum adoptó el protocolo GHOST en sus primeros días), que resolvió los problemas de seguridad causados por las bifurcaciones de cadena, y la estructura de datos de la cadena de bloques bifurcada bajo el protocolo GHOST cambió de una cadena a una árbol (Árbol), y luego Aviv Zohar propuso además un protocolo inclusivo. Según las reglas del protocolo inclusivo, la estructura del bloque se convirtió en un gráfico acíclico dirigido (DAG).
A continuación, este artículo:
?1. Presentará el protocolo GHOST y los principios de diseño detrás del origen de DAG
?2. Bloques tipo DAG Protocolos para diseño de cadenas, SPECTRE, PHANTOM y CONFLUX.
El protocolo GHOST es un protocolo para resolver el problema de la reducción de la seguridad de la cadena causada por las bifurcaciones.
?A continuación se presentará el protocolo GHOST en detalle explicando qué es una bifurcación, por qué una bifurcación reducirá la seguridad de la cadena y por qué la expansión en la cadena conducirá a más bifurcaciones.
¿Por qué una transacción de Bitcoin tiene que esperar 6 bloques?
?Esperar no es prevenir 51 ataques. 6 bloques detrás, si tienes más de 51 potencia de cálculo, siempre que dure lo suficiente, podrás generar una cadena más larga para completar el ataque. Es para prevenir el riesgo de horquillas.
?En Bitcoin, en circunstancias ideales, existe la misma cadena de bloques entre diferentes nodos, y todos los nodos extraen basándose en el mismo bloque. Sin embargo, cuando dos nodos mineros extraen casi simultáneamente un nuevo bloque, cuando lo hacen. Al recibir el bloque generado por la otra parte, diferentes nodos elegirán minar en función de uno de los bloques y se generará una bifurcación. Luego, el nodo elegirá cuál es la cadena principal para la minería en función de qué bifurcación es más larga, en lugar de descartar todos los bloques de bifurcación de la cadena principal.
?Bitcoin tendrá dos bifurcaciones cada día, pero es casi imposible tener seis bifurcaciones consecutivas, por lo que hay que esperar el tiempo de confirmación de 6 bloques. (Este tipo de bifurcación no es causada por ataques maliciosos, sino por accidentes y retrasos en la red.
La bifurcación anula la teoría de que "Bitcoin es seguro si el ataque no excede 51 potencias informáticas". < /p >
?En Bitcoin, cuando una cadena se bifurca, la cadena con la bifurcación más larga se seleccionará como la cadena principal. Un ataque malicioso consiste en generar una cadena más larga que la cadena principal para reemplazar la cadena principal. p>
?El bloque azul en la figura siguiente representa el bloque honesto y el rojo representa el bloque de ataque. Los bloques azules No. 2 y No. 3 se bifurcarán. En este momento, el nodo atacante puede generar 5 ataques. bloques (rojos). Una cadena más larga completa el ataque. Aunque el número total de bloques azules es mayor (hay 6), los bloques bifurcados no aumentan la longitud de la cadena. En este caso, el atacante rojo tiene más potencia de cálculo. (asumiendo que cada bloque tiene éxito si el bloque representa la misma potencia de cálculo) y no excede 51.
?La razón por la que Bitcoin es actualmente seguro es que el tiempo de bloqueo de 10 minutos reduce la posibilidad de bifurcaciones, pero su potencia informática de seguridad real sigue siendo inferior a 51. En otras palabras, no requiere 51 potencia informática. El ataque fue exitoso.
El uso de bloques grandes y tiempos de producción pequeños provocará muchas bifurcaciones en la cadena. ?
?Bitcoin actualmente procesa un volumen de transacciones muy bajo. Una forma factible de mejorar esta falla es aumentar el tamaño del bloque y reducir el tiempo de producción del bloque. Los bloques grandes requieren más tiempo de transmisión de la red y más bloques por unidad de tiempo generarán más bifurcaciones. ?
? El plan de expansión en cadena mejorará en gran medida las capacidades de procesamiento de transacciones de Bitcoin. Si el tamaño de cada bloque se multiplica por ocho (8 millones), el tiempo de generación del bloque se reducirá a cinco minutos. Minutos), idealmente, el volumen de transacciones procesadas por Bitcoin será 40 veces mayor que el original. En realidad, habrá una bifurcación y el volumen de transacciones no será tan alto.
? En la selección de la cadena principal, se calcula el subárbol máximo para reemplazar la regla de la cadena más larga en Bitcoin. ?
?La regla de la cadena más larga de Bitcoin reducirá la seguridad de la cadena si hay bifurcaciones. Cuantas más bifurcaciones, menor será la seguridad. La expansión en la cadena generará más bifurcaciones, lo que hará que la cadena sea insegura.
?Yonatan Sompolinsky propuso la regla GHOST Cuando hay una bifurcación, determine qué cadena es la cadena principal calculando el subárbol máximo, es decir, el número de todos los bloques que posee cada bifurcación. En la Figura 0, la cadena se bifurcó después del bloque 0. La bifurcación superior tiene un total de 6 bloques azules, la bifurcación inferior tiene 5 bloques rojos y el bloque azul 1 es la cadena principal, por lo que el ataque rojo falló. ?
? En el caso de una gran cantidad de bifurcaciones, las reglas GHOST mencionan directamente la seguridad de la cadena a 51, y las bifurcaciones no tienen ningún impacto en la seguridad de la cadena utilizando el protocolo GHOST.
?De acuerdo con las reglas de GHOST, aunque los nodos honestos generaron 12 bloques en la figura anterior, solo se agregaron 4 bloques a la cadena principal y se descartó una gran cantidad de bloques, suponiendo el tamaño de cada bloque. de Bitcoin se convierte en ocho veces el original (8M), el tiempo de generación del bloque se reduce a una décima parte del original (1 minuto), la tasa de bifurcación es 0,33 (la probabilidad de que el bloque generado se agregue a la cadena principal) y La capacidad de procesamiento de transacciones de Bitcoin será 26,6 veces el valor original.
El protocolo GHOST resuelve los problemas de seguridad causados por las bifurcaciones provocadas por la expansión en cadena.
El tipo de estructura del bloque cambia de una cadena a un árbol
Después de la propuesta de GHOST, Yonatan Sompolinsky propuso una nueva idea. El bloque recién generado apunta a todos los bloques existentes. Bloque final de bifurcación conocido, es decir, un bloque tiene múltiples padres. En este momento, la cadena de bloques cambia de una cadena a una estructura compuesta por múltiples cadenas bifurcadas. Esta estructura de cadena se llama DAG (gráfico acíclico dirigido).
Yonatan Sompolinsky luego propuso un protocolo inclusivo que se ejecuta en DAG. El principio es el siguiente:
Desafortunadamente, Yonatan Sompolinsky no introdujo ni complementó el protocolo en detalle más adelante, sino que propuso uno. Una nueva idea del protocolo DAG: SPECTRE.
?Después de leer el contenido anterior, encontrará que, según la regla de la cadena más larga, los bloques bifurcados no contribuyen a la seguridad y el volumen de transacciones de Bitcoin, y son un desperdicio de potencia informática, y GHOST The La seguridad de la cadena se mejora calculando el número de bloques bifurcados. Sin embargo, además de incluirse en el recuento de bloques, toda la información de la transacción contenida en el bloque se descarta.
?Esta nueva estructura de bloques trae nuevas características. Por supuesto, la regla de la cadena más larga de Bitcoin también se puede implementar en DAG, pero las capacidades de seguridad y procesamiento de transacciones no son buenas, y el protocolo GHOST puede mejorar la seguridad y las transacciones. Capacidades de procesamiento Para maximizar el uso de las funciones de blockchain de DAG, la comunidad ha propuesto diferentes protocolos. A continuación, presentaremos el protocolo SPECTRE propuesto por Yonatan Sompolinsky, el protocolo PHANTOM y el protocolo CONFLUX propuesto por una comunidad nacional.
Abandonar el concepto de cadena principal, todos los bloques generados constituirán el libro mayor y ningún bloque será descartado.
Mientras se genere el bloque, no se descartará. Todos los bloques son válidos y todos los bloques forman colectivamente un libro de contabilidad, lo que mejora aún más las capacidades de procesamiento de transacciones de la cadena de bloques. La clave de este diseño es diseñar algoritmos para garantizar que la cadena de bloques no sea atacada con éxito por ataques maliciosos. ?
?El protocolo SPECTRE es relativamente complejo. A continuación se describirá cómo genera bloques, cómo manejar transacciones conflictivas y cómo generar un conjunto de transacciones confiables.
En el protocolo SPECTRE, cuando se genera un bloque, este debe apuntar a los bloques finales de todas las bifurcaciones anteriores.
? En la figura siguiente, cuando Bitcoin genera un bloque a la izquierda, cuando se produce una bifurcación, el nuevo bloque se generará en base a uno de ellos, mientras que en SPECTRE, se basará en los extremos. de todas las bifurcaciones los bloques generan nuevos bloques. Al mismo tiempo, cuando se genera un nuevo bloque, el nodo debe enviar inmediatamente el nuevo bloque (incluida la información basada en qué bloques se generaron) al nodo conectado a él.
? Observe con atención, aunque hay bifurcaciones en el protocolo GHOST, cada bloque solo se genera en función de un determinado bloque anterior, mientras que en el protocolo SPECTRE, el siguiente bloque se genera en función de todos los bloques finales conocidos por el nodo actual.
¿El protocolo SPECTRE elimina el requisito de que los mineros mantengan transacciones libres de conflictos?
?Bitcoin es como un libro de contabilidad autorizado, siempre que esté registrado en él, debe ser verdadero (sin tener en cuenta las bifurcaciones y los ataques maliciosos), el DAG generado por SPECTRE es como un libro de contabilidad no autorizado y la información de la transacción que contiene puede entrar en conflicto (los dos bloques 1 en la Figura 1 anterior pueden contener información de transacción contradictoria). ?
?Según este acuerdo, el nodo minero solo es responsable de extraer bloques rápidamente (puede alcanzar un bloque por segundo) y no hace nada durante la fase de extracción por transacciones conflictivas que puedan incluirse en el acuerdo. fork Processing, maximizando la velocidad de registro de transacciones, dando a blockchains como DAG una capacidad aterradora para procesar transacciones.
?Es hora de resolver el problema de las transacciones conflictivas que no se pueden resolver mediante la minería. La idea de SPECTRE es diseñar un algoritmo de votación para que los bloques honestos voten por los bloques honestos y los bloques honestos posteriores. Proporcionará potencia informática a la pila frontal para evitar que los ataques maliciosos fallen, y su potencia informática de seguridad también es 51. ?
?Tome el doble gasto como ejemplo. En la siguiente figura, los bloques X e Y contienen dos transacciones conflictivas que provocarán el doble gasto. En este momento, los bloques del DAG votarán por X e Y. Decida qué transacción es válida.
Las reglas de votación son las siguientes. Si vota por X, se marcará en azul. Si vota por Y, se marcará en rojo. La información es válida, pero la información de la transacción correspondiente en Y. no es válido.
?Yonatan Sompolinsky también analizó ataques maliciosos que no apuntan a bloques anteriores y generan bloques que no se envían a nodos vecinos. En las reglas de votación, los atacantes con menos de 50 potencias informáticas fallarán. ?
? La votación suena como un comportamiento centralizado activo, pero en realidad no lo es. El programa completa espontáneamente el proceso de cálculo de la votación del bloque en función del estado del bloque DAG actual, lo que equivale a definir un. datos DAG, ingrese dos piezas de información de conflicto y ejecute el algoritmo de reglas para determinar cuál de un par de transacciones en conflicto es válida.
El conjunto de transacciones confiables de SPECTRE es equivalente al conjunto de transacciones en la cadena Bitcoin que excede los 6 bloques actuales. Desde la perspectiva de las criptomonedas digitales, la cadena de bloques es un libro de contabilidad. La moneda que posee cada cuenta se puede obtener a partir de la información de la transacción en el libro de contabilidad. Por lo tanto, es crucial obtener cierta información de la transacción que no se puede cambiar. El proceso de generación de conjuntos de transacciones confiables es el siguiente:
SPECTRE no ordena todos los bloques. No todos los bloques tienen un orden lineal completo y algunos solo determinan la secuencia de información conflictiva. ?
?La altura en Bitcoin representa el orden lineal. La información de la transacción en bloques con una altura baja precede a la información en bloques con una altura alta. Los bloques con una altura alta no pueden contener la misma información que los bloques con una altura baja. Transacciones que entran en conflicto con bloques y SPECTRE tiene una gran cantidad de bifurcaciones. La altura del bloque no puede representar una secuencia lineal. La información de la transacción del bloque anterior no necesariamente precede a la información de la transacción del bloque bifurcado posterior. Depende del algoritmo de votación para decidir, el algoritmo de votación de bloques es muy rápido e incluye todos los bloques bifurcados, por lo que Bitcoin no enfrenta riesgo de bifurcación (esperando 6 bloques) y el tiempo de confirmación de la transacción puede alcanzar los 10 segundos.
En este punto, en comparación con Bitcoin, la cadena de bloques DAG correspondiente a SPECTRE tiene tres características:
El protocolo SPECTRE es muy adecuado para criptomonedas digitales de tipo DAG, pero cuando se usa Para smart Al contratar, surgen sus deficiencias. Los contratos inteligentes requieren un orden lineal estricto. Para esto, Yonatan Sompolinsky diseñó recientemente el protocolo PHANTOM para formar un orden lineal para los bloques DAG. El protocolo PHANTOM se presentará en detalle a continuación.
SPECTRE y PHANTOM son dos protocolos completos e independientes, no complementarios entre sí.
El mecanismo de minería de PHANTOM es el mismo que el de SPECTRE y generará el mismo tipo de DAG. La diferencia es que PHANTOM determina si el bloque es honesto o malicioso analizando la conectividad del bloque y lo clasifica. bloques según clasificación. Se genera un orden lineal estricto para los bloques DAG y la validez de las transacciones en conflicto se juzga mediante el orden lineal.
En DAG, los atacantes tienen dos métodos de ataque: uno es generar bloques que no se basan en bloques finales conocidos; el otro es no publicar los bloques que generan inmediatamente. por ellos habrá menos bloques, y esto último significa que los bloques generados por otros nodos no apuntarán a sus propios bloques. Ambas situaciones conducirán a una baja conectividad entre estos bloques maliciosos y otros bloques.
? Teniendo en cuenta el retraso máximo de la red, los bloques honestos definitivamente se extenderán por toda la red después de un cierto período de tiempo, y los bloques posteriores definitivamente serán señalados por los nodos honestos. Generando nuevos bloques. Bloque final conocido.
?Al analizar los bordes que apuntan hacia afuera del bloque y los bordes que apuntan al bloque, es decir, la conectividad del bloque. Al considerar el retardo máximo de la red, la conectividad tendrá un valor límite K,. Los bloques inferiores a este valor pueden considerarse maliciosos y estarán en desventaja a la hora de clasificar.
A continuación, determine si el bloqueo es honesto o malicioso. La determinación se divide en dos pasos. El primer paso es el más importante y su implementación requiere mucho tiempo. La conectividad del bloque y combina la conectividad fuerte con el bloque marcado en azul se considera bloques honestos, y los bloques débiles marcados en rojo se consideran bloques maliciosos.
?El segundo paso es ordenar primero el conjunto de bloques azules, ordenar topológicamente y luego ordenar el conjunto de bloques rojos. El orden del bloque rojo debe estar en una posición débil. Por ejemplo, C en la imagen de arriba está entre A e I, por lo que su orden se clasificará antes que el bloque I, y D y H se clasificarán antes que C. Tenga en cuenta que al considerar el tiempo de retardo máximo para establecer el valor de conectividad, casi todos los bloques generados por nodos honestos normales se marcarán en azul.
En este punto, ¿el protocolo PHANTOM ha implementado una clasificación lineal de DAG? , a través de lineal El conjunto de transacciones libres de conflictos se puede extraer en secuencia y luego se puede extraer el conjunto de transacciones confiables. Aunque lleva mucho tiempo, cumple con los requisitos de los contratos inteligentes.
Al final del documento del protocolo PHANTOM, Yonatan Sompolinsky propuso un posible protocolo que combina PHANTOM SPECTRE sin presentarlo en detalle. La siguiente figura es una comparación de varios protocolos:
?Hasta ahora, se ha presentado que Yonatan Sompolinsky inicialmente propuso GHOST a partir de la inseguridad causada por las bifurcaciones, y luego introdujo DAG en la cadena de bloques, diseñó el protocolo SPECTRE. y el protocolo PHANTOM considerado para contratos inteligentes. A continuación, presentamos el protocolo CONFLUX propuesto por una comunidad doméstica.
?GHOST tiene una cadena principal pero descarta bloques bifurcados; SPECTRE no tiene cadena principal, incluidas todas las bifurcaciones, pero no tiene orden lineal; PHANTOM no tiene cadena principal, incluye bifurcaciones y tiene un orden lineal, y CONFLUX es Hay una cadena principal y un DAG. La cadena principal se utiliza para ordenar linealmente el DAG. El protocolo CONFLUX se explicará a continuación desde los aspectos del mecanismo de minería y la clasificación de bloques.
El protocolo CONFLUX define bordes de origen y bordes de referencia. El nuevo bloque se genera en función del bloque de la cadena principal anterior. El nuevo bloque utiliza el borde raíz (línea continua) para apuntar al bloque anterior y el borde de referencia (línea discontinua) para apuntar al final de otros bloques bifurcados. En la figura siguiente, el último bloque nuevo en realidad La línea apunta a H y la línea de puntos apunta al bloque del extremo de la horquilla K. El borde de origen se usa para representar en qué bloque se basa el bloque y qué bloque está apilado con potencia informática. El borde de referencia se usa para representar la bifurcación de otros bloques que se generaron antes de este bloque.
El proceso de minería es el siguiente:
Solo puede haber un borde de origen y puede haber múltiples bordes de referencia (según la situación)
Tomar el bloque de la cadena principal como En el punto de división, divida el DAG en segmentos y diseñe un algoritmo de clasificación simple entre segmentos
¿La cadena de bloques generada bajo el protocolo CONFLUX es como se muestra arriba (Figura 2), y luego linealmente? ordenarlo El algoritmo de clasificación es el siguiente:
?A través de la clasificación anterior, DAG tiene un orden lineal. El orden de los bloques DAG en la imagen de arriba es Génesis, A, B, C, D, F. E, G, J, I, H y K. A continuación, se ordena la información de la transacción en el bloque de secuencia lineal. Las transacciones conflictivas que puedan incluirse en un solo bloque se determinarán directamente según el orden de la información de la transacción en el bloque.
En este punto, CONFLUX genera un orden lineal para todos los bloques de DAG y luego puede ordenar la información de la transacción dentro del bloque para generar un conjunto de transacciones sin conflictos que excedan un tiempo determinado. un conjunto de transacciones confiables.
La cadena principal es sólo un criterio para la clasificación. Como estándar para dividir los períodos, CONFLUX contiene todos los bloques bifurcados.
Papel GHOST
Papel inclusivo
Papel SPECTRE
Papel PHANTOM
Papel CONFLUX
Colección de vídeos explicativos relacionados con DAGlabs