¿Qué es el LFT2?

En una palabra

LFT2 se basa en el modelo de consenso PBFT, con un algoritmo patentado para generar mensajes de confirmación en un proceso de consenso de 2 pasos. Esto alivia la sobrecarga de comunicación y la complejidad del proceso de consenso de 3 pasos de PBFT, lo que lleva a un algoritmo de consenso de blockchain liviano y de alto rendimiento. Además, LFT2 garantiza la seguridad y la vida incluso bajo un esquema simplificado, al incorporar un mecanismo de Bloqueo de candidato / compromiso para resolver cualquier problema de seguridad potencial que pueda surgir en una red parcialmente sincrónica. En resumen, LFT2 es una implementación revolucionaria de PBFT que disfruta de los mismos beneficios con una complejidad reducida y un rendimiento mejorado en latencia de red, confirmación de bloque y rendimiento de transacciones. LFT2 ha sido auditado recientemente por KAIST, una de las principales universidades de investigación en Corea del Sur [informe de auditoría ]. Para obtener más información, consulte el [ documento técnico LFT2 ].

Diferentes implementaciones de PBFT

PBFT puede considerarse como un prototipo académico, diseñado en teoría para aplicaciones prácticas, pero necesita algunas optimizaciones clave para implementar el algoritmo en el software del mundo real. Los productos populares incluyen Tendermint , que se enfoca en varias decisiones clave de diseño para hacer un sistema PBFT completo. Los ejemplos incluyen la eliminación de la fase de Cambio de vista, que hace posible el reemplazo defectuoso del líder sin un proceso adicional y un protocolo de chismes para entregar mensajes de tamaño constante que no dependen del tamaño del sistema. En general, Tendermint es una implementación de PBFT que es adecuada para blockchains, con un fuerte enfoque en la responsabilidad de los nodos defectuosos.

PBFT tiene una trampa fundamental. Se requiere una gran cantidad de intercambios de mensajes para llegar a un consenso para un bloque. Una de las formas de abordar los problemas de eficiencia es reduciendo su complejidad, sin comprometer la seguridad. Vemos esfuerzos de otros protocolos de blockchain basados ​​en PBFT como Casper FFG, que intenta simplificar los tipos de mensajes de dos (se prepara y se compromete) a solo uno (votos).

La red ICON tiene como objetivo atender contratos inteligentes con lógica empresarial compleja e interoperabilidad entre cadenas. Para cumplir estos propósitos, un algoritmo de consenso más optimizado se vuelve esencial y ese es el objetivo de diseño para LFT2. A continuación, exploraremos cómo LFT2 logra esta hazaña.

Cómo funciona LFT2

Figura 1. Proceso de consenso de bloque LFT2

Como se ve en la Figura 1, cada ronda de consenso consta de dos pasos: Proponer y Votar. LFT2 confirma bloques en dos rondas del proceso de consenso, y confirma el bloque en el siguiente bloque, es decir, el bloque n + 1 confirma y confirma el bloque n. Vamos a cavar más profundo. Pero primero, debemos estar familiarizados con los términos a continuación.

Un nodo líder propondrá un bloque (bloque n) y difunde el bloque a todos los nodos de validación en la red. Cada nodo de validación verificará la integridad del bloque n y transmitirá un mensaje de votación a todos los demás nodos de la red. El nodo líder y los nodos de validación ejecutarán transacciones en el bloque para generar resultados de validación al mismo tiempo.

Si el bloque n recibe más de ⅔ de votos a través del proceso anterior, la ronda se considera exitosa y el bloque n se convierte en un bloque Candidato. En este punto, el bloqueo no está completamente confirmado pero ha alcanzado el nivel de quórum.

El nodo líder para el bloque n + 1 incluirá el resultado de ejecución del bloque n (bloque candidato) y propondrá el bloque a todos los nodos de la red. Después de votar en el bloque n + 1 con una ronda exitosa, el hash estatal del bloque n finalmente se confirmará y el bloque se convertirá en un bloque Commit. En este punto, la confirmación del bloque se completa al final de la ronda 2 y el bloque n + 1 se convierte en el nuevo bloque Candidato y continúa un proceso similar.

Figura 2. Cómo se almacena el hash de estado anterior en el siguiente bloque

La figura anterior muestra que el hash de estado anterior se almacena en el siguiente bloque, y el bloque 1 se confirma en el bloque 2. Este diseño único de LFT2 de confirmar el hash de estado de bloque anterior en el siguiente bloque bajo una máquina virtual determinista producirá una velocidad de confirmación de bloque más rápida.

Comparación de rendimiento

Figura 3. Tiempo de confirmación de bloque contra tiempo de ejecución de transacción

La figura anterior ilustra el tiempo de confirmación de bloque contra el tiempo de ejecución de la transacción. El gráfico anterior se basa en la suposición de que ambos algoritmos confirman en el siguiente bloque. Como se ve en el gráfico, LFT2 puede confirmar bloques más rápido que PBFT en todo el gráfico.

Figura 4. Tiempo de confirmación de bloque según la latencia de red

El gráfico anterior muestra cómo varía el tiempo de confirmación de bloque con diferentes configuraciones de latencia de red. En términos generales, LFT2 funcionará aún más rápido a medida que aumenta la latencia de la red.

Figura 5. Tiempo para confirmar n bloques

La figura anterior muestra el tiempo para confirmar n bloques. Como se ve, LFT2 puede confirmar bloques a una velocidad creciente frente a PBFT a medida que los bloques para confirmar aumentan. En entornos de red reales, la brecha es aún mayor a medida que ocurren las latencias de red (consulte el gráfico anterior).

En términos matemáticos, LFT2 transmite mensajes de voto una vez en una sola ronda, con un total de n + n² número de mensajes. PBFT emite mensajes de votación dos veces en una sola ronda, lo que resulta en un número de mensajes n + 2n². La reducción en los mensajes alivia la carga de la red, lo que efectivamente reduce la latencia de la red a medida que los mensajes transmitidos se vuelven menos problemáticos.

Información Adicional

Para obtener información adicional, consulte el [ LFT2 whitepape r]. LFT2 se implementa como una biblioteca que se puede usar en cualquier aplicación o sistema blockchain. El código es de código abierto en [ ICON Project Github ]. La red ICON se actualizará a LFT2 en el futuro, esté atento.

______

Comunidad oficial ICON

Página de inicio: https://icon.foundation

Medio (ENG): https://medium.com/helloiconworld

Brunch (KOR): https://brunch.co.kr/@helloiconworld

KakaoTalk (KOR): https://open.kakao.com/o/gMAFhdS

Telegram (ENG): https://t.me/hello_iconworld

Telegram (KOR): https://t.me/iconkorea

Facebook: https://www.facebook.com/helloicon/

Reddit: https://www.reddit.com/r/helloicon/

Twitter (Fundación): https://twitter.com/helloiconworld

Twitter (República): https://twitter.com/IconRepublic

Portal de preguntas frecuentes: https://helloiconworld.freshdesk.com/support/home

Contacto: hello@icon.foundation