La Tolerancia a Fallos Bizantinos, o pBFT, es una propiedad de un sistema informático que le permite alcanzar el consenso a pesar de la falla de algunos componentes.
El problema de los generales bizantinos es una abstracción famosa que sirve para mostrar uno de los problemas más importantes de la ciencia de la computación. En particular con los sistemas distribuidos, lo que son precisamente las criptomonedas.
Parce eso se utiliza el ejemplo de un grupo de generales que acampan en los alrededores de una ciudad y solo se comunican entre ellos mediante un mensajero.
Llegado un punto, deben tomar la decisión en conjunto de atacar o dejar de sitiar la ciudad. Sin embargo, algunos de estos generales son traidores y pueden estar trabajando en contra de alcanzar el consenso sobre la decisión.
El problema plantea la idea de si es posible que los generales leales decidan un plan en común, independientemente de si saben o no quienes son los generales traidores.
Un análisis más profundo nos dice que un algoritmo puede resolver este problema, pero solo si más de dos tercios de los generales son leales.
Los sistemas descentralizados, como es el caso de Bitcoin, son básicamente sistemas distribuidos. La red está compuesta de nodos que operan de forma individual para competir en el proceso de agregar transacciones a la cadena de bloques.
Estos nodos se encuentran separados geográficamente y son independientes uno de los otros o de una autoridad central, por lo que es imposible saber que nodos están entregando información verdadera o no acerca de los bloques y las transacciones. Tanto sí lo hacen con malas intenciones o por accidente.
Al final, la Tolerancia a Fallos Bizantinos es una propiedad de estos sistemas para superar este problema y conseguir de forma consistente el consenso, aun cuando algunos nodos no están de acuerdo con el resto.
Este problema ha podido ser resuelto gracias a la Practical Byzantine Fault Tolerance (Tolerancia A Fallos Bizantinos Práctica), que solo funciona si más de 2/3 de los nodos siguen siendo leales al sistema.
Y es algo que las criptomonedas han solucionado en distintos grados gracias a algoritmos de consenso como Prueba de Trabajo, como es el caso de Bitcoin, o Prueba de Participación, como lo será en el futuro para Ethereum.
Contenido
¿Cómo se relaciona la BFT con Blockchain?
La tecnología blockchain permite que las criptomonedas funcionen, validando, procesando y registrando sus transacciones.
Para que una transacción sea considerada como válida por la red, es necesario que un grupo de nodos este de acuerdo acerca su validez.
Cada cadena de bloques utiliza un algoritmo de consenso, que son el conjunto de reglas que los nodos deben seguir para formar parte de la red y alcanzar el consenso en cuanto a que transacciones se consideran válidas.
Estos mecanismos son los que les permiten a las cadenas de bloques implementar la tolerancia a fallos bizantinos. Ya que las criptomonedas al fin y al cabo son sistemas distribuidos, afrontando el problema de los generales que antes mencionamos.
Una blockchain debe poder seguir funcionando aun cuando haya nodos que no funcione de manera correcta o que provean al resto de la red con información falsa.
Bitcoin fue la primera en resolver el problema con la Prueba de Trabajo (PoW). Un algoritmo que requiere de los mineros para resolver un problema criptográfico usando equipos de computación especializados.
El primero que lo resuelva correctamente ganara el derecho de añadir un nuevo bloque con transacciones y así conseguir recompensas (¿cómo funciona la minería de Bitcoin?). Caso contrario, el nodo habrá desperdiciado su tiempo y recursos.
Otra opción popular en el mundo crypto es la Prueba de Participación (PoS), que involucra a validadores que stakean sus criptomonedas, lo que significa que bloquean estas en su monedero para tener el derecho de verificar transacciones.
Lugo el protocolo elige a un nodo y este puede agregar el bloque a la cadena, lo cual genera recompensas para el afortunado en forma de comisiones y nuevas monedas creadas. Pero también hay una penalización en caso de que hagas algo malo para la red, perdiendo parte de las criptomonedas stakeadas.
De esta forma, ambos mecanismos de consenso tienen tolerancia a las fallas bizantinas hasta cierto punto, puesto que pueden continuar funcionando aun cuando haya problemas con algunos nodos.
¿Qué es la Practical Byzantine Fault Tolerance?
La pBFT, o Tolerancia A Fallos Bizantinos Práctica, es un sistema que tiene dos tipos de nodos: los primarios y los secundarios.
Estas dos clases de nodos trabajan en conjunto para alcanzar el consenso, haciendo que el sistema se transforme en una de las soluciones para el problema de los generales bizantinos.
En términos generales, la pBFT funcionad de la siguiente manera:
- El cliente hace una petición al nodo primario.
- El nodo primario envía la petición al nodo secundario.
- El nodo procesa la petición, provee del servicio y le responde al cliente.
- El cliente espera hasta recibir la misma respuesta de m+1 nodos, donde m es el máximo número de nodos fallados o maliciosos que el sistema permite.
En la Tolerancia A Fallos Bizantinos Práctica, el máximo número de nodos que pueden fallar o ser maliciosos no puede superar o ser igual a 1/3 de los nodos totales.
Ventajas y Desventajas de pBFT
Claro que ninguno sistema es perfecto, y mientras que podemos encontrar algunas ventajas de un sistema que resuelva el problema de los generales bizantinos, como es el caso de pBFT, también hay algunos aspectos negativos.
Pros
Hay algunos importantes beneficios de pBFT:
- No requiere de un gran cantidad de poder computacional o uso de energía debido a que no hay mineros resolviendo un complejo problema para cada bloque de transacciones. Esto puede ser más amistoso para el medio ambiente que la Prueba de Trabajo.
- Las transacciones no requieren de múltiples confirmaciones. Si los nodos están de acuerdo acerca de los bloques de transacciones, entonces son confirmadas inmediatamente.
- Debido a que todos los nodos trabajan en conjunto, pueden compartir las recompensas. Así no hay una asimetría en las recompensas como puede suceder en sistemas PoW y PoS.
Contras
Pero como dijimos, ninguna solución es perfecta, y la pBFT tiene algunos problemas:
- Es vulnerable a los ataques Sybil (que obtiene su nombre de una mujer con un desorden de múltiples personalidades), que sucede cuando un atacante consigue el control de una gran porción de los nodos.
- Requiere la comunicación entre los nodos en cada paso de los procesos. Esto toma tiempo, lo cual presenta problemas de escalabilidad.
Agrega un Comentario