bizanc.io

·

·

,

Imagina un grupo de generales acampados a las afueras de una ciudad enemiga, cada uno en un extremo distinto. Necesitan coordinar un ataque, pero solo pueden comunicarse enviando mensajes a través de mensajeros. Para conquistar la ciudad, todos deben acordar un plan común; un ataque descoordinado llevaría al desastre. Tristemente, el ser humano es egoísta por naturaleza. ¿Qué hacer si entre los generales hay un traidor desconocido? ¿Cómo coordinarse entre los que siguen fieles a la causa?

Este dilema se conoce como el Problema de los Generales Bizantinos. No es un cuento de niños; es una metáfora clave en la informática. En los sistemas informáticos, los “generales” son las computadoras o nodos de una red distribuida, y los “mensajeros” son las conexiones de comunicación.

Cuando uno implementa un sistema distribuido con varias computadoras, debe asumir que alguna fallará de vez en cuando, aunque todo funcione a priori perfectamente. El reto: garantizar que estas computadoras llegarán a un consenso sobre el estado del sistema, incluso si algunas de ellas fallan o actúan de manera maliciosa. A este tipo de fallo, donde un componente muestra síntomas diferentes a distintos observadores, se le llama falla bizantina.

Un ejemplo sencillo, aunque no de la historia bizantina, es el de un enjambre de abejas buscando un nuevo hogar. Necesitan ponerse de acuerdo en la mejor ubicación para mudarse juntas. Si algunas abejas “exploradoras” dan información contradictoria sobre dos lugares igualmente atractivos, el enjambre puede dividirse, lo que sería catastrófico.

Resolver este problema requiere mecanismos que permitan a los nodos leales (que funcionan correctamente) alcanzar un acuerdo a pesar de la presencia de fallos. La capacidad de un sistema para resistir estos errores se llama Tolerancia a Fallas Bizantinas (BFT). Es crucial en sistemas donde la fiabilidad es prioritaria, como los sistemas de control de vuelo o las finanzas.

El Problema de los Generales Bizantinos es un desafío fundamental para la consistencia de sistemas donde los componentes pueden fallar de formas complejas (la mayoría de ellos), y enfrentarlo es vital para la seguridad y fiabilidad de muchas tecnologías contemporáneas.


Discover more from Catedra T-Systems X URV

Subscribe to get the latest posts sent to your email.


Leave a Reply

Your email address will not be published. Required fields are marked *