La tolerancia a fallos bizantinos es la capacidad de un sistema para seguir funcionando incluso cuando algunos participantes mienten o fallan. El nombre proviene de un experimento mental sobre generales bizantinos que intentaban coordinar un ataque mientras los mensajeros podían ser capturados o los traidores podían enviar órdenes falsas. Los generales necesitaban un plan que funcionara si algunos de ellos no eran fiables. Una cadena de bloques tiene el mismo problema. Los nodos pueden desconectarse. Los nodos pueden enviar información contradictoria. La red aún necesita ponerse de acuerdo sobre qué transacciones son válidas.
La tolerancia práctica a fallos bizantinos (PBFT, por sus siglas en inglés) es un algoritmo que resuelve este problema. Funciona bien cuando el número de nodos defectuosos es pequeño en relación con el total. Muchas cadenas de bloques con permisos utilizan variantes de PBFT porque conocen a los participantes. La prueba de trabajo de Bitcoin adopta un enfoque diferente. No identifica nodos confiables. Encarece el engaño al requerir trabajo computacional. Gana la cadena más larga, y producir una cadena más larga que la de la red honesta resulta prohibitivamente caro.
Umbrales de tolerancia a fallos
- Tolerancia a fallos por caída: los nodos pueden fallar, pero no mentir.
- Tolerancia a fallos bizantinos: los nodos pueden fallar y enviar información falsa.
- PBFT: normalmente tolera que hasta un tercio de los nodos presenten fallos.
Ningún sistema tolera un número ilimitado de agentes malintencionados. La cuestión es cuánto mal comportamiento puede absorber el protocolo antes de que se rompa el consenso.
Comments
No comments yet. Be the first to share a thought.
Leave a comment