El Problema de los Generales Bizantinos es un desafío fundamental en la ciencia de la computación que describe la dificultad de garantizar la seguridad en una red distribuida. Para abordar este problema, los nodos honestos deben lograr un consenso, incluso con la presencia de nodos deshonestos. Esto implica que una mayoría de los nodos debe establecer un marco de reglas y acordar su aplicación dentro de la red.
En este artículo, profundizaremos en el Problema de los Generales Bizantinos y su importancia. Exploraremos soluciones prominentes que han surgido a lo largo del tiempo. Finalmente, arrojaremos luz sobre cómo las redes blockchain han empleado protocolos de consenso para abordar este problema y garantizar transacciones seguras.
El Problema de los Generales Bizantinos: Una Visión General
El Problema de los Generales Bizantinos es un obstáculo que los sistemas informáticos descentralizados pretenden superar. Esta analogía ofrece una visión de la seguridad de datos contemporánea.
El Problema de los Generales Bizantinos: Una Perspectiva Histórica
En 1982, Leslie Lamport, Robert Shostak y Marshall Pease publicaron un artículo titulado "The Byzantine Generals Problem". Desde su inicio, la importancia de este problema fue evidente, acreditado por el apoyo de la NASA, el Comando de Sistemas de Defensa de Misiles Balísticos y la Oficina de Investigación del Ejército. Aunque el Problema de los Generales Bizantinos ya era un concepto conocido en la ciencia de la computación antes de 1982, este artículo fue uno de los primeros esfuerzos en presentar el problema utilizando una analogía familiar y ofrecer posibles soluciones.
El Problema de los Generales Bizantinos se ilustra utilizando una analogía: múltiples divisiones del ejército bizantino están posicionadas fuera de un territorio enemigo, preparándose para el combate. Los generales, restringidos a comunicarse a través de mensajeros, necesitan decidir sobre una estrategia unificada. El problema es que algunos generales, actuando como traidores, podrían impedir que los leales alcancen un consenso. La solución exige un algoritmo que asegure que los traidores no puedan manipular los mensajes. Abordar el Problema de los Generales Bizantinos significa que los generales leales deben encontrar una forma infalible de ponerse de acuerdo (consenso) y ejecutar su estrategia (coordinación).
Comprender el Problema de los Generales Bizantinos es complejo, pero su esencia es clara. Si bien la analogía se centra en la comunicación militar, el Problema de los Generales Bizantinos se extiende a una variedad de sistemas informáticos más allá de los contextos militares. En cualquier escenario donde los nodos distribuidos (como las computadoras) se esfuerzan por una comunicación confiable, se enfrentan al Problema de los Generales Bizantinos.
Fallos Bizantinos en el Contexto del Problema de los Generales Bizantinos
Hay varias razones por las que un sistema informático distribuido podría fallar, denominado como fallos bizantinos. Tomando como referencia la analogía anterior, estos fallos representan a los generales traidores que interrumpen la comunicación. Traducidos a sistemas informáticos del entorno real, estos podrían manifestarse como fallos de software, fallos de hardware o incluso sabotaje deliberado. Los fallos bizantinos no se limitan a intervenciones maliciosas, sino que pueden incluir cualquier elemento que obstaculice el consenso en una red.
El Problema de los Generales Bizantinos y la Tolerancia a Fallos
Dada la naturaleza de los sistemas distribuidos, encontrar fallos bizantinos es casi una certeza. Considere un escenario de un corte de energía que hace que los nodos se desconecten. ¿Seguiría funcionando el sistema sin problemas? ¿O se colapsaría o se volvería susceptible a las violaciones?
Una red robusta permanece inafectada por interrupciones menores, como un puñado de nodos que se desconectan. La resistencia a tales escenarios se denomina Tolerancia a Fallos Bizantinos. Los sistemas con una mayor capacidad de resistir más fallos bizantinos, en el contexto del Problema de los Generales Bizantinos, son intrínsecamente más seguros que sus contrapartes menos tolerantes.
Comprender el Problema de los Generales Bizantinos
Abordar el Problema de los Generales Bizantinos ha sido históricamente desafiante. Hay numerosos problemas de seguridad que los científicos informáticos deben abordar, agravados por la necesidad de idear soluciones tangibles para lo que a menudo parecen amenazas teóricas. Con el tiempo, se han formulado múltiples enfoques para diferentes aplicaciones de sistemas distribuidos.
Enfoques Iniciales
El camino para comprender el Problema de los Generales Bizantinos comenzó en la década de 1950, con su enfoque principal en el sector de la aviación. A finales de la década de 1970 y principios de la de 1980 se desarrollaron varias soluciones adaptadas para aeronaves y naves espaciales.
En 1978, expertos del Draper Laboratory difundieron un informe sobre el Fault-Tolerant Multiprocessor (FTMP), una computadora diseñada para anular las vulnerabilidades de falla única en los módulos de aeronaves. Esta investigación persistió a lo largo de la década de 1980.
Mientras tanto, Honeywell Labs, a finales de la década de 1970, fue pionera en el Sistema de Control de Vuelo de Microprocesador (MMFCS). Este sistema fue experto en identificar fallos bizantinos y distinguirlos de otros tipos de fallos. En 1981, SRI International, la entidad que popularizó el término "Problema de los Generales Bizantinos", publicó un artículo sobre un mecanismo de control de aeronaves llamado Tolerancia a Fallos Implementada por Software (SIFT).
Protocolo Paxos y la Analogía Histórica
En 1989, Leslie Lamport presentó al entorno el protocolo Paxos. Casi una década después, en 1998, Lamport elaboró sobre esta solución al Problema de los Generales Bizantinos a través de su obra, "The Part-Time Parliament".
Para explicar el Problema de los Generales Bizantinos, se pueden trazar paralelos con el pasado. La isla griega de Paxos, en la antigüedad, estaba gobernada por un parlamento periódico.
Los habitantes de la isla priorizaban el comercio por encima de la gobernanza, lo que llevaba a una asistencia política inconsistente. Esto requería un modelo de gobernanza que pudiera operar de manera eficiente a pesar de la presencia intermitente de sus funcionarios. Lamport postuló un mecanismo de gobernanza basado en los detalles perdidos de este sistema histórico. Él discernió que esto reflejaba los desafíos que enfrentan los sistemas distribuidos contemporáneos.
Aprovechando esta comparación histórica, Lamport y sus colegas elaboraron el protocolo Paxos. Este es esencialmente un conjunto de protocolos de consenso que establecen las bases para el enfoque de replicación de la máquina de estado. A diferencia de los sistemas anteriores que necesitaban nodos en línea concurrentes que se comunicaban de forma sincrónica para el consenso, el protocolo Paxos era asíncrono. La esencia de la replicación de la máquina de estado era empoderar a los nodos en una red distribuida para validar de forma independiente y comunicarse de forma asíncrona o semi-sincrónica.
Esto se puede resumir en cuatro pasos:
- Un dispositivo registra el estado de la red (denominado máquina de estado) y establece el estado inicial.
- El servidor se somete a múltiples replicaciones.
- Estos servidores replicados, que reciben entradas idénticas en una secuencia uniforme, producen salidas coincidentes.
- Las réplicas del servidor luego participan en un ejercicio basado en el consenso sobre estas salidas para garantizar la integridad de los datos y para navegar por el Problema de los Generales Bizantinos.
El protocolo Paxos marcó un hito en la informática. Ofreció un método para garantizar la uniformidad de los datos en un marco distribuido y reforzó las defensas contra posibles fallos bizantinos.
Tolerancia a Fallos Bizantinos Práctica (pBFT)
En 1999, Miguel Castro y Barbara Liskov presentaron un algoritmo destinado a abordar el Problema de los Generales Bizantinos. Este enfoque, conocido como pBFT, enfatizó la palabra "práctico" ya que muchas soluciones anteriores eran sincrónicas o poco prácticas para sistemas asíncronos. pBFT permitió que los sistemas asíncronos procesaran solicitudes de manera eficiente, aunque tenía algunas limitaciones, como ser susceptible a ataques de Sybil. Protocolos posteriores como Q/U, HQ, Zyzzyva y ABsTRACTs tenían como objetivo refinar su rendimiento y costo, mientras que Aardvark y RBFT se centraron en la robustez.
Red Bitcoin
En octubre de 2008, Satoshi Nakamoto publicó el libro blanco original de Bitcoin. Aunque el término "Problema de los Generales Bizantinos" nunca se utiliza en este documento, Nakamoto efectivamente propuso una solución que se implementaría con el lanzamiento de la red Bitcoin en enero de 200Bitcoin se convirtió en la primera blockchain del entorno, que es una variedad de tecnología de libro mayor distribuido (DLT).

La red introdujo la capacidad para que los usuarios envíen y reciban de forma segura una moneda digital llamada Bitcoin (BTC). Otros sistemas distribuidos para pagos digitales se propusieron antes de Bitcoin, pero no tuvieron éxito en gran medida debido a su incapacidad para evitar fallos bizantinos. Debido a que esas soluciones no resolvieron el Problema de los Generales Bizantinos, eran propensas a una amenaza de seguridad conocida como el problema de doble gasto. En otras palabras, los usuarios podrían gastar fondos que en realidad no existían. Con Bitcoin, el problema de doble gasto se resuelve porque el diseño de la red proporciona un nivel muy, muy alto de Tolerancia a Fallos Bizantinos.
Entonces, ¿cómo logra esto la red Bitcoin? Es importante entender que Bitcoin se basa en soluciones anteriores para el Problema de los Generales Bizantinos. Por ejemplo, la red permite la comunicación asíncrona entre nodos y es esencialmente una máquina de estado replicada. La seguridad de la red también se basa en una combinación de conceptos como el cifrado asimétrico, la tecnología de redes punto a punto y la Prueba de Trabajo (PoW). Al igual que el protocolo Paxos o pBFT, Proof of Work es un protocolo de consenso. Aunque PoW se propuso por primera vez en 1992, Bitcoin se convirtió en la primera red en introducir un aspecto competitivo de la validación de datos PoW conocida como minería. Pronto comenzaron a adoptarse otras redes basadas en PoW. La solución de Bitcoin para el Problema de los Generales Bizantinos. Otras variedades de protocolos de consenso blockchain pronto seguirían.
Soluciones de Tolerancia a Fallos Bizantinos para Redes Blockchain
Hay principalmente tres soluciones al Problema de los Generales Bizantinos utilizadas por las blockchains:
Prueba de Trabajo (PoW)
Introducido por Bitcoin, PoW aborda el Problema de los Generales Bizantinos recompensando a quienes resuelven problemas matemáticos. Si bien es altamente seguro, su vulnerabilidad radica en la posibilidad de un ataque del 51%, especialmente en redes más pequeñas.
Prueba de Participación (PoS)
Lanzado en 2012, PoS es otra respuesta al Problema de los Generales Bizantinos. En lugar de la minería, utiliza la participación. Ethereum 0 contará con Casper, un algoritmo PoS que exige una mayoría de dos tercios para el consenso.
Prueba de Participación Delegada (DPoS)
Ideado en 2014, Delegated Proof of Stake (DPoS) es algo similar a PoS para resolver el Problema de los Generales Bizantinos. Utiliza elecciones de delegados para garantizar un consenso rápido, pero existen riesgos potenciales debido al número limitado de nodos de validación.
Cómo Bitcoin Resolvió el Problema de los Generales Bizantinos
El Problema de los Generales Bizantinos es un problema de la teoría de juegos, que describe la dificultad que tienen las partes descentralizadas para llegar a un consenso sin depender de una parte central de confianza. En una red donde ningún miembro puede verificar la identidad de otros miembros, ¿cómo pueden los miembros acordar colectivamente una determinada verdad?
La analogía de la teoría de juegos detrás del Problema de los Generales Bizantinos es que varios generales están asediando Bizancio. Han rodeado la ciudad, pero deben decidir colectivamente cuándo atacar. Si todos los generales atacan al mismo tiempo, ganarán, pero si atacan en diferentes momentos, perderán. Los generales no tienen canales de comunicación seguros entre sí porque cualquier mensaje que envíen o reciban puede haber sido interceptado o enviado de forma engañosa por los defensores de Bizancio. ¿Cómo pueden los generales organizarse para atacar al mismo tiempo?
Sistemas Centralizados y Descentralizados
Solo los sistemas descentralizados enfrentan el problema de los generales bizantinos, ya que no tienen una fuente confiable de información y no hay forma de verificar la información que reciben de otros miembros de la red. En los sistemas centralizados, se confía en una autoridad para publicar información veraz y evitar que se difunda información falsa o fraudulenta en toda la red.
Por ejemplo, en el sistema financiero tradicional, se confía en los bancos para mostrar a los clientes sus saldos e historiales de transacciones de manera honesta. Si un banco intentara mentir o defraudar a sus clientes, se confía en un banco central o gobierno para rectificar la violación de la confianza.
Los sistemas centralizados no resuelven el problema de los generales bizantinos, que requiere que la verdad se establezca sin confianza. Más bien, sacrifican la falta de confianza por la eficiencia y eligen no enfrentarse al problema en absoluto. Sin embargo, los sistemas centralizados son vulnerables a la corrupción por parte de la autoridad central.
El Dinero y el Problema de los Generales Bizantinos
El dinero es un ejemplo principal del Problema de los Generales Bizantinos. ¿Cómo debe una sociedad establecer un dinero en el que todos los miembros de una sociedad puedan confiar y ponerse de acuerdo?
Durante gran parte de la historia, las sociedades han seleccionado metales preciosos u otros bienes raros, como conchas o cuentas de vidrio, como dinero. De alguna manera, el oro resolvió el Problema de los Generales Bizantinos: era confiable y reconocido en sistemas descentralizados, como el comercio internacional. Sin embargo, su peso y pureza setutorialn siendo poco confiables, y todavía lo son hasta el día de hoy. El fracaso del oro para resolver completamente el Problema de los Generales Bizantinos resultó en que las partes centrales de confianza, generalmente los gobiernos, se hicieran cargo del establecimiento y la emisión de dinero. Los gobiernos monopolizaron las casas de moneda para inspirar confianza en el peso y la pureza del dinero. Los sistemas centralizados, obviamente, no resolvieron el Problema de los Generales Bizantinos. Los gobiernos, las autoridades centrales de confianza para el dinero, constantemente violaron esa confianza al apoderarse, desvalorizar o cambiar el dinero.
El problema fundamental con la moneda convencional es toda la confianza que se requiere para que funcione. Se debe confiar en el banco central para que no desvalorice la moneda, pero la historia de las monedas fiduciarias está llena de violaciones de esa confianza.
– Satoshi Nakamoto discutiendo la importancia de la naturaleza descentralizada de Bitcoin.
Para que un dinero resuelva el Problema de los Generales Bizantinos, tendría que ser verificable, resistente a la falsificación y sin confianza. No fue hasta la invención de Bitcoin que se logró esta hazaña.
Cómo Bitcoin Resuelve el Problema de los Generales Bizantinos
Bitcoin fue la primera solución realizada al Problema de los Generales Bizantinos con respecto al dinero. Muchas propuestas y proyectos anteriores a Bitcoin habían intentado crear dinero separado del gobierno, pero todos habían fallado de una forma u otra.
Si quieres conocer otros artículos parecidos a El problema de los generales bizantinos: cómo blockchain lo resuelve puedes visitar la categoría Finanzas / Inversiones.
