Saltar al contenido

Qué es una falla bizantina

Qué es una falla bizantina

¿Qué es una falla bizantina?

Es la condición de un sistema informático, específicamente sistemas informáticos distribuidos. Esta condición ocurre cuando uno o más componentes han fallado y no hay información precisa sobre la falla de un componente o si la información del sistema es correcta.

En un fallo bizantino, un componente, como un servidor, puede aparecer inconsistentemente como defectuoso y funcionar en sistemas de detección de fallos. Esto se debe a que el sistema presenta diferentes síntomas ante diferentes observadores. En este punto, es difícil para otros componentes tomar la decisión de declararla infructuosa y excluirla de la red. Para ello, es necesario llegar a un consenso sobre qué componente fracasó en primer lugar.

Qué es una falla bizantina

Ejemplos de fallas bizantinas

En dos artículos de revistas equivalentes se dan varios ejemplos de fracasos bizantinos que se han producido. Estos y otros ejemplos se describen en las páginas web de DASHlink de la NASA. Estas páginas web también describen algunas fenomenologías que pueden causar fracasos bizantinos.

Los errores bizantinos se observaron con poca frecuencia y en puntos irregulares durante las pruebas de esfuerzo de los submarinos de nueva construcción de la clase Virginia, al menos hasta 2005 (año en que los problemas se notificaron públicamente).

En un problema similar, se utilizan enjambres de abejas como ejemplo. Tienen que encontrar un nuevo hogar, y muchos exploradores y otras abejas necesitan llegar a un consenso sobre cuál de las familias candidatas podría volar. Y luego todos tienen que volar allí, con su reina. El foco de las abejas funciona de forma fiable, pero cuando los investigadores ofrecen dos colmenas, igualmente atractivas según todos los criterios de las abejas, se produce una catástrofe, el enjambre se rompe y todas las abejas mueren.

Qué es una falla bizantina

El problema de los generales bizantinos

El problema de los generales bizantinos es un experimento mental para representar, de manera metafórica, el problema que existe entre un conjunto de sistemas informáticos que tienen un objetivo común. Deben encontrar un plan de acción común a partir de una estructura jerárquica, en la que uno de los sistemas que tiene una clasificación superior proporciona un orden desde el que deben operar el resto de los sistemas (corregir su decisión). También es posible que algunos de ellos no sean fiables y proporcionen información falsa intencionadamente.

Consideraciones bizantinas sobre las fallas

  1. El problema de los dos generales bizantinos es el mismo que el de una transmisión monetaria sin un intermediario fiable.1 Bitcoin ofreció la primera solución práctica a este problema.
  2. En el mundo real, las líneas fallan sin querer. Para detectarlos, se pueden utilizar códigos de detección de errores. En un escenario con mensajes orales, una línea de falla puede considerarse un nodo posterior. Si se utilizan mensajes firmados, se detecta irrefutablemente un fallo en una línea.
  3. Para reconocer al remitente de un mensaje utilizando mensajes orales, debe tener líneas fijas y no redes de comunicación. Con mensajes firmados, está bien reconocer al remitente.
  4. La ausencia de mensajes se detecta normalmente mediante el timeout (límites de tiempo).
  5. En el mundo real, nunca se garantiza que un error aleatorio no pueda falsificar una firma. Sin embargo, esto tiene una probabilidad muy baja con métodos de firma apropiados.
  6. La prevención del fraude deliberado se convierte en un problema criptográfico. Por lo tanto, es importante elegir algoritmos de firma segura.
  7. Se debe detectar si un mensaje se envía dos veces, comprobando su firma. Tanto es así que no se puede generar una firma si el proceso ya ha visto esa firma en otro momento.