Overlord – Un nuevo algoritmo de consenso – Nervos Network

Overlord es un algoritmo de consenso personalizado para Huobi Chain, eso fue investigado y desarrollado por un equipo de desarrollo de Nervos.

A través de nuestra investigación, investigamos los algoritmos de consenso BFT modernos y comunes: PBFT, Tendermint y Hotstuff. Desafortunadamente, ninguno de estos algoritmos de consenso satisfizo nuestras necesidades.

PBFT, el primer algoritmo de consenso práctico bizantino tolerante a fallas tiene un problema resultante de la excesiva complejidad del mensaje – O (n³) que es causado por la forma en que maneja los cambios de vista (el proceso de cambio de líderes).Menta es un algoritmo de consenso propuesto en 2017. En esencia, adopta un mecanismo de "bloqueo-desbloqueo", que simplifica el proceso de cambio de líder. Sin embargo, esta decisión da como resultado una pérdida de capacidad de respuesta, lo que significa que incluso bajo excelentes condiciones de red, el consenso de Tendermint todavía requiere un tiempo de bloqueo fijo. Aunque los cambios en la vista se simplifican y la complejidad del mensaje se reduce a O (n²), aún no cumplió con nuestro requisito de mayor eficiencia de consenso.Cosas calientes entró en el ojo público a través de Libra en 2019. Hace muchas mejoras en la complejidad del mensaje y la capacidad de respuesta, sin embargo, la validación de la transacción requiere al menos tres bloques. Esta limitación es significativa y no puede satisfacer las necesidades de escenarios empresariales específicos en determinadas circunstancias.

Entonces, decidimos construir un nuevo algoritmo de consenso, Overlord, para satisfacer nuestras necesidades específicas.

En las pruebas, descubrimos que Overlord puede admitir cientos de nodos de consenso y miles de transacciones por segundo. Además, el retraso de la transacción no es más que unos pocos segundos y las transacciones no pueden revertirse en la cadena.

Las fases de diseño y desarrollo del algoritmo Overlord se han completado y la implementación de ingeniería inicial se ha abierto en Github.

¿Cómo logra Overlord estas propiedades?

Primero, Overlord introduce un mecanismo que utiliza firmas agregadas BLS para recolectar votos de consenso de los nodos. Un nodo ya no transmite mensajes de consenso a otros nodos a través de la red P2P. En cambio, envía el mensaje al líder, que lo procesará y enviará a otros nodos. A través de este mecanismo, la complejidad de la comunicación del sistema se ha reducido considerablemente, de O (n²) a O (n), mejorando significativamente la eficiencia del consenso.

Adicionalmente, Overlord adopta un mecanismo de "tiempo de espera + freno" para abordar el problema de los líderes maliciosos. Esto acelera significativamente el proceso de consenso y reduce la dificultad de implementación. Con este diseño, el número de mensajes requeridos para el consenso se reduce considerablemente, disminuyendo la proporción de ancho de banda utilizado por estos mensajes (para votar, etc.), mejorando aún más la eficiencia del consenso.

En Overlord, la verificación de bloque y los procesos de votación ocurren en paralelo. En comparación con otros algoritmos de consenso, Overlord tiene una mayor velocidad de generación de bloques y una mayor capacidad de procesamiento de transacciones.

La propiedad más importante de Overlord es su desacoplamiento del orden de las transacciones y el consenso estatal, lo que permite que los procesos de ejecución y consenso se ejecuten en paralelo. Este diseño reduce en gran medida el tiempo de inactividad, mejorando la eficiencia del consenso en comparación con Tendermint (que requiere esperar el resultado de la ejecución antes de pasar al siguiente bloque). En Señor, una vez que un bloque ha sido aceptado en la cadena, se puede considerar confirmado y las transacciones en ese bloque no se pueden revertir. Esta finalidad rápida es necesaria para casos de uso financiero o comercial con una gran cantidad de transacciones o contratos complejos.

¿Por qué el nombre "Señor Supremo"?

Los desarrolladores y los jugadores tienen mucho en común, y los desarrolladores de Nervos no son diferentes. En Starcraft, un Overlord es una "criatura significativamente evolucionada" que controla psíquicamente enjambres de la población zerg, similar a la naturaleza del consenso que entendemos. Si un grupo de nodos se imagina como un enjambre, Overlord es el cerebro del enjambre. En Starcraft, un Overlord funciona de manera similar al proceso de consenso de una cadena de bloques, que controla las funciones de todos los nodos.

Creemos que a través de la utilización del consenso de Overlord, podemos construir un sistema altamente eficiente y ampliamente distribuido, y Overlord se convertirá en una solución de consenso común para la próxima generación de blockchains de alto rendimiento.

Para obtener más información sobre Overlord, consulte GitHub.