Puntos Esenciales
- Una falla bizantina ocurre cuando un componente de un sistema distribuido falla enviando información contradictoria a distintas partes, sin que nadie pueda determinar con certeza si ha fallado.
- El problema toma nombre del dilema de los Generales Bizantinos: coordinar un ataque cuando algunos mensajeros —o generales— podrían ser traidores que alteran los mensajes.
- Blockchain fue diseñada específicamente para operar en entornos con fallas bizantinas: su mecanismo de consenso garantiza que la red llegue a un acuerdo aunque existan nodos maliciosos o defectuosos.
- La tolerancia a fallas bizantinas no es solo teoría; una fisura en un diodo del transbordador espacial Discovery casi provoca un desastre real en 2008.
Una falla bizantina, es una condición de un sistema computacional, concretamente de sistemas de computación distribuidos. Esta condición ocurre cuando uno o más componentes han fallado y no hay información precisa sobre si un componente ha fallado, o si la información del sistema es correcta.
En una falla bizantina, un componente como un servidor puede aparecer inconsistentemente como fallando y funcionando en los sistemas de detección de fallas. Esto ocurre porque el sistema presenta síntomas diferentes frente a diferentes observadores. En este punto, es difícil para los otros componentes tomar la decisión de declararlo fallido y excluirlo de la red. Pues para ello se necesita llegar a un consenso sobre qué componente ha fallado en primer lugar.
La Falla Bizantina como problema de consenso
El término toma su nombre del conocido «Problema de los Generales Bizantinos». Este fue desarrollado para describir una circunstancia donde los actores deben acordar una estrategia o consenso para evitar el fracaso catastrófico del sistema. Y además deben de conseguir esta meta sabiendo que entre ellos, pueden existir actores poco confiables.
El Problema de los Generales Bizantinos fue descrito por Robert Shostak en 1978, en el marco de un proyecto del laboratorio de Ciencias de la Computación de SRI International. Este proyecto se llamó SIFT, y contaba con respaldo de la misma agencia aeroespacial NASA. El caso descrito representa en esencia, un problema de comunicación distribuida entre computadores. En él, computadores enfocados a diferentes propósitos, deben de ser capaces de establecer una comunicación por pares y poder llegar a un consenso. Y deben de poder hacerlo aunque algunos de ellos estén averiados. Para entenderlo mejor, veamos su planteamiento:
En los sistemas de computación modernos, la coordinación entre múltiples componentes es tan crítica como la fiabilidad de cada uno de ellos por separado. Cuando un componente falla de forma predecible —apagándose, respondiendo con error o quedándose en silencio— los demás pueden detectarlo y actuar en consecuencia. El problema verdaderamente difícil aparece cuando el componente que falla no lo hace de manera limpia, sino enviando señales contradictorias a distintos observadores. Este es el escenario que define la falla bizantina, y es precisamente el problema que la tecnología blockchain fue diseñada para resolver.
La falla bizantina no es un concepto nuevo: lleva casi cinco décadas siendo estudiada en ingeniería de sistemas distribuidos. Sin embargo, con la llegada de redes descentralizadas como Bitcoin o Ethereum, su relevancia ha salido del laboratorio académico para convertirse en la base teórica de cómo funcionan los protocolos de consenso que hoy mueven billones de euros en valor. Entender qué es una falla bizantina equivale a entender por qué el diseño de blockchain es tan robusto frente a nodos no fiables.
La Falla Bizantina como problema de consenso
Una falla bizantina es una condición que afecta a sistemas de computación distribuidos. Se produce cuando uno o más componentes del sistema han fallado, pero el fallo no es detectado con certeza porque el componente defectuoso aparece como funcionando ante algunos observadores y como fallando ante otros.
La característica que hace especialmente compleja esta clase de fallo es que el nodo problemático no simplemente deja de responder; en cambio, puede enviar datos arbitrarios, contradictorios o incorrectos de forma aparentemente normal. Desde fuera, el sistema no puede distinguir fácilmente si ese nodo está funcionando mal, si ha sido comprometido por un agente externo o si simplemente está comunicando información legítima pero diferente. Esta ambigüedad convierte la detección en un problema de consenso antes de que sea un problema técnico.
Conviene aclarar que una falla bizantina no implica necesariamente que haya un actor humano malintencionado detrás. Puede surgir de fallos físicos —una degradación eléctrica, un componente dañado, una interferencia electromagnética— que hacen que el hardware transmita datos erróneos sin saberlo. La ausencia de intención no reduce en absoluto la complejidad del problema.
Empieza en Bit2Me y salta al mundo de las criptomonedas con ventaja. Regístrate fácilmente y consigue 15€ GRATIS en tu primera compra con este enlace. ¡No esperes más para unirte a la revolución cripto! Registrarme
El Problema de los Generales Bizantinos (PGB)
- Varios generales del mismo bando y sus ejércitos están situados en diferentes extremos de una ciudad con intención de asediarla.
- Para tener éxito, necesitan atacar a la ciudad de forma coordinada para derrotar a las defensas o retirarse de forma coordinada. En caso de no sincronizar sus acciones, caerán ante las fuertes fuerzas enemigas.
- Para lograrlo, los generales atacantes se comunican entre ellos a través de mensajeros.
- Aunque la ciudad está llena de enemigos, los mensajeros deben cruzar la ciudad para ir de un campamento a otro con las órdenes de ataque.
- El supuesto indica que el mensajero de un ejército informará a otro de la intención de atacar o no, y cuando hacerlo.
- Conforme reciban propuestas los generales irán confirmando o rechazando las misma para establecer un acuerdo de votación sobre qué paso dar.
Cómo se puede observar, el problema es que dentro de la ciudad los enemigos podrían capturar a los mensajeros. De conseguir interceptarlos, el mensaje podría ser modificado y en consecuencia, el ataque no se realizaría de forma coordinada. Al no realizarse de forma coordinada, los ejércitos atacantes caerían derrotados, fracasando así su misión.
Por ejemplo, si un mensaje de los generales fuese “Atacar mañana”, se podría alterar el texto añadiendo detrás «sólo si llueve». De esta forma el otro ejército podría pensar que está acordando atacar sólo en caso de lluvia, y confirmar el mensaje. Con lo que el primer ejército atacaría y el segundo podría no hacerlo y retirarse si no lloviese.
En un conjunto de sistemas informáticos distribuidos con un objetivo común, cada computador equivaldría a un general y su ejército. Y por tanto, la red de datos sería análoga a los mensajeros que deben de cruzar la ciudad informando a los generales.
¿Qué efecto tienen las fallas bizantinas?
Las fallas bizantinas son consideradas la clase de fallas más general y más compleja de resolver. Esto es así porque el nodo que falla en la red, puede estar generando datos arbitrarios, y pretender estar correctamente. Las fallas bizantinas, son capaces de confundir los sistemas de detección de fallas. A pesar de la analogía, una falla bizantina no es necesariamente un problema de seguridad que involucre interferencia humana hostil: puede surgir de forma aleatoria debido a fallos eléctricos que se van acumulando.
Para explicar un poco más los efectos y alcances de estas fallas explicaremos algunos casos conocidos de las mismas:
Caso #1: Transbordador Espacial Discovery – Vuelo STS-124
La NASA encontró que una de las fallas de la misión STS-124, se vio involucrado el sistema de control de combustible. De sus cuatro sistema de control, los cuatro daban información errada y completamente distinta del sistema de control. Sin embargo, la falla no era de programación, sino física. Esta se originó en una tarjeta de control que comunicaba a los cuatros computadores. Una fisura en un diodo, fue lo que originó esta falla bizantina. La ruptura del diodo, fue culpable de una transmogrificación al convertir un diodo en un condensador. Esta situación atrasó el lanzamiento del transbordador hasta que la falla fue solucionada.
Si el sistema del Transbordador no fuera tolerantes a fallos bizantinos, esta falla hubiera sido desastrosa. Sin control del sistema de combustible, hubiera significado que el transbordador explotara. Este fallo es un claro ejemplo de lo peligrosas que pueden ser las fallas bizantinas, y de lo difícil que puede ser detectarlas o prevenirlas.

Caso #2: Tecnología blockchain
En el caso de la blockchain las fallas bizantinas se pueden presentar en la actuación de nodos no fiables o malintencionados. Si algún miembro de la comunidad envía información inconsistente a otros sobre transacciones, la confiabilidad de la blockchain se rompe. Para resolver esto, PoW ofrece mecanismos de tolerancia a fallas bizantinas (BFT) para evitar este problema.
Otro problema que se presenta en blockchain relacionado con las fallas bizantinas son los casos de doble gasto. El doble gasto, es un ataque en el que un actor hace uso en dos ocasiones distintas de las mismas criptomonedas. En este caso, la red blockchain debe resistir el hecho de que una misma criptomoneda se utilice de esta forma. Hacer esto es bastante complejo. Para lograrlo se debe diseñar mecanismos que sean tolerantes a fallas bizantinas parciales o completas.
¿Cómo blockchain resuelve el problema de la falla bizantina?
El diseño de Bitcoin, publicado por Satoshi Nakamoto en 2008, fue una respuesta directa al Problema de los Generales Bizantinos aplicado a sistemas financieros descentralizados. La solución necesitaba garantizar que una red de nodos desconocidos, sin autoridad central, pudiera llegar a un consenso sobre el estado del sistema incluso cuando una parte de esos nodos se comportara de forma arbitraria o malintencionada.
El mecanismo de Prueba de Trabajo (Proof of Work, PoW) que emplea Bitcoin es, en términos formales, un protocolo de Tolerancia a Fallas Bizantinas (Byzantine Fault Tolerance, BFT). Su lógica es la siguiente: para añadir un bloque a la cadena, un nodo debe demostrar que ha invertido una cantidad significativa de poder computacional en resolver un problema matemático. Este coste hace que alterar el historial de transacciones sea económicamente inviable: para modificar un bloque ya confirmado, un atacante necesitaría superar la capacidad computacional de toda la red honesta, lo que en una red de escala suficiente resulta prohibitivo.
La tolerancia no es ilimitada. La teoría de BFT establece que un sistema puede funcionar correctamente siempre que la fracción de nodos comprometidos no supere un tercio del total (en los protocolos BFT clásicos) o, en el caso de PoW, que el atacante no controle más del 50% de la capacidad de cómputo de la red. Si se supera ese umbral, la garantía de consenso se rompe. Este es el fundamento teórico del conocido ataque del 51%.
Más allá de PoW, el ecosistema blockchain ha desarrollado múltiples variantes de protocolos BFT adaptadas a distintas necesidades:
- Prueba de Participación (Proof of Stake, PoS): empleada por Ethereum desde su transición en 2022 (The Merge). La tolerancia se garantiza mediante incentivos económicos: los validadores que actúan de forma deshonesta pierden los activos que tienen comprometidos como garantía (slashing).
- Tolerancia a Fallas Bizantinas Práctica (PBFT): protocolo diseñado para redes de nodos conocidos, con alta eficiencia y finalidad inmediata. Lo utilizan blockchains permisionadas como Hyperledger Fabric.
- Tolerancia a Fallas Bizantinas Delegada (dBFT): utilizada por NEO, donde los nodos validadores son elegidos por la comunidad y se requiere un consenso de dos tercios para confirmar bloques.
¿Por qué la falla bizantina importa más allá de blockchain?
La relevancia del Problema de los Generales Bizantinos va mucho más allá de las criptomonedas. Cualquier sistema que dependa de la coordinación entre múltiples componentes independientes —redes eléctricas inteligentes, sistemas de votación electrónica, infraestructuras de comunicación militares, flotas de vehículos autónomos— enfrenta variantes del mismo problema fundamental: cómo alcanzar un acuerdo fiable cuando no se puede confiar ciegamente en todos los participantes.
En este sentido, la investigación iniciada por Lamport, Shostak y Pease en los años ochenta no solo inspiró el diseño de Bitcoin, sino que sentó las bases de una disciplina que hoy se aplica a problemas tan diversos como la sincronización de relojes en centros de datos, la coordinación de satélites en constelaciones LEO o la resiliencia de los sistemas de control de las plantas de energía nuclear.
El progreso en esta área sigue activo. Investigadores de MIT, Stanford y Cornell Digital Initiative trabajan en protocolos que buscan reducir las garantías de consenso BFT a condiciones más eficientes, especialmente para entornos con miles de participantes donde los protocolos clásicos pierden escalabilidad. La falla bizantina, en suma, es un problema antiguo con una vigencia que crece con cada nueva capa de infraestructura digital que construimos.
Pulsa aquí para abrir de forma GRATUITA y segura tu cuenta de usuario en español y recibe un regalo de 15€.


Autor


