Tolerancia práctica a faltas bizantinas (PBFT)
¿Qué es la tolerancia práctica a faltas bizantinas (PBFT)?
La tolerancia práctica a faltas bizantinas (PBFT) es un algoritmo de consenso diseñado para funcionar eficientemente en un sistema asíncrono (sin suposiciones sobre tiempos) y optimizado para tener baja latencia.
Introducido por primera vez por Miguel Castro y Barbara Liskov en un estudio de 1999, el algoritmo de PBFT es una forma de replicación de máquina de estado, lo que significa que replica un estado del sistema y lo distribuye a varios servidores. En última instancia, el mecanismo refuerza el sistema, porque fallas como las faltas bizantinas pueden ocurrir de forma aislada, en lugar de provocar un fallo en toda la red.
¿Cómo funciona el algoritmo de PBFT?
Básicamente, en un modelo de PBFT, los nodos se ordenan en una secuencia en la que un nodo es considerado el nodo primario (líder) y los demás, réplicas o copias de seguridad. Sin embargo, todos los nodos de la red siguen manteniendo la comunicación. El objetivo es que todos los nodos honestos lleguen a un acuerdo con respecto al estado del sistema a través de una regla de mayoría.
Para que el modelo de PBFT funcione, el número máximo de nodos malintencionados no debe ser igual ni superior a un tercio de todos los nodos del sistema. Cada ronda de consenso de PBFT (comúnmente denominada ‘vista’) se resume en cuatro simples fases:
- Un cliente envía una solicitud de operación de servicio al nodo primario (líder).
- El nodo primario distribuye esta solicitud a todas las réplicas al mismo tiempo.
- Las réplicas ejecutan la solicitud y envían una respuesta al cliente.
- El cliente espera hasta obtener resultados similares de diferentes réplicas.
El nodo primario cambia en cada vista, lo cual se puede sustituir por un protocolo de ‘cambio de vista’ si no se transmite la solicitud después de un período determinado. Además, si se detecta que el nodo primario no funciona correctamente, puede ser eliminado con el acuerdo de una amplia mayoría de nodos honestos.
Ejemplos de plataformas que utilizan variantes de PBFT son Zilliqa, Hyperledger y Tendermint.
Key Takeaway
La tolerancia práctica a faltas bizantinas (PBFT) es un algoritmo que previene las faltas bizantinas en entornos asíncronos y que se ha optimizado para lograr una baja latencia.
