Descripción general de los protocolos actuales de creación de consenso en un entorno descentralizado

Este artículo es una revisión superficial de los enfoques clave para lograr el consenso en un entorno descentralizado. El material le permitirá comprender las tareas que resuelven los protocolos considerados, el alcance de su aplicación, las características de diseño y uso, y también evaluará las perspectivas para su desarrollo e implementación en sistemas de contabilidad descentralizados.

Tenga en cuenta que en una red descentralizada, se aplica el principio de redundancia, que se basa en el hecho de que los nodos pueden hacer el mismo trabajo. Para una red centralizada, esto es naturalmente ineficiente, y para una red descentralizada, este es un requisito previo. Pasemos a los requisitos básicos.

Requisitos del protocolo de consenso


Los protocolos deben garantizar el funcionamiento confiable de los usuarios en condiciones bastante duras y al mismo tiempo satisfacer los requisitos mínimos. Los principales se enumeran a continuación.

Falta de una fiesta de confianza central . Una red consta de pares. Si un atacante o un tercero intenta deshabilitar un cierto número de nodos, la red continuará funcionando normalmente hasta que los participantes honestos controlen la gran mayoría de los nodos de la red.

Los miembros honestos no saben qué sitios están controlados por ciberdelincuentes . Se asume que otros nodos pueden fallar o funcionar arbitrariamente en puntos arbitrarios en el tiempo, incluso ser coordinados por atacantes para realizar un ataque en la red. Una vez más, los participantes honestos no saben cuáles de los nodos son honestos y cuáles son malos o poco confiables.

Se supone que la red no es confiable a sabiendas . Algunos mensajes pueden entregarse con un retraso severo, mientras que otros pueden perderse en la red y puede que no se entreguen en absoluto. Es en tales circunstancias que el consenso descentralizado debe continuar funcionando normalmente: todos los nodos honestos deben llegar al mismo estado de la base de datos de transacciones confirmadas.

Los protocolos deben ser completamente formales . No debe existir una participación humana adicional y no se requieren datos adicionales. Todos los nodos honestos deben llegar a la misma solución, siguiendo completamente el algoritmo que ejecuta la computadora.

Además, hay ciertos supuestos bajo los cuales el protocolo garantiza el funcionamiento correcto . Los nodos honestos deben constituir la mayoría de todos los participantes: más de ½ o ⅔ de su número total. Sin embargo, el tiempo de toma de decisiones no es limitado. La restricción puede estar relacionada con el número de pasos para tomar una decisión, pero no con el tiempo.

Áreas de protocolos de consenso


Monedas digitales


En primer lugar, esto se aplica a las criptomonedas: Bitcoin usa el algoritmo Nakamoto, Ethereum usa una versión simplificada de GHOST, Bitshares implementa PoS delegados, etc.

Cabe señalar que una comunidad que admite una determinada moneda digital no siempre es grande y descentralizada. Hay una serie de otras monedas digitales que están centralizadas. Sin embargo, esto no significa que no se necesita un mecanismo de consenso. Por ejemplo, Ripple usa el protocolo BFT en un entorno centralizado.

Sistemas altamente confiables y críticos


Los protocolos de consenso se utilizan en sistemas informáticos altamente confiables. Se pueden usar para acceder a bases de datos distribuidas al construir clústeres, y también se usan necesariamente en sistemas técnicos críticos: estos pueden ser sistemas de control de equipos de aeronaves, sistemas de control de reactores nucleares, así como en tecnologías espaciales.

El 6 de febrero de 2018, tuvo lugar el lanzamiento del Falcon Heavy. Fue interesante observarlo y leer reseñas técnicas. Pero no fue menos interesante leer sobre qué algoritmos de consenso usa el equipo. Los ingenieros se vieron obligados a usar dispositivos electrónicos simples, que se venden en tiendas normales y no funcionan de manera muy confiable en condiciones de espacio difíciles. Por lo tanto, utilizan múltiples redundancias en su trabajo y es necesario llegar a un consenso en este caso.

Criptomonedas


Las criptomonedas funcionan en redes peer-to-peer. En este caso, los mensajes o transacciones se transmiten entre los participantes de la red en puntos arbitrarios en el tiempo. Supongamos que hay miembros ubicados en los EE. UU. Y miembros ubicados en Australia en la red. Los pagos enviados desde los Estados Unidos serán vistos por los participantes de los Estados Unidos antes de los pagos enviados desde Australia. Esto se debe a la grave demora, según los estándares de la computadora, en entregar un mensaje de un continente a otro. La situación será similar para los australianos, porque verán los pagos de Australia antes que los pagos de los EE. UU.

La situación descrita anteriormente significa que diferentes participantes de la red verán en un momento dado que verán diferentes estados finales de la base de datos con las transacciones. Dado que las transacciones provienen de usuarios a validadores en diferentes momentos, se necesita un protocolo que permita que cada nodo, independientemente de su ubicación, reciba todas las transacciones en el mismo orden.

Básicamente, se utilizan dos enfoques para el funcionamiento de los sistemas de contabilidad de criptomonedas: PoW, que es el más común, y PoS, que se ha desarrollado activamente recientemente.

En PoW, se está realizando una cantidad adicional de trabajo, que ahora consiste en encontrar el prototipo de la función hash. De hecho, hay una desaceleración artificial de la red para garantizar la seguridad. Para llevar a cabo una acción maliciosa, un atacante deberá realizar la cantidad de trabajo necesaria. Esto requiere una gran cantidad de energía y hace que la implementación de ataques no sea muy efectiva. Este enfoque garantiza la fiabilidad de la red. Sin embargo, la necesidad de realizar una tarea tan exigente de recursos limita el ancho de banda de la red que se ejecuta en este protocolo. Pero los científicos continúan trabajando en el enfoque de PoW y proponen esquemas alternativos, así como otras tareas intensivas en recursos, además de buscar la imagen inversa de la función hash. Recientemente se ha propuesto un algoritmo basado en la prueba de espacio y tiempo .

PoS le permite proporcionar un mayor ancho de banda de red y no requiere costos de energía excesivos, como PoW. Sin embargo, PoS requiere un análisis más serio en el desarrollo e implementación de las criptomonedas.

En los sistemas de contabilidad basados ​​en PoS, se supone que los usuarios que poseen una gran cantidad de monedas no son rentables para atacar. Si en los sistemas de contabilidad basados ​​en un sistema PoW, un empresario invierte dinero en equipos y paga la electricidad, y luego realiza un ataque exitoso al sistema, perderá su inversión en minería. En PoS, se adopta un enfoque diferente: si se supone que el atacante invirtió en monedas específicas en cuyos valores está interesado, entonces, en caso de un ataque exitoso al sistema, perderá sus inversiones, ya que las monedas se depreciarán. Por lo tanto, la estrategia más rentable se considera la adhesión honesta al protocolo.

Breve glosario


Seguridad : la capacidad del sistema de contabilidad para mantener los principios básicos de funcionamiento y los intereses de los participantes honestos en caso de cualquier influencia maliciosa.
Finalidad : una propiedad que indica la irrevocabilidad de una decisión o datos confirmados.
Liveness es una propiedad que garantiza que si todos los miembros honestos desean agregar una entrada a una base de datos común, se agregará allí.
Persistencia : la capacidad del sistema de contabilidad para mantener la invariabilidad del estado final de su base de datos incluso después de que todos sus validadores hayan fallado.
Permiso : indica una restricción, es decir, la necesidad de obtener permiso para participar en un determinado proceso.
Sin permiso : significa acceso gratuito para participar en un determinado proceso.

Protocolo de consenso de Ouroboros


Ouroboros es un protocolo basado en PoS que proporciona consenso entre los validadores de transacciones de moneda digital de Cardano. Además, el algoritmo en sí es la primera opción demostrablemente estable entre todas las alternativas de PoS.

Primero, considere una opción más simple basada en la apuesta estática, cuando se supone que la distribución existente de monedas no cambia.
imagen
Hay algunos bloqueos de génesis y los usuarios forman nuevas transacciones, pero no afectan significativamente la distribución.

El bloque Genesis contiene datos con algún valor aleatorio, con la ayuda de los cuales tiene lugar la selección de validadores. Le permiten liberar el bloqueo en un momento determinado. El validador que ha recibido este derecho recopila transacciones, las recibe de otro validador, verifica la corrección y libera el bloque en la red. Si ve varias cadenas, selecciona la más larga de ellas y le agrega el bloque.

En el contexto de la situación relacionada con la apuesta estática, podemos usar este enfoque durante un cierto período de tiempo, pero luego la distribución de la apuesta (distribución de la apuesta) entre diferentes usuarios puede cambiar. En otras palabras, parte del dinero va de un usuario a otro, y debe ajustar la probabilidad de obtener el derecho a elegir un bloque.

Nota : la apuesta estática implica que un cierto período de apuesta del validador se considera sin cambios. En este momento, el validador puede participar en la decisión y hacer los pagos, pero el número de monedas en su apuesta y, por lo tanto, el peso de su voto, permanecerán sin cambios hasta el próximo período de tiempo.

En el caso de la apuesta dinámica, el tiempo se divide en ranuras y las ranuras se dividen en eras. La duración de una era es aproximadamente igual a la duración de un día. Esta relación se determina por el hecho de que durante este período de tiempo la distribución de monedas no puede cambiar significativamente.

Al final de la era, se registra la distribución actual de monedas para cada usuario. Además, se genera un nuevo valor de aleatoriedad para garantizar que en la próxima era, los usuarios elegibles para generar bloques serán seleccionados al azar según la cantidad de monedas que tengan.

Del mismo modo, existe protección contra los llamados ataques de molienda, cuando un usuario en particular puede clasificar entre varias opciones de bloques, varias opciones de aleatoriedad para formar la cadena en la que puede maximizar sus ganancias. Las criptomonedas basadas en protocolos PoS de primera generación como Peercoin y NXT son potencialmente vulnerables a tales ataques.

Los creadores de este algoritmo resolvieron los problemas anteriores. Los validadores inician un protocolo especial entre ellos, que se llama MPC (cómputo multipartito) y permite generar aleatoriedad juntos. Este protocolo también es demostrablemente robusto, basado en enfoques establecidos desde hace mucho tiempo.

El protocolo Ouroboros proporciona persistencia, siempre que la mayoría de los validadores honestos estén en el sistema. Si los participantes honestos que trabajan en el tema de los bloques controlan más del 50% de las monedas en el sistema, el protocolo puede considerarse protegido.

Se ha desarrollado un mecanismo de incentivos (motivación) para el comportamiento honesto. Usando la teoría de juegos, se demuestra que el validador obtiene el máximo beneficio cuando sigue las reglas del protocolo. Cualquier participación en la comisión de ataques no solo no aumenta el beneficio del participante, sino que en algunos casos puede reducirlo. Por lo tanto, la estrategia más rentable para el validador es seguir honestamente las reglas del protocolo.

La capacidad del sistema de contabilidad estará limitada solo por demoras durante la sincronización de la red. Este protocolo proporciona una alta eficiencia energética en comparación con la prueba de trabajo, ya que aquí no se necesitan granjas mineras. Ahora para la recopilación de transacciones y la liberación de bloques, una computadora personal normal es suficiente. En el futuro, estos cálculos pueden llevarse a cabo incluso en un teléfono inteligente normal.

Las limitaciones del protocolo Ouroboros incluyen el hecho de que la primera versión del protocolo es sincrónica. Esto significa que los mensajes entre los participantes deben entregarse en un período de tiempo limitado. Si hay retrasos más largos en la red que los establecidos en las reglas, esto puede reducir la seguridad. Sin embargo, ya está previsto utilizar la próxima versión del protocolo: Ouroboros Praos. En él, incluso con un aumento en los retrasos de la red, se garantiza una seguridad completa.

Problemas con PoW en Bitcoin


Considere el consenso que subyace a Bitcoin. Parte de los bloques que generan los usuarios honestos todavía se descartan; estos son los llamados bloques huérfanos. Estos bloques se generan en paralelo con la cadena principal, pero la mayoría de la red decidió que esta cadena no debería continuar, y los bloques se descartan.

Cuando hay pocos bloques de este tipo, no hay nada de qué preocuparse. Sin embargo, si hay muchos de ellos, la red no tiene tiempo para sincronizarse, y resulta que se desperdicia parte de la potencia informática de los usuarios honestos de la red. Esto significa que ahora el atacante necesita luchar no por el 51% de la potencia informática de la red, sino por un porcentaje menor. Si este valor es del 20%, un atacante con un 20% de potencia informática y un gran retraso en la entrega de mensajes de red puede implementar un ataque de doble gasto.

Por lo tanto, en Bitcoin, se establece un intervalo de tiempo entre los bloques minados que dura 10 minutos. Gracias a esto, la red logra sincronizarse claramente y se reduce la probabilidad de que aparezcan dichos bloques. Si necesita aumentar el rendimiento de la red aumentando la frecuencia de formación de bloques, entonces necesita una solución diferente.

Fantasma


La primera solución fue el protocolo GWOST PoW. Su versión simplificada se usa en la plataforma Ethereum.
imagen
En este caso, el atacante puede tirar de su cadena (marcada en rojo en la figura) y hacerla más larga, pero no ganará. Los usuarios honestos seguirán la cadena que construyeron antes.

Los usuarios honestos en este caso pueden tener dos cadenas. El más largo (1B-2D-3F-4C-5B), pero será más corto que la cadena del atacante. La peculiaridad de GHOST es que el algoritmo se enfoca no en la cadena más larga, sino en la cantidad de bloques en el árbol formados por la cadena actual. Tiene en cuenta no solo la longitud de la cadena en sí, sino también bloques a diferentes alturas. Por lo tanto, el resultado no es una cadena lineal, sino un árbol. Se tiene en cuenta la cantidad de bloques que contiene.

Si observa la cadena 1B-2C-3D-4B, los bloques 3E y 3C que lo acompañan son visibles. Por el número de bloques y el trabajo gastado, esta cadena tiene la mayor complejidad y se tomará como la principal. Los usuarios honestos continuarán considerándolo el principal, a pesar de los intentos del atacante de atacar la red. En el consenso tradicional de Nakamoto, tal ataque habría tenido éxito, pero no representa una amenaza para GHOST.

Sin embargo, la desventaja de GHOST es el hecho de que parte de los bloques aún se pierde. En este caso, la cadena 2D-3F-4C-5B aún se dejará caer. En consecuencia, la cuestión de dejar caer bloques de usuarios honestos sigue abierta.

ESPECTRO Y FANTASMA


Con el fin de aumentar la frecuencia de formación de bloques y resolver el problema de la caída de bloques de usuarios honestos, se propusieron dos protocolos de PoW más: SPECTRE y PHANTOM.
imagen
Ya ni siquiera usan una estructura de árbol, sino el llamado gráfico acíclico dirigido (DAG). En este caso, el validador incluye punteros a bloques que otros validadores aún no hacen referencia en el encabezado de su bloque, al menos en el estado de red que ve en el momento actual, y envía el bloque más.

Por lo tanto, se obtiene una estructura en la que se incluyen todos los bloques que los validadores ven en el momento actual. Aquí, el poder minero de los usuarios honestos no se pierde en absoluto. Además, proporciona un gran ancho de banda de red y un alto nivel de seguridad. La ventaja de este enfoque es el hecho de que el sistema está verdaderamente descentralizado.

Comparemos las características de la red Bitcoin y la red que funciona utilizando los protocolos SPECTRE y PHANTOM. Si hablamos de la situación actual en la red de Bitcoin, entonces vale la pena dar gran importancia a los grupos de minería. En el Bitcoin moderno, se liberan 144 bloques por día. Es esta cifra la que se puede obtener si la cantidad de minutos en un día se divide por 10. Puede ser bastante real que el validador compró el equipo, pagó la electricidad durante mucho tiempo, pero no funcionó para generar la unidad, y durante ese tiempo el equipo estaba desactualizado y usaba más. no tiene sentido Para evitar esta situación, los validadores empresariales se combinan en grupos mineros. La mayoría de los grupos mineros tienen un líder (empresa / organización), que inclina a Bitcoin moderno para centralizar el proceso de validación de nuevas transacciones.

En el caso de SPECTER y PHANTOM, los grupos mineros no son necesarios en absoluto. Si establecemos un paralelo con la red moderna de Bitcoin, entonces cada usuario de la red que usa los protocolos SPECTER y PHANTOM tiene la oportunidad de liberar un bloque por día. Por lo tanto, la necesidad de grupos mineros generalmente desaparece y llegamos a una red verdaderamente descentralizada.

, SPECTRE PHANTOM , .

BFT-


, – BFT- (Byzantine Fault Tolerance).
imagen
, 80- XX . , - . , . , . , , , , . - , . . , .

BFT- . , , . . , , . , . : .

, ⅔ . BFT- , . BFT- , .

BFT-. , , , , , , Genesis . , . BFT- .

BFT-


Practical BFT


, , Practical BFT. 1999 . . , . . , . , ⅔ .

⅔ , .
imagen
, , , , . , , , , . , , , . .

, , DoS- .

HoneyBadger BFT


HoneyBadger BFT . , , . . HoneyBadger : RBC (Reliable broadcast) BA (Byzantine Agreement).
imagen
RBC- . , , ⅔ . BA- , .

. , , . . : - , . , , .

Algorand Hashgraph.

Algorand


Algorand 2017 . BFT-, , , . , .
imagen
, , , ⅔ , ⅔ . , « » (DoS-). , , adaptive corruption.

, , . , ( , ⅔). .

BFT-, safety persistence. .

, liveness, , . , , ( ) . . , .

Hashgraph


Hashgraph . , , , , .
imagen
, : «», , , .

Hashgraph , , , . . , Algorand, . Hashgraph safety liveness, . , .

, , , , . ⅔ , .

BFT


BFT-. . . , ⅔ . , Algorand Hashgraph, .

: permissioned . , . , . , .

permissionless , . . .

Distributed Lab , .

Preguntas frecuentes


– ?

, , . : Algorand Hashgraph BFT-, PoS- Ouroboros. 2018 PHANTOM. .

– Ouroboros , , , ?

grinding-, . Ouroboros persistence liveness: , , . , , , .

persistence . , , MPC . , . , MPC , , , . . - , , . . «» ( ), .

– , ?

, . . PHANTOM, SPECTRE Ouroboros. , .

– PHANTOM SPECTRE, ? .

PHANTOM SPECTRE . , . PHANTOM SPECTRE , . , . , . , , , .

– BFT -?

. PBFT, -, . Algorand Hashgraph, .

– PBFT ?

( ) . , , , .

– , Algorand – DPoS (Delegated Proof-of-stake)

, . Delegated Proof-of-stake , . . Algorand, , .

– , ?

SPECTRE PHANTOM – . SPECTRE , .

Source: https://habr.com/ru/post/es419185/


All Articles