falla bizantina


Una falla bizantina (también problema general bizantino , consistencia interactiva , congruencia de fuente , avalancha de errores , problema de acuerdo bizantino y falla bizantina [1] ) es una condición de un sistema informático, particularmente los sistemas informáticos distribuidos , donde los componentes pueden fallar y hay defectos. 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 fallado y funcionando de manera inconsistente para los sistemas de detección de fallas, presentando diferentes síntomas para diferentes observadores. Es difícil para los otros componentes declarar que falló y excluirlo de la red, porque primero deben llegar a un consenso sobre qué componente falló 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 acuerden 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 traicioneros que no solo pueden votar por una estrategia subóptima, sino que pueden hacerlo de manera selectiva. Por ejemplo, si votan nueve generales, 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 los 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 fallar en entregar los votos o pueden 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 dar un valor "nulo" . Además, si el acuerdo es que los votos nulos sean 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 lugar de eso se retiran, la batalla se pierde (derecha).