Comprenda el mecanismo de consenso y 11 algoritmos de consenso convencionales en un artículo

El mejor mecanismo de consenso es siempre el que se adapta a las necesidades del usuario.

Hablador: Uchiha Madara

EDITAR: Soplos

Fuente:Deschool

Este artículo son las notas de estudio de la tercera lección del curso universitario web3 de DeSchool, y el disertante es Uchiha Madara. El contenido es demasiado seco y no está mezclado con agua, se recomienda recogerlo y digerirlo lentamente. Además, para facilitar la comprensión, este artículo tiene algunas modificaciones y complementos en función del contenido del curso.

Los principales contenidos del artículo incluyen:

  1. Introducción a los algoritmos de consenso

  2. Clasificación de los algoritmos de consenso

  3. Explicación detallada de los algoritmos de consenso (PoW, PoS, PoH, PoA, PBFT, etc.)

01 Introducción al mecanismo de consenso

En la comunicación y el aprendizaje de la cadena de bloques, el "algoritmo de consenso" es un vocabulario mencionado con mucha frecuencia. Es precisamente debido a la existencia del algoritmo de consenso que se puede garantizar la credibilidad de la cadena de bloques.

**1. ¿Por qué necesitamos un mecanismo de consenso? **

El llamado consenso significa que varias personas llegan a un acuerdo. Nuestras vidas están llenas de mecanismos de consenso, por ejemplo, una empresa necesita que los accionistas discutan colectivamente para tomar una decisión, y la Parte A y la Parte B necesitan sentarse a negociar para firmar un contrato. Este proceso es el proceso de llegar a un consenso.

En el sistema blockchain, lo que debe hacer cada nodo es hacer que su libro mayor coincida con los libros mayores de otros nodos. Si está en un escenario centralizado tradicional, esto no es un problema, porque hay un servidor central, que es la llamada biblioteca maestra, y otras bibliotecas esclavas se pueden alinear con la biblioteca maestra.

Pero en la gestión descentralizada no hay jefe, entonces, ¿cómo se deben tomar las decisiones? En este momento, se necesita un conjunto de algoritmos para garantizar el consenso. De esto es de lo que va a hablar este artículo: el mecanismo de consenso.

**2.¿Qué es el mecanismo de consenso? **

El mecanismo de consenso (Consensus Mechanism) completa la verificación y confirmación de transacciones en un período de tiempo muy corto a través de la votación de nodos especiales; para una transacción, si varios nodos con intereses irrelevantes pueden llegar a un consenso, podemos considerar que toda la red También hay consenso al respecto.

Aunque el consenso (Consenso) y la coherencia (Coherencia) se consideran aproximadamente equivalentes en muchos escenarios de aplicación, existen diferencias sutiles en sus significados: la investigación de consenso se centra en el proceso y el algoritmo de los nodos distribuidos que alcanzan el consenso, mientras que la investigación de coherencia se centra en el resultado final. estado estable del proceso de consenso de nodos; además, la mayor parte de la investigación de consenso distribuido tradicional no considera el problema de tolerancia a fallos bizantinos, es decir, se supone que no hay nodos bizantinos que alteren o falsifiquen datos maliciosamente. Después de todo, en una red blockchain completamente abierta y transparente, no hay garantía de que todos los nodos no hagan el mal.

**3.¿Qué problemas puede resolver el mecanismo de consenso? **

El mecanismo de consenso puede resolver el problema de confianza en el sistema distribuido y garantizar la consistencia y seguridad de los datos entre los nodos. En un sistema distribuido tradicional, dado que no existe un mecanismo de confianza entre los nodos, es vulnerable a ataques y manipulaciones por parte de nodos malintencionados, lo que provoca fallas en el sistema o manipulación de datos. Además, antes de la aparición de la tecnología de encriptación de cadena de bloques, la moneda digital encriptada, como otros activos, era infinitamente replicable Sin una agencia intermediaria centralizada, las personas no tenían forma de confirmar si se había gastado una suma de dinero digital.

En pocas palabras, el mecanismo de consenso puede resolver eficazmente dos problemas: el problema del doble gasto (una suma de dinero se gasta dos veces) y el problema general bizantino (los nodos maliciosos manipulan los datos).

4. Ataque de doble gasto

** **

El mecanismo de consenso puede resolver en cierta medida el ataque del doble gasto: es decir, una suma de dinero se gasta el doble o más del doble, también llamado "doble gasto". En el juego del gato y el ratón, Xiao Lizi hizo un comportamiento de gasto doble al hacer un cheque falso. Debido a que la verificación del cheque lleva tiempo, usó la información del mismo cheque para comprar artículos muchas veces dentro de esta diferencia de tiempo.

Como todos sabemos, los nodos de blockchain siempre consideran la cadena más larga como la correcta y continúan trabajando y ampliándola. Si dos nodos transmiten versiones diferentes de un nuevo bloque al mismo tiempo, se trabajará en base al bloque recibido primero, pero también se mantendrá la otra cadena en caso de que esta última se convierta en la cadena más larga. Espere hasta que se encuentre la siguiente prueba de trabajo, y una de las cadenas demuestre ser la más larga, luego los nodos que trabajan en la otra cadena de rama cambiarán de campo.

¿Cómo se logra el doble gasto? Dividido en dos situaciones:

**(1) Gasto doble antes de la confirmación. ** Es posible que las transacciones con confirmación cero no se hayan escrito en la cadena de bloques al final. A menos que la cantidad sea pequeña, es mejor evitar el doble gasto al menos esperando la confirmación.

**(2) Gasto doble después de la confirmación. **Esto requiere controlar más del 50% de la potencia informática para implementar. Es decir, similar a una bifurcación pequeña, colocando las transacciones de una tienda en bloques huérfanos. Este tipo de doble gasto después de la confirmación es difícil de implementar, pero solo es teóricamente factible.

** Hay tres ataques de doble gasto más comunes: ataque del 51 %, ataque de carrera y ataque de Finney. **

Ataque del 51 %: un ataque del 51 % es cuando una persona o grupo obtiene el control del 51 % del poder de hash de la cadena de bloques, lo que significa que tiene la capacidad de controlar algunos aspectos del proyecto. En una cadena de bloques de prueba de trabajo como Bitcoin, esto se lograría al obtener el control del poder minero de la red. Por otro lado, para una cadena de bloques de prueba de participación como Cardano, esto se lograría controlando el 51% de los tokens apostados.

Race Attack: un usuario envía dos transacciones a dos comerciantes (o al comerciante y al usuario) al mismo tiempo. Por lo tanto, el atacante recibe dos juegos de bienes o recibe los bienes y recupera el costo de transacción original.

Ataque de Finney: un minero extrae un bloque o una serie de bloques que contienen transacciones que transfieren dinero a su propia dirección. Los bloques que se extraen no se publican, sino que se mantienen mientras el minero transfiere dinero al comerciante. Luego, el comerciante libera los bienes que pagó el minero antes de que el minero publique el bloque que ha excavado. Luego, los mineros publican los bloques que se han excavado, lo que borrará la transferencia al comerciante y permitirá que el comerciante la pague de su bolsillo.

Caso clásico de ataque de doble flor:

En 2018, el atacante controló más del 51% de la potencia informática en la red BTG. Durante el período de control de la potencia informática, envió una cierta cantidad de BTG a su billetera en el intercambio. Esta sucursal se denominó sucursal A. Al mismo tiempo, envíe estos BTG a otra billetera controlada por usted mismo, y esta sucursal se llamará sucursal B. Una vez que se confirma la transacción en la sucursal A, el atacante vende inmediatamente BTG para obtener efectivo. Posteriormente, el atacante mina en la rama B. Dado que controla más del 51 % de la potencia informática, la longitud de la rama B pronto supera la longitud de la rama A, y la rama B se convertirá en la cadena principal. retroceder para restaurar el estado anterior. Los BTG que el atacante intercambió por dinero en efectivo antes volvieron a sus propias manos, y estos BTG son la pérdida del intercambio. De esta forma, el atacante, apoyándose en más del 50% del control de la potencia de cómputo, realizó el "doble gasto" de la misma criptomoneda.

5. Fracasos bizantinos

** **

El problema de los generales bizantinos es un problema hipotético planteado por Leslie Lamport en la década de 1980. Bizancio era la capital del Imperio Romano de Oriente. Debido al vasto territorio del Imperio Romano Bizantino en ese momento, las guarniciones de cada ejército estaban muy separadas y los generales solo podían entregar mensajes a través de mensajeros. En caso de guerra, los generales deben desarrollar un plan de acción unificado.

Sin embargo, hay traidores entre estos generales, que esperan socavar el plan de acción consistente de los generales leales al influir en la formulación y difusión del plan de acción unificado. Por lo tanto, los generales deben tener un acuerdo de método predeterminado, para que todos los generales leales puedan estar de acuerdo. Y un puñado de traidores no puede hacer que los generales leales hagan planes equivocados. En otras palabras, la esencia del problema de los generales bizantinos es encontrar una manera de hacer que los generales establezcan un consenso sobre el plan de batalla en un entorno de desconfianza con traidores.

En los sistemas distribuidos, especialmente en el entorno de red blockchain, también es similar al entorno general bizantino, hay servidores normales (similares a los generales bizantinos leales), hay servidores defectuosos y servidores saboteadores (similares a los generales bizantinos traidores). El núcleo del algoritmo de consenso es formar un consenso sobre el estado de la red entre los nodos normales. Si solo hay 3 nodos, el problema de los generales bizantinos es irresoluble.Cuando hay x nodos del problema en los nodos y los puntos sumados son menores que 3x+1, el problema de los generales bizantinos no tiene solución.

El surgimiento de Bitcoin soluciona fácilmente este problema, agrega costos a la transmisión de información, reduce la tasa de transmisión de información y agrega un elemento aleatorio para que solo un general pueda transmitir información dentro de un cierto período de tiempo. El primer general en transmitir un mensaje es la primera computadora en encontrar un hash válido, y mientras otros generales reciban y verifiquen este hash válido y la información adjunta, solo pueden actualizarlos con la nueva copia de información del libro mayor. y luego recalcular el valor hash. El próximo general que calcule el valor hash efectivo puede adjuntar su información actualizada al valor hash efectivo y transmitirlo a todos. La carrera de cálculo de hash luego se reinicia desde un nuevo punto de partida. Debido a la sincronización continua de la información de la red, todas las computadoras en la red usan la misma versión del libro mayor.

02 Clasificación de algoritmos de consenso

1. Historia del mecanismo de consenso

Cuando las computadoras y las redes se hicieron populares en las décadas de 1980 y 1990, surgieron bases de datos compartidas para que múltiples usuarios pudieran acceder a la información que almacenaban. La mayoría tiene una base de datos central a la que los usuarios pueden acceder desde diferentes sitios. Esta configuración se convierte en una red centralizada donde los administradores otorgan permisos de usuario y mantienen la integridad de los datos.

Estas bases de datos compartidas se conocen como libros mayores distribuidos porque registran información y están conectadas en red para que muchos usuarios puedan acceder a ellas en diferentes ubicaciones. Uno de los temas más importantes a abordar es la prevención de la manipulación de datos y el acceso no autorizado, malicioso o no. Se necesita una forma de automatizar la administración de bases de datos distribuidas para garantizar que los datos no se modifiquen.

Esta necesidad ha llevado a la creación de consenso autónomo distribuido, donde los programas en la red usan criptografía para acordar el estado de la base de datos. El protocolo está diseñado para ser alcanzado mediante el uso de un algoritmo criptográfico para crear una larga cadena de números alfanuméricos (hash), que luego es verificada por un programa que se ejecuta en la red. El hash solo cambia cuando cambia la información introducida en el algoritmo hash, por lo que los programas están diseñados para comparar los hash para asegurarse de que coincidan.

Cuando todos los programas que se ejecutan en la red han creado una cadena hash coincidente, se dice que los datos han llegado a un consenso en toda la red. Por lo tanto, se estableció un mecanismo de consenso, generalmente acreditando al creador anónimo de Bitcoin, Satoshi Nakamoto. Sin embargo, muchas personas trabajaron en el mecanismo de consenso durante años antes de que Satoshi publicara el libro blanco que hizo famoso a Bitcoin.

Científicos informáticos y de datos como Moni Naor, Cynthia Dwork, Adam Beck, Nick Szabo y muchos otros trabajaron y contribuyeron al desarrollo de los mecanismos de consenso de la red.

2 Clasificación de algoritmos de consenso

Según los diferentes tipos de tolerancia a fallas, los algoritmos de consenso se pueden dividir en dos categorías: algoritmo de consenso CFT (tolerancia a fallas no bizantinas, es decir, no se consideran nodos maliciosos) y algoritmo de consenso BFT (tolerancia a fallas bizantinas, que es decir, se consideran nodos maliciosos).

Si tolerar Bizancio marca si el algoritmo se puede aplicar a redes de baja confianza. En términos generales, el algoritmo tolerante a fallas bizantino debe usarse en el entorno de la cadena pública, mientras que en la cadena de alianza, se puede seleccionar según el grado de confianza entre los participantes de la alianza.Si el grado de confianza es alto, todos es un nodo de buena fe por defecto y puede usar el algoritmo CFT (no tolerante a fallas bizantinas).

**Además, se puede dividir en dos categorías según la consistencia: **algoritmo de consenso de probabilidad y algoritmo de consistencia absoluta. El algoritmo de consenso probabilístico significa que entre diferentes nodos distribuidos, existe una alta probabilidad de asegurar que los datos entre los nodos sean consistentes, pero todavía existe una cierta probabilidad de que los datos entre algunos nodos sean inconsistentes. Por ejemplo, Prueba de trabajo (PoW), Prueba de participación (PoS) y Prueba de participación delegada (DPoS) son todos algoritmos de consenso probabilístico.

El algoritmo de coherencia absoluta significa que, en cualquier momento, los datos entre los diferentes nodos distribuidos permanecerán absolutamente coherentes y no habrá incoherencia de datos entre los diferentes nodos. Por ejemplo, el algoritmo PAXOS y su algoritmo RAFT derivado.

La siguiente es una división e introducción específicas según el tipo de tolerancia a fallas.

Algoritmo de consenso 3CFT

Error no bizantino de Crash Fault Tolerance: adecuado para redes con un alto grado de confianza en los nodos. Incluyendo Paxos, Balsa.

Algoritmo de consenso 4BFT

Verificar si el nodo tiene errores bizantinos maliciosos tiende a una estructura descentralizada, que incluye prueba de trabajo (PoW), prueba de participación (PoS), prueba de participación delegada (DPoS), prueba de autoridad (PoA), etc.

03 Explicación detallada del algoritmo de consenso

¿Está un poco cansado ver esto? Haga clic en un favorito, tome un descanso y continúe royendo la parte más difícil de este artículo. Los estudiantes con tiempo limitado pueden comenzar directamente desde el tercer algoritmo PoW.

Algoritmo 1Paxos

** **

  • **Introducción al algoritmo: **En 1990, el algoritmo Paxos es un algoritmo de consenso distribuido basado en el paso de mensajes propuesto por Lamport y ganó el Premio Turing 2013. Desde la llegada de Paxos, ha seguido monopolizando el algoritmo de consenso distribuido, resolviendo principalmente cómo llegar a un consenso sobre un valor específico en un sistema distribuido. El proceso de consenso del algoritmo Paxos consiste en que el proponente presenta una propuesta para ganar el apoyo de la mayoría de los aceptantes. Cuando una propuesta recibe más de la mitad del apoyo, envía el resultado final a todos los nodos para su confirmación. Durante este proceso, si el Proponente falla, puede Se soluciona activando el mecanismo de timeout Si el Proponente de cada nueva ronda de propuestas falla, el sistema nunca podrá llegar a un consenso. Pero la probabilidad de esto es extremadamente pequeña.

El primer protocolo básico de Paxos era complejo y relativamente ineficiente, por lo que más tarde se propuso una versión mejorada de Paxos. Por ejemplo: Paxos Rápidos, Multi-Paxos y Paxos Bizantinos, etc.

  • **Caso de uso: **ZooKeeper
  • **Principio del algoritmo: **El algoritmo de Paxos se ejecuta en un sistema asíncrono que permite el tiempo de inactividad y las fallas, no requiere una entrega confiable de mensajes y puede tolerar la pérdida, el retraso, el desorden y la repetición de mensajes. Utiliza el mecanismo mayoritario (Majority) para garantizar la tolerancia a fallas de 2f+1, es decir, un sistema con 2f+1 nodos permite que como máximo f nodos fallen al mismo tiempo. Siempre que haya menos de (n-1)/2 fallas, Paxos llega a un consenso. Estas fallas no pueden ser bizantinas, de lo contrario se violaría la prueba BFT. Por lo tanto, la premisa de este algoritmo es asumir que los mensajes nunca pueden corromperse y que los nodos no pueden coludirse para corromper el sistema.

Paxos procede a través de un conjunto de rondas de negociación en las que un nodo tiene el estado de "liderazgo". Si el líder no está en línea, el progreso se estancará hasta que se elija un nuevo líder, o si el antiguo líder vuelve a estar en línea repentinamente.

Paxos divide los roles en el sistema en proponente (Proponente), tomador de decisiones (Aceptador) y aprendiz de decisión final (Aprendiz): Proponente: propone propuesta (Propuesta). La información de la propuesta incluye el número de propuesta (ID de propuesta) y el valor propuesto (Valor). Aceptante: Participar en la toma de decisiones y responder a las propuestas de los Proponentes. Después de recibir la Propuesta, la propuesta puede ser aceptada.Si la Propuesta es aceptada por la mayoría de los Aceptantes, se dice que la Propuesta está aprobada. Aprendiz: No participe en la toma de decisiones, aprenda la última propuesta acordada (Valor) de los Proponentes/Aceptantes.

2. Algoritmo de balsa

**Introducción al algoritmo:**El algoritmo Raft (replicación y tolerancia a fallas) es una implementación simplificada del par de algoritmos Paxos. El nombre Raft proviene del acrónimo "Reliable, Replicated, Redundant, And Fault-Tolerant" Redundant, Fault Tolerant). balsa hace muchas simplificaciones agradables sobre Paxos con continuación de registro. Garantiza la consistencia del sistema cuando más de la mitad de los nodos en un sistema compuesto por n nodos están funcionando normalmente. A diferencia del algoritmo Paxos, que se deriva directamente del problema de coherencia distribuida, el algoritmo Raft se propone desde la perspectiva de una máquina de estado de varias copias y se utiliza para gestionar la replicación de registros de la máquina de estado de varias copias. Por ejemplo, en un sistema de 5 nodos, se permite que 2 nodos tengan errores no bizantinos, como el tiempo de inactividad del nodo, la partición de la red y el retraso de los mensajes.

**Caso de uso: **Replicación maestro-esclavo de base de datos, cadena de alianza.

Principio del algoritmo: Hay tres roles en el sistema Raft: líder, seguidor y candidato. En circunstancias normales, solo habrá un líder y los demás son seguidores. Y el líder será responsable de todas las solicitudes externas, si la máquina del líder no las recibe, la solicitud se dirigirá al líder. Por lo general, el líder enviará un mensaje en un tiempo fijo, es decir, un latido del corazón (heartbeat), para que los seguidores sepan que el líder del clúster todavía está funcionando. Cada seguidor diseñará un mecanismo de tiempo de espera (timeout), cuando no se reciba el latido durante un cierto período de tiempo (generalmente 150 ms o 300 ms), el sistema entrará en el estado de elección.

En este momento, el clúster ingresa a una nueva ronda electoral (término) e inicia una elección. Si la elección es exitosa, el nuevo líder comenzará a realizar el trabajo. De lo contrario, el término se considerará terminado y se iniciará un nuevo período. y comenzarán las próximas elecciones.

Las elecciones están a cargo de los candidatos. Esto requiere que los candidatos se nominen a sí mismos y soliciten votos de otros servidores por orden de llegada cuando el corazón del líder se detiene. Cada servidor emite solo un voto por ronda electoral a favor o en contra del candidato actual. Si no obtiene más de la mitad de los votos, pasará a la siguiente vuelta electoral. Los candidatos restantes continúan nominándose a sí mismos por orden de llegada. hasta que se elija un líder.

**Ventajas del algoritmo Raft: **El primer punto es la simplicidad. Si profundizamos en dónde Paxos es más complejo que Raft, Heidi Howard y Richard Mortier descubrieron que la complejidad de Paxos se refleja en dos aspectos. En primer lugar, Raft confirma los registros de forma secuencial, mientras que Paxos permite que los registros se confirmen fuera de orden, pero requiere un protocolo adicional para llenar los agujeros de registro que puedan surgir como resultado. En segundo lugar, todas las réplicas del registro en Raft tienen el mismo índice, término y orden, mientras que en Paxos estos términos pueden diferir.

El segundo punto es que Raft tiene un algoritmo de elección de líder eficiente. El algoritmo de elección proporcionado en el documento de Paxos compara el tamaño de la identificación del servidor.Cuando varios nodos se ejecutan para la elección al mismo tiempo, el nodo con la identificación del servidor más grande gana. El problema es que si el líder elegido de esta manera carece de algunos registros, no puede realizar inmediatamente la operación de escritura y primero debe copiar algunos registros de otros nodos. El registro de Raft siempre puede seleccionar el nodo con el registro mayoritario, por lo que no es necesario ponerse al día con el registro. Aunque a veces se volverá a intentar la elección debido a la división de votos, generalmente es un algoritmo de elección más eficiente.

Para el algoritmo de Paxos, si un servidor está muy atrasado, incluso algunos días atrasados en los registros, pero es elegido líder en algún momento, esto provocará que se bloquee una cierta cantidad de tiempo. En el algoritmo Raft, nunca se seleccionará un nodo cuyo registro esté detrás.

3 Prueba de trabajo (PoW)

Introducción al algoritmo: Una tecnología informática que se utilizó por primera vez para combatir el spam. En 2008, Satoshi Nakamoto propuso Bitcoin y blockchain en el libro blanco de Bitcoin "Bitcoin: A Peer-to-Peer Electronic Cash System", y diseñó de manera innovadora el algoritmo PoW, que se aplicó a Bitcoin para resolver acertijos matemáticos para participar en el consenso. El contenido central del algoritmo es usar el poder de cómputo para encontrar un valor nonce que satisfaga el hash del bloque. Sin embargo, la gente descubrió rápidamente los problemas de este mecanismo de consenso, es decir, el gran consumo de energía y el control del poder de cómputo por parte de grandes consorcios de minería seguirán generando problemas de centralización.

**Casos de uso:**Bitcoin, ETH1.0, Litecoin, Conflux, Dogecoin.

Principio del algoritmo: La característica principal del sistema de prueba de trabajo es que el cliente necesita hacer un trabajo difícil para obtener un resultado, pero el verificador puede verificar fácilmente si el cliente ha realizado el trabajo correspondiente a través del resultado. . Una característica central de este esquema es la asimetría: el trabajo es moderado para el solicitante y fácilmente verificable para el verificador. Se diferencia de los captchas, que están diseñados para ser fáciles de resolver por humanos en lugar de computadoras.

La Prueba de trabajo (PoW) encuentra un Nonce numérico a través del cálculo, de modo que el valor hash del contenido después de que se reconstruyen los datos de la transacción cumpla con el límite superior especificado. Después de que el nodo encuentre con éxito un valor hash satisfactorio, transmitirá el bloque empaquetado a toda la red inmediatamente, y los nodos de la red lo verificarán inmediatamente después de recibir el bloque empaquetado transmitido.

**Desventajas: **Velocidad lenta; gran consumo de energía, no es bueno para el medio ambiente; vulnerable a las "economías de escala".

Pros: Ampliamente probado desde 2009 y todavía se usa ampliamente en la actualidad.

4 Prueba de Participación (PoS)

Introducción al algoritmo: En 2011, se propuso Quantum en el foro Bitcointalk. En agosto de 2012, nació Peercoin, el primer proyecto de cadena de bloques basado en el consenso PoS. Peercoin es la primera aplicación que implementa el algoritmo PoS. El interés en Peercoin es la edad de la moneda, que es el producto de la cantidad de monedas que tiene el nodo y el tiempo de espera. Iniciar una transacción consumirá una cierta cantidad de edad de la moneda, y cada vez que se consuma la edad de la moneda 365, se generará un se obtendrá una tasa de interés del 5%.

Usuarios: Ethereum (2.0), Conflux, Peercoin.

Principio del algoritmo: Por ejemplo, si alguien tiene 100 Dotcoins en una transacción por un total de 30 días, entonces la antigüedad de la moneda es 3000. Más tarde, se encuentra un bloque PoS, la antigüedad de la moneda se borra a 0 y el interés se obtiene Es 0.05*3000/365=0.41 monedas. Durante el proceso de consenso, los nodos obtienen el derecho de contabilidad a través de la edad de la moneda consumida, mientras más edad de la moneda consuma el nodo, mayor será la posibilidad de obtener el derecho de contabilidad. El principio de la cadena principal establecido por el algoritmo es: la cadena que consume la mayor cantidad de moneda es la cadena correcta y efectiva en el sistema.

Ventajas: No se necesitan equipos de minería caros y potentes. Reduzca el consumo de recursos y reduzca la posibilidad de ataques del 51 %.

Desventajas: Puede hacer que los ricos acumulen criptomonedas, formando el efecto Matthew, que puede causar inflación de criptomonedas.

5 Prueba de historial (PoH)

**Introducción al algoritmo: **La prueba de historial fue creada por Solana, una cadena de bloques de alto rendimiento que se lanzó en 2018. La prueba de historial permite a los participantes de la red llegar a un consenso a tiempo mediante el uso de una función de retraso verificable, evitando así el "tiempo más largo". cadena de reglas.

PoH es el reloj de la red, y TowerBFT es su torre de vigilancia, encargada de evitar que los nodos maliciosos falsifiquen los parámetros de tiempo. Cualquier validador que votó por un bloque debe esperar a que se produzca el siguiente bloque y obtener la confirmación de la prueba del historial de que "ha pasado el tiempo" antes de volver a votar.

Solana separa hábilmente la cadena de tiempo y el estado basados en hash. En lugar de vincular los hash de cada bloque, el verificador en la red codifica el hash en el bloque. Este mecanismo es PoH. PoH establece una secuencia de eventos verificable criptográficamente a lo largo del tiempo mediante el uso de una función de retardo verificable (VDF) de alta frecuencia. Esencialmente, esto significa que PoH es como un reloj criptográfico que ayuda a la red a acordar el tiempo y el orden de los eventos sin esperar mensajes de otros nodos. La salida secuencial de hashes de estado de blockchain probados históricamente proporciona una secuencia verificable de eventos.

**Usuario:**Solana

Principio del algoritmo: Leader genera una marca de tiempo para cada dato de firma (transacción a probar) y clasifica directamente las transacciones, evitando así el problema de la clasificación de tiempo en PoS, y cada verificador de garantía puede verificar de forma independiente, lo que acorta mucho el problema de la reordenación del tiempo durante la verificación, y solo necesita verificar la prueba de la transacción.

Ventajas: tarifas bajas, solo una fracción de centavo por transacción, alta velocidad de transacción, buena escalabilidad,

**Contras: **Preocupaciones de centralización, Solana actualmente tiene menos de 1200 validadores validando transacciones en su red. Menos aplicaciones descentralizadas: A menudo se lo conoce como el asesino de Ethereum. Según su sitio web, se han creado más de 350 Dapps en Solana, en comparación con casi 3000 en Ethereum, y aquí es donde Defi actualmente necesita más tiempo de desarrollo e innovación.

6 Prueba de Autoridad (PoA)

Introducción al algoritmo: fue propuesto en 2017 por Gavin Wood, cofundador de Ethereum (ETH) y Parity Technologies. El mecanismo PoA no mina y no requiere Token. En una red blockchain secundaria basada en PoA, todas las transacciones y bloques son procesados por validadores. El costo de mantenimiento de la plataforma PoA es bajo, pero en PoA, el verificador de la cadena de bloques de transacción y verificación debe ser una persona que pueda pasar la revisión de confiabilidad. Por lo tanto, los verificadores de PoA deben prestar mucha atención a su propia reputación. La reputación es un activo muy importante en PoA. Por lo general, los validadores revelan sus identidades reales. En la actualidad, la tecnología blockchain formada por este mecanismo de consenso se aplica principalmente a cadenas de alianzas y cadenas privadas con características obvias de la industria.

Usuarios: PoA, Ethereum Kovantestnet, xDai, VeChain y cadena logística de Walmart.

Principio del algoritmo:

a) Elegir un certificador autorizado;

b. Varios verificadores generarán bloques para registrar transacciones y recibir recompensas de bloque y tarifas de transacción. En PoA, el verificador es la clave de todo el mecanismo de consenso, el verificador obtiene el derecho de garantizar la red al colocar esta identidad a cambio de recompensas en bloque. Si el verificador actúa maliciosamente o se confabula con otros verificadores a lo largo del proceso, los actores maliciosos pueden eliminarse y reemplazarse a través de la administración en cadena. Las salvaguardas legales antifraude existentes se aplican en toda la red para proteger a los participantes de acciones maliciosas por parte de los validadores.

ventaja:

A. Requiere menos poder de cómputo, sin minería, ahorro de energía y protección del medio ambiente;

b La verificación es rápida y admite transacciones más rápidas;

c. Los verificadores de toda la red se supervisan entre sí y pueden votar para unirse a los verificadores experimentados o eliminar a los verificadores no calificados en cualquier momento.

D. Las bifurcaciones duras están protegidas por ley y cada Validador firma un acuerdo legal.

defecto:

a. Se reducirá la identidad pública, la privacidad y el anonimato

b. Los validadores se designan como nodos de autoridad centralizados con respaldo legal

**7 Prueba de trabajo retrasada (**Prueba de trabajo retrasada, dPoW)

** **

**Introducción al algoritmo:**Antes de explicar DPoW, debe explicar qué es PoB. PoB (Proof of Burn) se denomina mecanismo de prueba de quemado, que es un compromiso de votar quién tiene el liderazgo de la red al quemar los tokens en las propias manos. Cuanto mayor sea el número de tokens quemados, mayor será la probabilidad de alcanzar el liderazgo de la red.

En la cadena de bloques basada en dPoW, los mineros ya no son tokens recompensados por la minería, sino "madera" que se puede quemar: quemar madera. Los mineros usan su propio poder de cómputo para finalmente probar su carga de trabajo a través del algoritmo hash y luego obtener la madera correspondiente, que no es negociable. Cuando la madera se haya acumulado en cierta cantidad, puede ir al lugar de la quema para quemar la madera.

Después del cálculo mediante un conjunto de algoritmos, la persona que quema más madera o BP o un grupo de BP puede obtener el derecho a producir un bloque en el siguiente segmento del evento y obtener una recompensa (token) después de producir un bloque con éxito. Dado que puede haber muchas personas quemando madera en un período de tiempo, la probabilidad de generación de bloques en el próximo período de tiempo está determinada por la cantidad de madera quemada por uno mismo. Cuanto más quemado, mayor es la probabilidad de obtener el derecho a producir bloques en el próximo período de tiempo.

Esto puede lograr un equilibrio entre el poder de cómputo y los derechos mineros. Los mineros y los pools de minería con gran poder de cómputo no están necesariamente obligados a convertirse en productores de bloques. Los pequeños mineros también tienen un resorte, siempre que trabajen duro y acumulen cierta cantidad de madera, también pueden producir bloques. Eficiencia garantizada, participación de todos, la forma de participación más popular garantiza el concepto de descentralización, y evita que organizaciones con poder de cómputo o grandes tenedores de divisas dominen la red.

**Usuario:**Komodo

Principio del algoritmo: Hay dos tipos de nodos en el sistema dPoW: nodos notariales y nodos normales. Los 64 nodos notariales son elegidos por las partes interesadas de la cadena de bloques dPoW para agregar bloques notariados de la cadena de bloques dPoW a la cadena de bloques PoW adjunta. Una vez que se agrega un bloque, el hash del bloque se agrega a la transacción de Bitcoin firmada por los 33 nodos notariales y crea un registro de bloque dPow con hash en la cadena de bloques de Bitcoin. El registro ha sido notariado por la mayoría de los nodos notariales de la red.

Para evitar guerras de minería entre nodos notariales y reducir la eficiencia de la red, Komodo ha diseñado un método de minería mediante un mecanismo de sondeo, que tiene dos modos de funcionamiento.

En el modo "Sin notario", todos los nodos de la red pueden participar en la minería, que es similar al mecanismo de consenso PoW tradicional. En el modo "Notarios activos", los notarios de la red minan utilizando una tasa de dificultad de red significativamente reducida. En el modo de "activación de notario", cada notario puede usar su dificultad actual para minar un bloque, mientras que otros nodos de notario deben usar 10 veces la dificultad de minado, y todos los nodos normales usan 100 veces la dificultad de los nodos de notario para minar.

**Ventajas: **Ahorro de energía; mayor seguridad; puede agregar valor a otras cadenas de bloques proporcionando indirectamente Bitcoin (o cualquier otra cadena de seguridad), sin pagar el precio de las transacciones de Bitcoin (o cualquier otra cadena de seguridad).

Desventajas: Solo las cadenas de bloques que usan PoW o PoS pueden adoptar este algoritmo de consenso; en el modo "Notarios activos", los hash de diferentes nodos (notarios o nodos normales) deben calibrarse, de lo contrario, la diferencia entre las tasas de hash explotaría. .

8 PoS autorizado (DPoS, prueba de participación delegada)

Introducción al algoritmo: El mecanismo DPoS, también conocido como "Mecanismo de prueba de autorización de acciones" y "Mecanismo de fideicomisario", fue propuesto en abril de 2014 por Dan Larimer (BM), el desarrollador jefe de Bitshares. Desde cierto punto de vista, DPOS es un poco como un sistema parlamentario o un sistema de congresos populares. Si un delegado no cumple con sus funciones (no produce un bloque cuando es su turno), se elimina de la lista y la red elige un nuevo supernodo para reemplazarlo.

Para facilitar la comprensión se puede dar otro ejemplo. Imagine una empresa con un total de 1.000 empleados, cada uno de los cuales posee cantidades variables de acciones de la empresa. De vez en cuando, los empleados pueden votar por las 10 personas que más reconocen para dirigir la empresa, y los derechos de voto de cada empleado son proporcionales al número de acciones que posee. Después de que todos voten, las 10 personas con la tasa de votos más alta se convertirán en los líderes de la empresa.

Si un líder es incompetente o hace algo perjudicial para la empresa, el empleado puede revocar el voto del líder, de modo que su índice de votos no pueda entrar en el top 10, renunciando así a la gerencia.

Usuarios: BitShares, Steemit, EOS, Lisk, Ark.

**Pros: **Ahorro de energía; rápido; sitio de blogs de alto tráfico Steemit lo usa. El tiempo de bloqueo de EOS es de 0,5 segundos.

**Contras: **Ligeramente centralizado; los participantes con una apuesta alta pueden votar para convertirse en validadores (esto ha sido un problema en EOS recientemente).

9 Tolerancia práctica a fallas bizantinas (PBFT)

** **

Introducción al algoritmo: En el algoritmo PBFT, un nodo se considerará el nodo maestro, mientras que los otros nodos serán nodos de respaldo. Todos los nodos del sistema se comunicarán entre sí, y el objetivo final es que todos puedan llegar a un consenso sobre el principio de que la minoría obedece a la mayoría.

Proceso de consenso:

a. El cliente envía una solicitud al nodo maestro para realizar una operación

b. El nodo maestro transmite esta solicitud a cada nodo de respaldo

c. Todos los nodos ejecutan la operación y devuelven el resultado al cliente

D. Cuando el cliente recibe f+1 resultados idénticos de diferentes nodos, el proceso finaliza. f representa el valor máximo de posibles nodos mentirosos.

Usado por: HyperLedgerFabric, Stellar, Ripple, Dispatch

**Ventajas: ** Alta velocidad, escalable.

Contras: Comúnmente utilizado en redes privadas y autorizadas.

10 Tolerancia a fallas bizantinas delegada (dBFTTolerancia a fallas bizantinas delegada, dBFT)

Introducción al algoritmo: La comunidad china de cadenas de bloques NEO (anteriormente conocida como Xiaoyi) propuso un algoritmo bizantino tolerante a fallas dBFT mejorado. Este algoritmo se basa en la idea de diseño de PoS sobre la base de PBFT. El tenedor de libros, y luego los tenedores de libros alcanzan un consenso a través del algoritmo tolerante a fallas bizantino. Este algoritmo mejora la falta de consistencia final de PoW y PoS, lo que hace que la cadena de bloques sea adecuada para escenarios financieros.

También para resolver el Problema de los Generales Bizantinos, el mecanismo de "Tolerancia a Fallos Bizantinos Autorizados" es un algoritmo de consenso que garantiza la tolerancia a fallos implementado dentro de la cadena de bloques NEO. En este mecanismo, hay dos participantes, uno es el "nodo de contabilidad" para la contabilidad profesional y el otro es un usuario común en el sistema.

Los usuarios ordinarios votan para determinar los nodos de contabilidad en función de la proporción de sus tenencias. Cuando se necesita aprobar un consenso, se selecciona aleatoriamente un portavoz de estos nodos de contabilidad para elaborar un plan, y luego otros nodos de contabilidad siguen la tolerancia bizantina a fallas. algoritmo. Es decir, el principio de la minoría obedeciendo a la mayoría hace una declaración. Si más del 66% de los nodos están de acuerdo con el plan del orador, se alcanza el consenso; de lo contrario, el orador es reelegido y se repite el proceso de votación.

Dado que todos los delegados pueden verificar las propuestas de bloque, es fácil comprender si los datos enviados por el orador son válidos o no. Entonces, si el orador es deshonesto y envía una propuesta inválida a dos tercios de los delegados, los bloques no coincidirán y los propietarios de los nodos no los validarán. Se llega a un consenso con dos tercios de los votos y se elige un nuevo orador.

**Usuario:**Neo

Proceso de consenso:

a) Cualquiera puede ser representante siempre que cumpla con los requisitos. Todos los titulares de tokens NEO pueden votar, los delegados no son anónimos y se requieren 1000 GAS para convertirse en propietario de un nodo.

b) Se elige al azar un orador entre los delegados.

c) El hablante construye un nuevo bloque a partir de las transacciones pendientes de verificación. El Portavoz luego envía la propuesta a los representantes electos. Se supone que rastrean todas las transacciones y las registran en la red.

d. Los delegados son libres de compartir y comparar las propuestas que han recibido para probar la precisión de los datos, así como la honestidad de los oradores. Si más de dos tercios de los delegados llegan a un consenso y lo validan, el bloque se agrega a la cadena de bloques.

**Ventajas: **Rápido (se tarda entre 15 y 20 segundos en generar un bloque); gran rendimiento de transacciones, sin necesidad de consumir energía, escalable y sin bifurcaciones.

Desventajas: No hay anonimato, y se requiere una identidad real para operar para ser elegido. Todos compiten por ser la cadena raíz. Puede haber múltiples cadenas de raíces.

11. Tolerancia práctica a fallas bizantinas de rotación (RBPFT)

Introducción al algoritmo: Los principios de dBft y RPBFT son similares a PBFT, excepto que no todos los nodos participan en el consenso, pero los nodos se dividen en dos tipos:

a. Nodo de consenso: un nodo que ejecuta el proceso de consenso PBFT y tiene la autoridad para generar bloques a su vez

b. Nodo de verificación: no ejecute el proceso de consenso, verifique si el nodo de consenso es legal, bloquee la verificación, después de varias rondas de consenso, cambiará a un nodo de consenso

En la tolerancia a fallas bizantina por turnos, los nodos de consenso se reemplazan por nodos de verificación a su vez.

**Caso de uso:**Fisco-BCOS

**Ventajas: **La velocidad de transmisión es más rápida que el chisme y no hay un paquete de mensajes redundante

Divide y vencerás, el ancho de banda de salida de cada nodo es O(1), gran escalabilidad

Desventajas: el nodo intermedio es un solo punto y requiere estrategias adicionales de tolerancia a fallas

12. AptosBFT

** **

Introducción al algoritmo: También es un algoritmo derivado de PBFT. El algoritmo de consenso que lleva el nombre de Aptos se basa en HotStuff, que se basa en PBFT. Las ventajas de este modelo de algoritmo son como las cebollas y las muñecas rusas, que deben pelarse capa por capa. Cada nodo solo se comunica con el líder, en lugar de enviar mensajes al líder y a todos los demás "generales". El líder emite un mensaje (bloque propuesto) para votar, cada nodo envía su voto al líder que recogió el mensaje.

Caso de uso: Aptos

Finalmente, se adjunta un resumen de esta parte:

**Además, hay algunos algoritmos de consenso poco comunes. **

En 2015, el profesor David Mazieres, director científico de Stellar.org, propuso el Protocolo de Consenso Estelar (SCP).SCP evolucionó sobre la base del Acuerdo Bizantino Federal y el Acuerdo Ripple, y es el primer mecanismo de consenso comprobablemente seguro, con cuatro propiedades clave de control descentralizado, baja latencia, confianza flexible y seguridad asintótica.

En el mismo año, el proyecto Sawtooth Lake de Hyperledger combinó el consenso de Ripple y SCP y propuso un algoritmo de consenso de votación de Quorum para lidiar con escenarios de aplicaciones que requieren una transacción definitiva definitiva.

En 2016, el ganador del Premio Turing y profesor del MIT, Sivio Micali, propuso un algoritmo de consenso bizantino tolerante a fallas rápido llamado AlgoRand.Este algoritmo utiliza tecnología de lotería criptográfica para seleccionar el verificador y líder del proceso de consenso, y a través de su BA* The Byzantine Fault diseñado Tolerant Protocol llega a un consenso sobre nuevos bloques.AlgoRand requiere muy pocos cálculos y muy pocas bifurcaciones, y se considera una tecnología de consenso de libro mayor distribuido verdaderamente democrática y eficiente.

En 2017, la Universidad de Cornell propuso un nuevo algoritmo llamado Sleepy Consensus (consenso durmiente).Este consenso tiene como objetivo el hecho de que la mayoría de los nodos de consenso a gran escala en el entorno de Internet pueden estar fuera de línea, y solo unos pocos nodos están en línea La realidad de participar en el proceso de consenso. Este estudio demuestra que el algoritmo de consenso tradicional no puede garantizar la seguridad del consenso en este entorno. Sin embargo, utilizando el algoritmo de consenso inactivo, siempre que la cantidad de nodos honestos en línea exceda la cantidad de nodos defectuosos, se puede garantizar la seguridad y la solidez.

##04 Resumen

Si salta fuera de la perspectiva del desarrollador e incluye más formas de pensar que combinan la política y la economía, puede haber más algoritmos de consenso, como la combinación de métodos de consenso similares al concepto de PPP, que no solo puede lograr la naturaleza de castigo por malicioso Partes, pero también puede lograr el objetivo de ahorrar energía informática de la manera más eficiente.

En resumen, el mecanismo de consenso es el núcleo de la tecnología blockchain. Puede resolver el problema de confianza en el sistema distribuido, garantizar la consistencia y seguridad de los datos entre los nodos, y evitar el ataque y la manipulación de nodos maliciosos, asegurando así el bloque. La estabilidad y fiabilidad del sistema de cadena. Al mismo tiempo, el mecanismo de consenso también puede resolver el problema del "doble gasto" y mejorar el rendimiento y la velocidad de procesamiento del sistema blockchain. Pero varios algoritmos de consenso no son absolutamente seguros, eficientes y descentralizados.

No existe el mejor algoritmo, solo el algoritmo que más le convenga. La elección del algoritmo de consenso está muy relacionada con el escenario de la aplicación. Los entornos confiables usan Paxos o RAFT, las alianzas autorizadas pueden usar PBFT y las cadenas no autorizadas pueden usar PoW, PoS, Ripple consenso, etc. **El mejor mecanismo de consenso es siempre el que se adapta a las necesidades del usuario. **

Referencia:

  1. ¿Qué son los mecanismos de consenso en blockchain y criptomonedas?
  1. La amenaza del ataque de doble flor a blockchain
  1. Lea 11 algoritmos de consenso convencionales en un artículo y comprenda a fondo qué diablos son PoS, PoW, dPoW, PBFT y dBFT.

4Comprender el doble gasto y cómo prevenir los ataques

5Introducción a las Aplicaciones de los Mecanismos de Consenso Bizantino

6AptosBFT: todo lo que necesitas saber sobre el consenso BFT en Aptos

Ver originales
El contenido es solo de referencia, no una solicitud u oferta. No se proporciona asesoramiento fiscal, legal ni de inversión. Consulte el Descargo de responsabilidad para obtener más información sobre los riesgos.
  • Recompensa
  • Comentar
  • Compartir
Comentar
0/400
Sin comentarios
  • Anclado
Comercie con criptomonedas en cualquier lugar y en cualquier momento
qrCode
Escanee para descargar la aplicación Gate.io
Comunidad
Español
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)