Falla bizantina


Una falla bizantina (también problema general bizantino, consistencia interactiva , congruencia de fuente , avalancha de errores , problema de concordancia bizantina y falla bizantina [1] ) es una condición de un sistema informático, en particular los sistemas informáticos distribuidos , donde los componentes pueden fallar y hay imperfecciones información sobre si un componente ha fallado. El término toma su nombre de una alegoría , el "Problema de los generales bizantinos", [2] desarrollado para describir una situación en la que, para evitar una falla catastrófica del sistema, los actores del sistema deben acordar una estrategia concertada, pero algunos de estos actores no son confiables.

En una falla bizantina, un componente como un servidor puede aparecer de manera inconsistente como fallado y funcionando a los sistemas de detección de fallas, presentando diferentes síntomas a diferentes observadores. Es difícil para los otros componentes declarar que falló y cerrarlo de la red, porque primero necesitan llegar a un consenso sobre qué componente ha fallado en primer lugar.

La tolerancia a fallas bizantina ( BFT ) es la confiabilidad de un sistema informático tolerante a fallas en tales condiciones. Tiene aplicaciones especialmente en criptomonedas .

En su forma más simple, varios generales están atacando una fortaleza y deben decidir como grupo solo si atacar o retirarse. Algunos generales pueden preferir atacar, mientras que otros prefieren retirarse. Lo importante es que todos los generales estén de acuerdo en una decisión común, ya que un ataque a medias de unos pocos generales se convertiría en una derrota y sería peor que un ataque coordinado o una retirada coordinada.

El problema se complica por la presencia de generales traidores que no solo pueden votar por una estrategia subóptima, sino que pueden hacerlo de forma selectiva. Por ejemplo, si nueve generales están votando, cuatro de los cuales apoyan el ataque mientras que otros cuatro están a favor de la retirada, el noveno general puede enviar un voto de retirada a esos generales a favor de la retirada y un voto de ataque al resto. Aquellos que recibieron un voto de retirada del noveno general se retirarán, mientras que el resto atacará (lo que puede no ir bien para los atacantes). El problema se complica aún más porque los generales están separados físicamente y tienen que enviar sus votos a través de mensajeros que pueden no entregar los votos o falsificar votos.

La tolerancia bizantina a las fallas se puede lograr si los generales leales (no defectuosos) tienen un acuerdo mayoritario sobre su estrategia. Puede haber un valor de voto predeterminado dado a los mensajes que faltan. Por ejemplo, a los mensajes que faltan se les puede asignar un valor "nulo" . Además, si el acuerdo es que los votos nulos son mayoría, se puede utilizar una estrategia predeterminada preasignada (por ejemplo, retirada). [3]


Si todos los generales atacan en coordinación, se gana la batalla (izquierda). Si dos generales declaran falsamente que tienen la intención de atacar, pero en cambio se retiran, la batalla está perdida (derecha).