falla bizantina


Una falla bizantina (también problema de generales bizantinos , consistencia interactiva , congruencia de fuentes , avalancha de errores , problema de acuerdo bizantino y falla bizantina [1] ) es una condición de un sistema informático, particularmente de los sistemas informáticos distribuidos , donde los componentes pueden fallar y hay una falla imperfecta. 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 fallando y funcionando ante 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 excluirlo de la red, porque primero deben llegar a un consenso sobre qué componente falló en primer lugar. La tolerancia a fallos bizantinos ( BFT ) es la resiliencia de un sistema informático tolerante a fallos ante tales condiciones.

Como analogía de la forma más simple de la falla, consideremos una serie de generales que están atacando una fortaleza. Los generales deben decidir como grupo si atacar o retirarse; algunos 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 poco entusiasta por parte 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 pueden no sólo 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 los generales que están 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 a los atacantes). El problema se complica aún más porque los generales están físicamente separados 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 culpables) tienen un acuerdo mayoritario sobre su estrategia. Puede haber un valor de voto predeterminado asignado a los mensajes faltantes. Por ejemplo, a los mensajes que faltan se les puede dar 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]

La representación típica de esta historia en los sistemas informáticos es que las computadoras son los generales y los enlaces de sus sistemas de comunicación digital son los mensajeros. Aunque el problema se formula en analogía como un problema de seguridad y toma de decisiones, en electrónica no puede resolverse únicamente con firmas digitales criptográficas , porque fallas como voltajes incorrectos pueden propagarse a través del proceso de cifrado. Por lo tanto, un componente puede parecer funcional para un componente y defectuoso para otro, lo que impide formar un consenso sobre si el componente está defectuoso o no. [4]