La falla bizantina, o el problema de los generales bizantinos, ha sido un tema ampliamente debatido en varios campos como la informática o los sistemas distribuidos. En criptografía, específicamente en la tecnología blockchain, la tolerancia a fallas bizantinas (BFT) juega un papel extremadamente importante. ¡Averigüemos más sobre BFT en este artículo!
¿Qué es la tolerancia a fallas bizantinas (BFT)?
La tolerancia a fallas bizantinas es la capacidad de cómo un sistema o red distribuida puede operar y llegar a un consenso (acuerdo neutral), considerando que algunos participantes pueden no actuar o hacerlo de manera maliciosa. Su nombre deriva de una paradoja llamada Problema de los generales bizantinos, mientras que la Tolerancia a fallas bizantinas es la solución al problema.
Para que la red funcione correctamente, aunque algunos de sus participantes encuentren problemas (intencionalmente o no), tiene que haber unas reglas y condiciones comunes para que los participantes funcionales puedan garantizar el consenso de la red.
¿Cuál es el problema de los generales bizantinos?
El problema de los generales bizantinos se presentó por primera vez en 1982 en un artículo de un grupo de personas de Microsoft Research. El problema se describió claramente de la siguiente manera:
“Imagina que varias divisiones del ejército bizantino están acampadas fuera de una ciudad enemiga, cada división comandada por su propio general. Los generales pueden comunicarse entre sí solo por mensajero. Después de observar al enemigo, deben decidir un plan de acción común.
Sin embargo, algunos de los generales pueden ser traidores, tratando de evitar que los generales leales lleguen a un acuerdo. Los generales deben decidir cuándo atacar la ciudad, pero necesitan una gran mayoría de su ejército para atacar al mismo tiempo.
Los generales deben tener un algoritmo para garantizar que (a) todos los generales leales decidan sobre el mismo plan de acción y (b) un pequeño número de traidores no pueda hacer que los generales leales adopten un mal plan. Todos los generales leales harán lo que el algoritmo diga que deben hacer, pero los traidores pueden hacer lo que quieran. El algoritmo debe garantizar la condición (a) independientemente de lo que hagan los traidores. Los generales leales no solo deben llegar a un acuerdo, sino que deben acordar un plan razonable”.
El problema de los generales bizantinos, aunque similar al problema de los dos generales (la paradoja de los dos generales), es una versión más general. De una manera más complicada, el Problema de los generales bizantinos puede imponer más variaciones. Por ejemplo, los mensajeros pueden no entregar el mensaje en el camino o incluso cambiar deliberadamente el contenido original.
¿Qué es BFT en Crypto?
En criptografía, específicamente en la tecnología blockchain , la Tolerancia a fallas bizantinas juega un papel extremadamente importante. Cuando aplicamos el problema de los generales bizantinos a la criptografía, los generales son los nodos . Todos los nodos dentro de una red de cadena de bloques tienen que comunicarse entre sí y encontrar una manera de llegar a un consenso, lo que conduce a métodos que llamamos algoritmos de consenso .
Existen numerosas formas de lograr la tolerancia a fallas bizantinas. Por lo tanto, también existen varios algoritmos de consenso en el espacio de la cadena de bloques, cada uno con sus propias soluciones al problema para una eficiencia óptima.
Bitcoin , con su algoritmo de consenso de Prueba de trabajo, se encuentra entre los primeros en alcanzar la Tolerancia a fallas bizantinas en criptografía. Desde su introducción en 2008, Proof of Work ha demostrado ser una de las soluciones más seguras y confiables para este problema, junto con el éxito de Bitcoin.
Cómo la prueba de trabajo alcanza la tolerancia a fallas bizantinas
¿Cómo funciona la tolerancia práctica a fallas bizantinas?
La tolerancia práctica a fallas bizantinas (pBFT) es un algoritmo de consenso introducido a finales de los 90 por Barbara Liskov y Miguel Castro con el objetivo de resolver los problemas existentes de las soluciones de tolerancia a fallas bizantinas ya disponibles.
En general, pBFT funciona asignando inicialmente 1 nodo como nodo principal (líder) y otros como nodo secundario (respaldo). Cualquier nodo puede convertirse en el principal si el actual no funciona.
Además, un sistema pBFT puede funcionar cuando y solo cuando la cantidad máxima de nodos maliciosos no debe ser mayor o igual a un tercio de todos los nodos dentro del sistema.
Hay 4 fases de rondas de consenso pBFT:
- Solicitud: el cliente envía una solicitud al nodo principal (líder).
- Preparación previa: el nodo principal (líder) transmite la solicitud a todos los nodos secundarios (respaldo).
- Preparar: Los nodos (primario y secundario) realizan el servicio solicitado.
- Commit: La respuesta se envía al cliente si es válida.
Cómo funciona la tolerancia a fallas bizantinas (pBFT)
Centralización y descentralización
Como puede ver, para alcanzar la tolerancia a fallas bizantinas, cada nodo (o participante) dentro de la red debe comunicarse y cooperar con los demás. No existe una fuente de información confiable en la que cualquiera pueda confiar. Por lo tanto, solo las redes descentralizadas deben considerar la tolerancia a fallas bizantinas.
En cambio, para las redes centralizadas, siempre hay uno o más terceros que actúan como intermediarios entre cada participante, facilitando mucho la comunicación y el consenso. Cada participante ya no tiene que confiar en el otro; simplemente pueden entregar toda la información al intermediario.
Tolerancia a fallas bizantinas en centralización y descentralización
Preguntas frecuentes sobre BFT en Crypto
¿La prueba de participación es una tolerancia a fallas bizantina?
Como se mencionó anteriormente, la tecnología blockchain requiere algoritmos de consenso para alcanzar la tolerancia a fallas bizantinas. Siendo uno de ellos, la Prueba de participación puede cumplir con los requisitos de Tolerancia a fallas bizantinas al igual que la Prueba de trabajo.
Encuentre más: ¿Qué es PoS? ¿Por qué es la tolerancia a fallas bizantinas?
¿Es Tendermint BFT?
Tendermint, presentado por primera vez en 2014, es la primera adaptación del consenso de prueba de participación derivado del algoritmo práctico bizantino tolerante a fallas (PBFT). Por lo tanto, se considera un algoritmo de consenso BFT Proof-of-Stake.
¿Es Ethereum tolerancia a fallas bizantinas?
Ethereum está utilizando actualmente el algoritmo de consenso de Prueba de trabajo, similar al que utiliza Bitcoin. En el futuro, Ethereum cambiará su red a Prueba de participación.
De cualquier manera, Ethereum aún puede cumplir con la tolerancia a fallas bizantinas.
Conclusión
La tolerancia a fallas bizantinas es la capacidad de cómo un sistema o red distribuida puede operar y llegar a un consenso (acuerdo neutral), considerando que algunos participantes pueden no actuar o hacerlo de manera maliciosa.
Su nombre deriva de una paradoja llamada Problema de los generales bizantinos, mientras que la Tolerancia a fallas bizantinas es la solución al problema.
En resumen, el problema de los generales bizantinos se refiere a un problema en el que varios generales quieren atacar una fortaleza y deben decidir en grupo si atacar o retirarse. Tenemos que averiguar cómo estos generales pueden llegar a un consenso independientemente de actos maliciosos o intentos fallidos de comunicación.
Cuando aplicamos el problema de los generales bizantinos a la criptografía, los generales son los nodos. Todos los nodos dentro de una red de cadena de bloques deben comunicarse entre sí y encontrar una manera de llegar a un consenso, lo que conduce a métodos que llamamos algoritmos de consenso.
Existen numerosas formas de lograr la tolerancia a fallas bizantinas. Por lo tanto, también existen varios algoritmos de consenso en el espacio de la cadena de bloques, cada uno con sus propias soluciones al problema para una eficiencia óptima.