Las blockchains permiten que los ordenadores y las personas confíen entre ellas sin necesidad de intermediarios. Estas redes de personas y ordenadores simplemente necesita confiar en que las reglas que todos siguen son fiables. Y la BFT o tolerancia a fallos bizantina (Byzantine Fault Tolerance) es una de las propiedades fundamentales para crear reglas o protocolos de blockchain fiables.
Pero antes de entender qué es la tolerancia a fallos bizantina, tenemos que dar un paso atrás y averiguar qué significan los pares, los nodos y el consenso y qué tienen que ver las tácticas militares con todo esto.
¿Qué son los pares y los nodos?
La mayoría de las cadenas de bloques funcionan como redes en las que todos los ordenadores de la red tienen el mismo acceso y derechos, y se comunican directamente entre sí. Cada uno de los ordenadores de esta red se conoce como peer o 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 que hagan cumplir las reglas, determinen lo que es cierto o castiguen el mal comportamiento. En su lugar, 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 significa simplemente un acuerdo general. En un sistema descentralizado en el que 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 estar de acuerdo con 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 demás nodos, por lo que el sistema debe diseñarse de tal manera que haga frente a esta inevitabilidad.
¿Qué es la tolerancia a fallos bizantina?
Un sistema tiene Tolerancia a Fallos Bizantinos (BFT) cuando puede seguir funcionando correctamente mientras dos tercios de la red estén de acuerdo o lleguen a un consenso. La 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 funcionan con protocolos de consenso o reglas que todos los nodos de la cadena de bloques deben seguir para participar. Los protocolos de consenso como Proof-of-Work, Proof-of-Stake y Proof-of-Authority son BFT y por lo tanto son capaces de resistir hasta un tercio de los nodos en desacuerdo.
¿Quién inventó la tolerancia a fallos bizantina?
El Problema 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 Fallos Bizantina.
El concepto de BFT viene del Problema del General Bizantino, que es un experimento de pensamiento lógico en el que hay varios generales que necesitan atacar una ciudad.
- Los generales se encuentran en lugares diferentes y solo pueden comunicarse por medio de un mensajero, un mensaje a la vez.
- Todos deben coordinar la misma acción para atacar o retirarse con éxito.
- Si todos atacan, estarán bien. Si todos se retiran, todo irá bien.
- El problema se produce cuando algunos generales atacan mientras otros se retiran, en cuyo caso el resultado será malo 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?
Un protocolo de consenso que es BFT puede coordinarse y llegar a un consenso a pesar de que haya cierto 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 General Bizantino aplicando la prueba de trabajo a la red Bitcoin.
Al tener la propiedad de BFT, la red Bitcoin está protegida de que hasta un tercio de los nodos sean maliciosos.Los sistemas que requieren BFT también se utilizan en industrias más allá del blockchain, como la aviación, el espacio y la energía nuclear.
Todas estas industrias dan gran prioridad a la seguridad y la protección, y trabajan con un gran número de sensores u ordenadores interconectados, que actúan como nodos. Estos nodos necesitan comunicarse entre sí de forma fiable y la BFT entra en juego cuando una parte de estos nodos se estropea pero el sistema sigue funcionando como está previsto.