Explicación de la Tolerancia a Fallos Bizantinos
El Problema de los Generales Bizantinos
El problema de los Generales Bizantinos explica las dificultades que tienen las partes descentralizadas para alcanzar un consenso cuando no existe una autoridad central que haga cumplir las regulaciones y supervise a los participantes. Debido a fallos técnicos o desinformación, los componentes pueden no lograr un acuerdo. Este es el problema: " Imaginamos que varias divisiones del ejército bizantino están acampadas fuera de una ciudad enemiga, cada división comandada por su propio general. Los generales solo pueden comunicarse entre sí mediante mensajeros. Después de observar al enemigo, deben decidir un plan de acción común. Sin embargo, algunos generales pueden ser traidores, intentando evitar que los generales leales lleguen a un acuerdo. Los generales deben tener un algoritmo para garantizar que (A) Todos los generales leales decidan el mismo plan de acción y (B) Un pequeño número de traidores no pueda hacer que los generales leales adopten un mal plan " ( El Problema de los Generales Bizantinos, 1982 ). Marshall Pease, Robert Shostak y Leslie Lamport propusieron el Problema de los Generales Bizantinos en 1982, "expresado abstractamente en términos de un conjunto de generales del ejército bizantino acampando con sus soldados alrededor de una ciudad enemiga."
:quality(80)/2022-10-20/661795FBE7E7C417B2168C1195FCD136.jpg)
Formación del Problema Bizantino
En el escenario siguiente, uno de los comandantes o el Teniente es un traidor, impidiendo que el grupo alcance un consenso. Considere al traidor como una parte maliciosa que intenta facilitar transacciones fraudulentas en el contexto de un libro contable financiero.
:quality(80)/2022-10-20/7A1C4F862FD9EEF51CF839BC0866CB0E.jpg)
A medida que aumenta el número de partes en el sistema, también aumentan las rutas de comunicación y el potencial de desconfianza y desinformación. Considere la dificultad de llegar a un acuerdo con miles o millones de tenientes o generales involucrados. Esta es la dificultad que enfrentan los nodos que gobiernan un sistema descentralizado, lo que dio lugar al desarrollo de modelos de Tolerancia a Fallos Bizantinos para resolver este problema.
Explicación de la Tolerancia a Fallos Bizantinos
La Tolerancia a Fallos Bizantinos (BFT) es una característica de los sistemas descentralizados y sin permisos que pueden detectar y rechazar exitosamente información falsa o inexacta. En un sistema de Tolerancia a Fallos Bizantinos, cualquier parte puede unirse a la red de manera peer-to-peer sin una autoridad central que gobierne y controle la red de participantes. Los sistemas de Tolerancia a Fallos Bizantinos son descentralizados y sin permisos, cualquiera puede ser parte de la red. Sin la Tolerancia a Fallos Bizantinos, cualquier participante de la red podría enviar información falsa, poniendo en peligro su fiabilidad. En el contexto de la red blockchain de Bitcoin, cada participante se denomina nodo, un nodo puede unirse rápidamente a la red Bitcoin y comenzar a transmitir bloques y transacciones. El sistema de tolerancia a fallos bizantinos aplicable en blockchains es la solución al Problema de los Generales Bizantinos.
¿Cómo se relaciona la Tolerancia a Fallos Bizantinos con la Blockchain?
La tecnología blockchain se utiliza para validar, procesar y registrar transacciones en criptomonedas. Un grupo de nodos debe estar de acuerdo en que una transacción es válida antes de que pueda completarse. Cada red blockchain tiene un algoritmo de consenso, que es el conjunto de reglas que sus nodos utilizan para acordar transacciones. Una red blockchain está compuesta por nodos que están conectados peer-to-peer. Un nodo blockchain es cualquier participante de la red que se conecta a la red utilizando cualquier dispositivo (computadora). Los nodos blockchain se comunican entre sí de manera descentralizada a través de un consenso. En una blockchain completamente descentralizada, ningún nodo tiene más poder que otros nodos. Los nodos en la red blockchain utilizan un consenso para llegar a un acuerdo. En el contexto de los sistemas de Tolerancia a Fallos Bizantinos, el consenso es el "acuerdo de los Generales". El consenso es la tarea más vital pero más desafiante en un sistema descentralizado sin una autoridad central que gobierne la red. Para que una transacción en una blockchain descentralizada sea exitosa, la mayoría de los nodos deben estar de acuerdo sobre la validez de la transacción, asegurando la operación efectiva y la transparencia de la red blockchain.
Los nodos bizantinos son nodos maliciosos en una blockchain que intentan interrumpir el sistema. Estos nodos son comúnmente referidos como nodos traidores porque pueden intencionalmente engañar a otros nodos en la red para robar del sistema (doble gasto) o simplemente interrumpir el sistema. Una red blockchain que funcione correctamente aseguraría que la Tolerancia a Fallos Bizantinos de la blockchain la ayude a superar las fallas.
Tolerancia a Fallos Bizantinos Práctica y Asíncrona
La Tolerancia a Fallos Bizantinos Práctica (pBFT) es un modelo que proporciona replicación práctica de máquina de estados bizantina para superar las limitaciones de los sistemas de tolerancia a fallos bizantinos. Al asumir que hay fallos de nodos independientes y mensajes manipulados perpetuados por nodos independientes particulares, pBFT resuelve fallos bizantinos. El modelo pBFT fue desarrollado únicamente para resolver los problemas y deficiencias de las soluciones de tolerancia bizantina que ya estaban disponibles. Las blockchains y la computación distribuida son la principal aplicación de los modelos de Tolerancia a Fallos Bizantinos Práctica (pBFT). Los modelos de Tolerancia a Fallos Bizantinos Práctica reducen la influencia de los nodos maliciosos, protegiendo un sistema descentralizado de fallas y tiempos de inactividad. El algoritmo es de alto rendimiento y está optimizado para trabajar en sistemas asíncronos con solo un ligero aumento en la latencia.
Una característica del modelo de Tolerancia a Fallos Bizantinos se llama tolerancia a fallos bizantinos asíncrona (aBFT). Los sistemas de Tolerancia a Fallos Bizantinos Asíncrona (aBFT) permiten a los nodos de red confiables garantizar que acordarán el tiempo y la secuencia de un conjunto de transacciones de manera justa y segura. La propiedad 'asíncrona' de la tolerancia a fallos bizantinos supera los desafíos de tiempo de los sistemas de tolerancia a fallos bizantinos. En los sistemas tradicionales de tolerancia a fallos bizantinos, al alcanzar un consenso, los nodos asumen que existe un umbral máximo de latencia de mensajes. Esta suposición de tiempo en los sistemas de tolerancia a fallos bizantinos que causa que algunos mensajes se pierdan o se retrasen indefinidamente es eliminada por la red de tolerancia a fallos bizantinos asíncrona (aBFT).