Overlord — Un nuevo algoritmo de consenso

Nervos Network

Overlord es un algoritmo de consenso personalizado para Huobi Chain, cuya investigación y desarrollo fue realizada por un equipo de desarrollo de Nervos.

Huobi Chain, una blockchain pública, regulable orientada a servicios financieros descentralizados (DeFi) — utiliza Overlord— y lanzó en beta a principios de esta semana

Yun Zhou, Project Manager de Nervos que trabaja en Huobi Chain, compartió el proceso y características de diseño integrales de Overlord:

Antes de seleccionar un algoritmo de consenso para la cadena pública Huobi, primero nos preguntamos:

  • ¿A quién está sirviendo?
  • ¿Qué problema resuelve?
  • ¿Qué valor social se está creando?

En junio de 2019, hicimos progresos significativos en todos los ámbitos, y compartimos nuestra visión en el artículo “Nervos y Huobi se asocian por el futuro de la economía descentralizada””. Con este fin, solicitamos la opinión de los profesionales en el área de finanzas y la administración, seguimos las necesidades reales del mercado y escuchamos atentamente los comentarios de la comunidad.

Hoy en día, los mercados financieros y las aplicaciones de tecnología blockchain están relativamente separados. Huobi Chain se posiciona como una infraestructura de mercado financiero eficiente y global basada en la blockchain. El término “Eficiente” corresponde a ráfagas de alta velocidad de transacciones en cadena; “Global” corresponde a la compatibilidad favorable y alta escalabilidad de la cadena subyacente; “Infraestructura” significa que el desarrollo de aplicaciones en cadena está estandarizado y simplificado, lo que facilita un rico ecosistema de desarrolladores en el futuro.

El consenso de una blockchain funciona como un corazón; debe ser eficiente y potente para permitir que las aplicaciones construidas en la cadena florezcan: la cadena pública Huobi requiere un algoritmo de consenso bizantino tolerante a fallas (BFT) que pueda sostener miles de transacciones por segundo con cientos de nodos de consenso y retrasos en las transacciones de no más de unos pocos segundos.

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

  • PBFT, el algoritmo de consenso bizantino tolerante a fallas más antiguo tiene un problema resultante de una excesiva complejidad del mensaje– O(n3) que es causado por la forma en que maneja los cambios de vista (el proceso de conmutación de líder).
  • Tendermint es un algoritmo de consenso propuesto en 2017. En esencia, adopta un mecanismo de "bloqueo- desbloqueo ", que simplifica el proceso de conmutación de líder. Sin embargo, esta decisión tiene como consecuencia una pérdida de capacidad de respuesta, lo que significa que incluso en excelentes condiciones de red, el consenso de Tendermint todavía requiere un tiempo de bloqueo fijo. Aunque los cambios de vista se simplifican y la complejidad de los mensajes se reduce a O(n2), todavía no cumplía con nuestro requisito de mayor eficiencia de consenso
  • Hotstuff entró en el ojo público a través de Libra en 2019. Realiza muchas mejoras en la complejidad y la capacidad de respuesta de los mensajes, sin embargo, la validación de transacciones requiere al menos tres bloques. Esta limitación es significativa y no puede satisfacer las necesidades de casos específicos de negocios bajo ciertas circunstancias.

Por tanto, 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 superior a unos pocos segundos y las transacciones no se pueden revertir en la cadena

Se han completado las fases de diseño y desarrollo del algoritmo Overlord, y se ha implementado la ingeniería inicial de código abierto en Github.

¿Cómo logra Overlord estas propiedades?

En primer lugar, Overlord introduce un mecanismo que utiliza firmas agregadas de BLS para recopilar votos de consenso de los nodos. Un nodo ya no transmite mensajes de consenso a otros nodos mediante la red P2P. En cambio, envía el mensaje a la directriz, 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(n2) a O(n), mejorando significativamente la eficiencia del consenso.

En Overlord, los procesos de verificación y votación de bloques 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 del estado, 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 necesita esperar el resultado de la ejecución antes de pasar al siguiente bloque). En Overlord, una vez que un bloque ha sido aceptado en la cadena, se puede considerar confirmado y ninguna transacción de ese bloque se puede revertir. Este rápido carácter definitivo es necesario para casos de uso financiero o empresarial con un gran número de transacciones o contratos complejos.

¿Por qué el nombre de “Overlord?”

Los desarrolladores y los Gamers 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 los enjambres de la población Zerg, similar a la naturaleza del consenso que comprendemos. Si un grupo de nodos se imagina como un enjambre, Overlord es el cerebro del enjambre. En Starcraft, un Overlord funciona de forma similar al proceso de consenso de una blockchain, que controla las funciones de todos los nodos.

Creemos que a través de la utilización del consenso Overlord, podemos construir un sistema blockchain 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 conocer más acerca de Overlord, por favor visita GitHub.

Únete a nuestra comunidad: Github Forum Reddit Twitter

Para discusiones o preguntas, únete a la conversación en Discord o en uno de los canales de Telegram de nuestra comunidad: inglés, coreano, ruso, japonés, español, vietnamita y chino