¿Qué es el Protocolo de Consenso Stellar? Guía completa para principiantes

Protocolo de consenso estelar

El Stellar Consensus Protocol (SCP) es el algoritmo de consenso subyacente de Stellar Network que funciona como una construcción demostrablemente segura del Acuerdo Bizantino Federado (FBA). La red de Stellar implementa muchos mecanismos similares para la tolerancia a fallas distribuida en una red financiera como otras criptomonedas con algunas variaciones distintas..

Protocolo de consenso estelar

El SCP se deriva del concepto de Acuerdos Bizantinos (BA) y se adapta a una red descentralizada y sin permisos utilizando quórums y cortes de quórum. Comprender el SCP requiere una breve historia de los BA y cómo se comparan con los FBA, seguido de una descripción de los quórum y las secciones del quórum, el modelo de votación federado y, finalmente, el sistema de votación de compromiso / aborto del protocolo SCP en sí..

Acuerdos bizantinos y acuerdos bizantinos federados

Acuerdo bizantino es Tolerancia a fallas bizantinas de sistemas informáticos distribuidos que les permitan llegar a un consenso a pesar del comportamiento arbitrario de una fracción de los nodos de la red. El consenso de BA no hace suposiciones sobre el comportamiento de los nodos en el sistema. Practical Byzantine Fault Tolerance (pBFT) es el modelo prototípico para el acuerdo bizantino, y puede llegar a un consenso de manera rápida y eficiente mientras al mismo tiempo desacopla el consenso de los recursos (es decir, participación financiera en PoS o electricidad en PoW).

Tolerancia práctica a fallas bizantinas

Leer: ¿Qué es la tolerancia práctica a fallas bizantinas??

Sin embargo, BA (pBFT) no se escala bien y requiere una gran sobrecarga de comunicación entre todos los nodos participantes. Además, el sistema necesita un acuerdo unánime sobre la pertenencia a la red para mitigar Ataques de Sybil.

El Acuerdo Bizantino Federado fue introducido por el Libro blanco de SCP y aborda explícitamente las limitaciones de BA mediante el fomento de un protocolo de consenso que garantiza lo siguiente:

  • Control descentralizado
  • Confianza flexible
  • Baja latencia
  • Seguridad asintótica

Una de las principales consecuencias de Logística de Amazon en comparación con BA es que un sistema de Logística de Amazon está abierto a los nodos que se unen en un entorno sin permiso en lugar de a través de una lista de miembros cerrada (con permiso).

Logística de Amazon llega a un acuerdo sobre las actualizaciones estatales utilizando un espacio donde se infieren las dependencias de actualización entre nodos. Los nodos deben acordar la actualización de la ranura en cada ronda de consenso. Sin embargo, dado que el sistema está abierto a que los nodos se unan y abandonen la red a voluntad, un mecanismo de consenso de quórum basado en la mayoría no funcionará. En cambio, la Logística de Amazon en el SCP emplea porciones de quórum que son subconjuntos de quórums que son capaces de convencer a nodos particulares de un acuerdo.

Según el Stellar Blog:

“La diferencia clave entre un sistema de acuerdo bizantino y un sistema de acuerdo bizantino federado (FBAS) es que en Logística de Amazon cada nodo elige sus propios segmentos de quórum”.

Los quórums y los segmentos de quórum se analizarán con más detalle a continuación, pero la principal conclusión aquí es que los nodos individuales pueden decidir de forma independiente en qué otros nodos (participantes) confían para obtener información. Por lo tanto, SCP es el primer protocolo de BA que brinda a cada participante la máxima libertad para seleccionar en quién confiar..

Quórumes y sectores de quórum

A quórum se define como un conjunto de nodos necesarios para llegar a un acuerdo en un sistema distribuido. Cuando los nodos intentan llegar a un acuerdo, se comunican entre sí (bajo el supuesto de que no se falsifican mensajes; la criptografía entra aquí) y coinciden en que una actualización del estado es válida una vez que se alcanza un umbral específico de nodos de acuerdo..

Porciones de quórum son los subconjuntos de un quórum que son capaces de convencer a nodos particulares de un acuerdo, lo que significa que un nodo puede depender de múltiples conjuntos de nodos que afirman declaraciones. Un nodo puede depender de numerosos segmentos para obtener información, y esta confianza puede basarse en información externa al sistema. En particular, la confianza se establece dentro de el nodo config archivo, lo que permite la formación dinámica de sectores de quórum y la posterior descentralización.

Como ejemplo:

El nodo A puede determinar que no confía en los bancos, lo que resulta en la necesidad de otra porción de quórum en la que el nodo A confíe para llegar a un acuerdo con los bancos. Una vez que se llega a un acuerdo, se forma quórum. El siguiente gráfico es excelente para comprender mejor este ejemplo. El nodo 7 (y 8) representaría el nodo A que no confía en los bancos.

Crédito de la imagen – David Mazieres Presentación en Google

BA tradicional requiere que todos los nodos acepten las mismas porciones, en lugar de discernir fuentes de información confiable por sí mismos. Como tal, no hay forma de distinguir sectores y quórumes, lo que requiere un acceso de miembro cerrado y autorizado a la red..

El modelo de Logística de Amazon se basa en nodos individuales para elegir sus propios conjuntos de porciones de quórum, lo que permite efectivamente la formación orgánica y más descentralizada de quórumes que dependen de decisiones individuales, de ahí el nombre “federado”. Al discutir la seguridad y vivacidad en el protocolo FBA, necesitamos evaluar intersección de quórum y quórumes disjuntos.

Según el libro blanco de SCP:

“Un protocolo puede garantizar un acuerdo solo si los segmentos de quórum representados por la función Q satisfacen una propiedad de validez que llamamos intersección de quórum”.

Los quórumes se cruzan si comparten un nodo. Los buenos quórumes comparten nodos y dan lugar a quórumes superpuestos. Los nodos son responsables de garantizar que su selección de sectores de quórum no infrinja la intersección de quórum y, por lo general, requiere que los nodos seleccionen sectores que sean conservadores y generen quórums grandes..

Cuando los quórumes no se cruzan, se les conoce como quórumes disjuntos. Los quórumes disjuntos son malos quórumes que pueden llevar a declaraciones contradictorias que socavan el consenso. Para garantizar un proceso de selección de cortes adecuado, los nodos deben equilibrarse la seguridad y vivacidad.

Los nodos carecen de seguridad cuando externalizan valores que contradicen a otros nodos. Los nodos carecen de vitalidad cuando se bloquean en el camino hacia el acuerdo. El modelo de Voto Federado juega un papel fundamental en que los nodos lleguen a un acuerdo sobre una declaración.

Voto federado

El Voto Federado es el método por el cual el SCP acuerda las declaraciones hechas por los participantes. En general, hay dos conjuntos de mensajes intercambiados entre nodos, y las dos rondas de mensajes se pueden subdividir en estados de acuerdo de desconocido, aceptado, y confirmado. En particular, la votación en un entorno federado debe adaptarse a la membresía abierta, lo que hace que el proceso sea más complicado que un sistema cerrado..

El proceso de votación federado consta de 4 fases:

  1. Votación inicial
  2. Aceptación
  3. Ratificación
  4. Confirmación

Voto inicial es donde los nodos votan por una declaración específica que afirman que es válida y que no votarán por declaraciones contradictorias. Sin embargo, esto aún deja abierta la posibilidad de que el nodo cambie su voto si suficientes de los otros nodos participantes, en los que un nodo confía, votan por otro mensaje válido. Los votos en esta etapa son técnicamente votos preliminares..

Aceptación es la etapa en la que un nodo acepta una declaración en función de si ese nodo específico ha aceptado o no una declaración contradictoria o una v-bloqueo conjunto de nodos que están en sectores de quórum con ese nodo (intersección de quórum) aceptan una declaración. Si el nodo no ha aceptado una declaración contradictoria o un conjunto de nodos de bloqueo v vota para aceptar una declaración, entonces el nodo acepta la declaración..

Ratificación es donde todos los miembros de un quórum votan para aceptar una declaración. Si lo hacen, los nodos ratifican la declaración. Volviendo al Nodo A que no confía en los bancos, si los nodos con los que el Nodo A comparte una porción de quórum además de otros nodos en los que confía votan para aceptar una declaración, entonces es ratificado por el Nodo A.

Confirmación es un acuerdo de todo el sistema sobre una declaración. El sistema acuerda una declaración en particular una vez que se procesa un umbral suficiente de mensajes en la red. Los nodos propagan mensajes de aceptación a través de la red desde nodos dentro de su quórum. Estos mensajes pueden influir en otros nodos para que acepten el mensaje incluso si hubieran aceptado un mensaje inicial diferente. Finalmente, se transmite una ronda de mensajes de confirmación para confirmar el mensaje, concluyendo la ronda de votación..

El mecanismo de votación es complicado, pero Stellar ofrece algunos recursos excelentes sobre cómo trazarlo de manera más efectiva. Proporcionan un “Consenso galáctico“Gráfico para obtener una descripción general más amplia, así como una publicación de blog útil con el Ejemplo de la hora del almuerzo. Para un análisis técnico profundo, puede leer la sección Votación federada del Papel SCP.

El Protocolo de Consenso Estelar

El SCP es la implementación del Protocolo del Acuerdo Bizantino Federado diseñado para minimizar los casos de acuerdos bloqueados y neutralizarlos a través de un sistema de votación. El protocolo SCP se compone de 2 subprotocolos principales, el protocolo de nominación y el protocolo de votación..

Para cada espacio de consenso, el protocolo de nominación produce valores candidatos. Eventualmente, cada nodo puede generar de manera determinista un valor de convergencia para cada ranura. Sin embargo, no pueden saber cuando ocurre la convergencia, y los nodos maliciosos pueden restablecer el proceso de nominación.

El protocolo de votación se ejecuta una vez que los nodos acuerdan que el protocolo de nominación ha convergido. En el protocolo de la boleta, una boleta está vinculada al valor del candidato y un nodo debe cometer o abortar el valor vinculado a esa papeleta. Para evitar el bloqueo de acuerdos, los nodos pueden abortar ciertos votos y pasar a otro. Por el contrario, los nodos pueden votar para comprometer una boleta, lo que externaliza el valor asociado con esa boleta al espacio de consenso..

En un nivel alto, la forma en que el SCP trata cada ranura de forma independiente es similar al consenso de una sola ranura en Paxos, solo con muchas instancias separadas.

No hay estados bloqueados en el SCP con intersección de quórum. Los nodos contaminados (nodos que dependen en gran medida de los nodos defectuosos) incluso se pueden omitir a través de un mecanismo de conjunto dispensable donde los nodos buenos pueden ratificar declaraciones sin la cooperación de los nodos contaminados. Los nodos contaminados tampoco pueden socavar el consenso.

Tanto el protocolo de nominación como el protocolo de votación contienen algunos detalles muy complejos para escenarios específicos, como votaciones divididas. Estos detalles también están disponibles en el documento SCP.

Una de las limitaciones del SCP es que solo puede garantizar la seguridad si los nodos eligen porciones de quórum adecuadas. Además, es posible que existan problemas de seguridad en los sistemas federados, como los nodos de gran confianza que aprovechan sus posiciones para obtener ventajas poco éticas. Por ejemplo, si una gran cantidad de nodos confía en los bancos, es posible que tengan una ventaja de información que no está disponible para otros nodos de la red..

Conclusión

En general, el SCP es el primer protocolo de consenso demostrablemente seguro que puede proporcionar control descentralizado, baja latencia, confianza flexible y seguridad asintótica. Las diferentes formas de consenso vienen con sus compensaciones, pero el SCP mantiene un alto nivel de efectividad para llegar rápidamente a un consenso en una red distribuida y sin permisos sin sacrificar la seguridad.

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me
Like this post? Please share to your friends:
map