Módulo 5.1.1
CELLULAR CONSENSUS
En el Cellular Consensus el proceso de votación se modela como un autómata celular, donde los nodos pueden ser considerados como células que monitorean los estados de sus vecinos y ajustan su opinión en consecuencia. El algoritmo de consenso real es extremadamente simple y puede resumirse en 5 líneas de código:
Si NúmeroDeVecinosPrefiereTransacción(tx) > NúmeroDeVecinos / 2 { PreferTransaction(tx) } más { DislikeTransaction(tx) }
Describe un mecanismo por el cual los nodos adoptan la opinión mayoritaria de sus vecinos, gustando o disgustando una transacción basada en esa mayoría.
Es extremadamente rápido y robusto. La siguiente animación muestra una simulación de 10.000 nodos que alcanzan un consenso en presencia de 128 transacciones conflictivas (diferentes colores representan diferentes transacciones):
En este ejemplo, la red alcanza el consenso en cuestión de segundos.
El aumento del número de nodos afecta al tiempo que tardan las transacciones en propagarse en la red, pero no afecta al tiempo necesario para alcanzar un consenso. Las decisiones se toman localmente y en paralelo, independientemente del número de nodos que participen en la red.
El hecho de que siempre se intercambien votos con los mismos vecinos puede representar una ruta de ataque. Añadimos seguridad al incorporar la reputación basada en el maná en el proceso de peering: los nodos preferirán a los vecinos con una reputación similar. Esto hace que sea caro para los atacantes ser considerados como vecinos, y añade otro incentivo para que los nodos alcancen una alta reputación. La red se vuelve cada vez más segura a medida que la cantidad de maná que poseen los nodos honestos crece naturalmente con el tiempo.
Gossip about Opinion: El sistema inmunológico del organismo
El tratamiento de los nodos como células de un organismo vivo nos permite implementar un «sistema inmunológico». Esto protege a la red contra los ataques forzando a los participantes a jugar según las reglas, y proporciona una mayor protección que las medidas tradicionales como la protección de Sybil. Dado que todos los vecinos son seleccionados al azar, el proceso por el cual Shimmer alcanza un consenso es altamente probable. Pero a nivel de nodo, el Consenso Celular es determinista. Esto nos permite verificar el comportamiento de un nodo si conocemos la opinión de sus vecinos. Los malos actores que violan las reglas pueden ser detectados (como se demuestra a continuación) y desalojados inmediatamente, por cualquiera de sus vecinos.
Esta idea puede formalizarse en el siguiente protocolo, que llamamos «Gossip abut Opinion»:
A intervalos regulares, cada nodo emite un mensaje de «heartbeat» (latido del corazón) a sus vecinos. Esta contiene su opinión actual y la razón por la que llegó a esa opinión, es decir, las opiniones de sus vecinos en la ronda anterior.
Para comprimir la cantidad de datos intercambiados sólo se envía la diferencia entre latidos cardíacos consecutivos, es decir, sólo se envían los hashes de transacción cuyo estado de «gustado» ha cambiado.
Un nodo firma sus mensajes y opiniones para garantizar la autenticidad.
Este latido o heartbeat sirve para múltiples propósitos:
- Obliga a los nodos a hacer declaraciones regulares y a permanecer como miembros activos de la red.
- Se utiliza para sincronizar opiniones entre vecinos, permitiendo a los nodos actualizar su propia opinión de acuerdo a las reglas descritas anteriormente, sin necesidad de consultar proactivamente a otros nodos.
- Permite a los nodos verificar que sus vecinos son honestos – aquellos que violan el protocolo al cambiar de opinión pueden ser desalojados de la red inmediatamente. Dado que los mensajes están firmados, el mal comportamiento puede probarse rastreando los mensajes maliciosos hasta los nodos que los emitieron.
Este enfoque tiene una serie de características convincentes que no se han visto en ningún otro mecanismo de consenso permissionless : su naturaleza asincrónica, la simplicidad de su implementación, la eficiencia de sus gastos generales de mensajes, la velocidad con la que alcanza el consenso y su capacidad de resistencia al ataque.
Mientras que los fenómenos emergentes son muy comunes en los sistemas biológicos y han demostrado funcionar bien en la práctica, es extremadamente difícil modelarlos matemáticamente debido a su naturaleza inherentemente caótica y compleja. El mayor inconveniente del enfoque es, por lo tanto, la complejidad de formalizar sus pruebas científicas. Sería necesario estudiar a fondo el Consenso Celular en un entorno de redes de prueba antes de poder desplegarlo en la red principal.