La tolerancia a fallas bizantinas (BFT) es una de las propiedades fundamentales de las reglas o protocolos confiables de blockchain.
Blockchain permite que las computadoras y las personas se pongan de acuerdo sobre las cosas sin necesidad de confiar el uno en el otro. Esta red de personas y computadoras simplemente necesita confiar en que las reglas que siguen son confiables. La tolerancia a fallas bizantinas (BFT) es una de las propiedades fundamentales para crear reglas o protocolos confiables de blockchain.
Pero antes de que podamos entender qué es la tolerancia bizantina a las fallas, debemos dar un paso atrás y averiguar qué significan los pares, los nodos y el consenso y qué tácticas militares tienen que ver con todo esto.
¿Qué son pares y nodos?
La mayoría de las cadenas de bloques o criptomonedas operan como redes donde todas las computadoras en la red tienen el mismo acceso y derechos, y se comunican directamente entre sí. Cada computadora en esta red se conoce como un par o un nodo. En un sistema verdaderamente descentralizado, ningún par o nodo tiene más autoridad o poder que el siguiente. Esto significa que no hay gerentes, coordinadores o directores para hacer cumplir las reglas, determinar qué es verdad o castigar la mala conducta. En cambio, el sistema se basa en el hecho de que todos los nodos deben seguir las mismas reglas o protocolo para llegar a un acuerdo.
¿Qué es el consenso?
Consenso simplemente significa un acuerdo general. En un sistema descentralizado donde no hay autoridades, lograr el consenso es una de las cosas más importantes y más difíciles de hacer. Para que el sistema o la red funcione correctamente, la mayoría de los nodos deben ponerse de acuerdo sobre lo que es cierto, llegando a un consenso a intervalos regulares. El problema es que algunos nodos inevitablemente fallarán, se comportarán mal o simplemente no estarán de acuerdo con el consenso de los otros nodos, por lo que el sistema debe diseñarse de tal manera que aborde esta inevitabilidad.
¿Qué es la tolerancia a fallos bizantina?
Un sistema tiene tolerancia a fallas bizantinas (BFT) cuando puede seguir funcionando correctamente siempre que dos tercios de la red estén de acuerdo o lleguen a un consenso. BFT es una propiedad o característica de un sistema que puede resistir hasta un tercio de los nodos que fallan o actúan maliciosamente.
Todas las cadenas de bloques descentralizadas se ejecutan en protocolos de consenso o reglas que todos los nodos de la cadena de bloques deben seguir para participar. Los protocolos de consenso como Prueba de trabajo y Prueba de participación son tolerantes a fallas bizantinas y, por lo tanto, pueden resistir hasta un tercio de los nodos en desacuerdo.
¿Quién inventó la tolerancia bizantina a las fallas?
El problema del general bizantino fue inventado en 1982 por Leslie Lamport, Robert Shostak y Marshall Pease y es la inspiración para el concepto de tolerancia a fallas bizantinas.
Problema del general bizantino
El concepto de BFT proviene del Problema del General Bizantino, que es un experimento de pensamiento lógico donde hay varios generales que necesitan atacar una ciudad.
- Los generales están todos en diferentes ubicaciones y solo pueden comunicarse por mensajero, un mensaje a la vez.
- Todos deben coordinar la misma acción para poder atacar o retirarse con éxito.
- Si todos atacan, estarán bien. Si todos se retiran, estarán bien.
- El problema ocurre cuando algunos generales atacan mientras otros se retiran, en cuyo caso será un mal resultado para todos.
- El giro es que algunos generales son desleales y tratarán de confundir a los otros generales.
- El problema a resolver es: ¿cómo se pondrán de acuerdo todos los generales en la misma acción incluso ante la traición y el engaño?
¿Qué tiene de especial?
Un protocolo de consenso que sea tolerante a fallas bizantinas aún puede coordinarse y llegar a un consenso a pesar de cierto grado de desacuerdo entre los nodos. Esto es vital para las cadenas de bloques descentralizadas como Ethereum o Bitcoin. Una de las innovaciones esenciales de Satoshi Nakamoto cuando creó Bitcoin fue resolver el problema del general bizantino aplicando prueba de trabajo a la red Bitcoin. Al tener la propiedad de BFT, la red Bitcoin está protegida de hasta un tercio de los nodos que son maliciosos.
¿Qué puedes hacer con BFT?
Los protocolos de consenso más comunes utilizados en las redes blockchain, como prueba de trabajo, prueba de participación y prueba de autoridad, tienen alguna propiedad de BFT. Al aplicar BFT, se pueden diseñar sistemas que no estén controlados por una sola autoridad y no dependan de la confianza en determinadas partes. Es fundamental para construir una red descentralizada.
El futuro
El principio de BFT seguirá desempeñando un papel importante en las redes blockchain. A medida que más personas y organizaciones exploren sistemas distribuidos y descentralizados, se descubrirán e implementarán formas más innovadoras de diseñar sistemas BFT.