No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

El problema de los generales bizantinos

5/15
Recursos

Los sistemas distribuidos tienen un problema en común, llegar a un consenso y asegurar que los datos no están siendo saboteados por un actor malicioso.

¿Qué es el consenso entre nodos de una red?

Cuando los nodos de cualquier Blockchain, o cualquier sistema distribuido en general, necesitan comunicarse y tener seguridad de que todos los nodos participantes no tienen intenciones de hackear la red, robar o corromper datos.

El problema de los generales bizantinos es una analogía que explica la dificultad lógica que un sistema distribuido tiene para comunicar sus nodos y llegar a un consenso.

Un ejército bizantino se divide en grupos dispersos con la intención de atacar un castillo. Deben ponerse de acuerdo entre todos los sub-ejércitos para atacar o retirarse al mismo tiempo. Si uno de los generales bizantinos que comanda un sub-ejército decide sabotear el plan e ir en contra de sus aliados, el plan fracasaría.

La gran dificultad entre los generales es la comunicación entre las partes, ponerse de acuerdo sobre cómo actuar para lograr conquistar el castillo y que no haya un general traidor entre ellos.

Esta analogía nos lleva al funcionamiento de toda Blockchain. ¿Cómo hacen los nodos de una red para llegar a un consenso y evitar que nodos maliciosos corrompan los datos con transacciones fraudulentas?

La propuesta de Satoshi para solucionar el problema de los generales Bizantinos

Satoshi Nakamoto, el misterioso creador de Bitcoin, propuso una magnífica solución para resolver el problema de los generales bizantinos. Como toda Blockchain no posee una autoridad central que coordine los nodos (los generales), los mensajes no son instantáneo y la red se encuentra potencialmente comprometida en todo momento a posibles ataques.

Debe haber sido todo un desafío para Satoshi lograr comunicar nodos para llegar a un consenso entre partes que no se conocen. Su solución es denominada “Proof of Work” y se trata de un gran obra de ingeniería de software que permite el funcionamiento de todo el ecosistema de Bitcoin que hoy conocemos.

Funcionamiento del algoritmo de proof-of-work

El algoritmo de proof-of-work resuelve este problema, permitiendo a los generales emitir un mensaje con el plan para atacar el castillo. Los mensajes son identificados con un hash único e irrepetible, los demás generales utilizarán este hash para votar por este plan, creando un nuevo hash enlazado al primero, formando así una cadena de hashes con el plan a seguir para conquistar el castillo.

Si un general malintencionado decide enviar un mensaje falso, se formará una bifurcación de los votos que será ignorada por el resto de los generales. Únicamente se tiene en cuenta la cadena de mensajes con más cantidad de participantes y votos. De esta forma, logran alcanzar el consenso.

Si llevamos esta analogía al funcionamiento real de la Blockchain, proof-of-work requiere de un procesamiento de cómputo para crear los mensajes, una “prueba de trabajo” para desalentar el comportamiento malicioso de los nodos de la red. La creación de bloques en la Blockchain representan los votos de los generales que forman la cadena de bloques que contienen toda la información emitida a la red.

Los bloques de la Blockchain de Bitcoin se encuentran conectados a través de los hashes. Si se formara una bifurcación, ya sea por un comportamiento indebido de un nodo o por un problema de sincronización, la misma sería eliminada, dado que es ignorada por la mayoría de los nodos de toda la red.

El consenso en cualquier sistema distribuido, o en cualquier Blockchain, puede alcanzarse de forma segura gracias a este mecanismo.

Conclusión

Proof-of-work se trata de un algoritmo que Satoshi Nakamoto creó para permitir el funcionamiento de toda la Blockchain. Posiblemente, sea la gran innovación que propuso para crear Blockchain y, al mismo tiempo, ha resuelto uno de los dilemas de la informática como lo es el problema de los generales bizantinos.


Contribución creada por: Miguel Angel Huamán (Platzi Contributor)
Articlase revisada y editada por: Kevin Fiorentino (Lead Contributor de Platzi).

Aportes 89

Preguntas 12

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

El problema de los generales bizantinos

  • Es una situación hipotética que ilustra los problemas de comunicación en una red informática descentralizada
  • Hay distintos nodos de comunicación separados
  • La comunicación únicamente puede ser de nodo a nodo
  • No existe una autoridad ni intermediario
  • La mayoría de la red debe estar de acuerdo para que el plan funcione
  • Si uno o más nodos son maliciosos podrían sabotear el plan de coordinación
  • Bitcoin lo resuelve mediante hashes, prueba de trabajo y comprobación periódica
  • Los hashes permiten que se detecte cuando un nodo comunica información errónea o falsa
  • Existe un mecanismo de consenso en la red
  • Cada nodo es recompensado o castigado en función de decir o no la verdad
  • Emitir un mensaje falso implica una inversión computacional desde el emisor, lo que lo desincentiva, teniendo en cuenta que siempre será detectable gracias al mecanismo de hash

Este problema matemático trasladado a la realidad mediante el conflicto de generales bizantinos, nos presenta una respuesta que todos conocemos DEMOCRACIA.

La explicación de Angela sobre el problema de los generales bizantinos está muy buena, y el curso está buenísimo al momento. ¡Gran trabajo! 👏👏

Recomiendo dos videos que me ayudaron a entender mejor como funciona una blockchain:

Muy buena esta clase. Excelente. No conocía el sistema de generales bizantinos

Quedo confuso el problema de los generales bizantinos desde el minuto 3:30, apoyarse en el paper https://web.ua.es/en/recsi2014/documentos/papers/bitcoins-y-el-problema-de-los-generales-bizantinos.pdf

My notes in English:

The problem of the Byzantine generals

  • According to Wikipedia, the problem of the Byzantine generals (or the Byzantine fault) is a mental experiment to demonstrate solving a problem within a set of computer systems that have a common objective.
  • Imagine a group of generals of the Byzantine army that are separated geographically and need to agree on how they are going to attack a city or whether they will retreat. The plan will only be successful if the majority attack or retreat at the same time. They can only speak to each other through computational messages. There’s no authority that coordinates them and it’s possible that one of the generals is planning to sabotage the operation.
  • Imagine that there are 6 generals around a castle. They can only communicate general to general. If one of them is an imposter and sends a message, it will fail.
  • How do we solve this?
  • Blockchain and the “proof of work” protocol has meant that there’s a mechanism to achieve a consensus between parts that don’t know each other using a potentially compromised public network
  • How can we make sure that the generals achieve their goal?
  • Every general can propose the hour of attack by sending a message to the group. However, imagine if there are problems in the network and messages can’t be received instantaneously. It could be possible that the messages could arrive in different moments and the generals wouldn’t know which plan to follow.
  • The generals could introduce this information on the blockchain and every 10 minutes the generals decide and identify their messages with a number (called a hash). With this, a vote is created every 10 minutes and the plan that has the most votes will be the plan that they will carry out.
  • The first hash found will correspond to the first vote. So, through the first vote, all the generals will identify and start to look for the second hash using the previous hash. The general that finds the second hash (second vote in the chain) will send it to everyone else so that one of them can create the third vote and so on.
  • Imagine that every hash has a message “attack at 10 pm”. Now the votes are recorded until a consensus or team decision is created
  • With blockchain, it tries to carry out immutable accounting by checking the identity of the generals and that everyone is voting for the same plan (in this case plan A is to attack at 10 pm)
  • What would happen if one general voted to attack at 8 pm? It would create two chains: one for plan B and the other for plan B. As the votes are cast in consensus, the one with the highest number of votes will be elected. So plan B will be ignored (the plan that the imposter tried to create) and plan A will be chosen.
  • Now they can attack knowing the majority of the generals support the same plan and the imposter didn’t succeed in sabotaging the plan.
  • There is a paper from the Universitat Autonoma de Barcelona, published in 2014, by Cristina Perez-Sol and Jordi Herrera-Joancomart that is a technical explanation of how Bitcoin resolves this problem (link in resources). It’s not necessary to read this paper to pass the course, but it’s really recommended for a more in-depth understanding.

Que increíble, de un problema matemático, haya salido una solución tan hermosa, que cambiaria el mundo.

Me parece una explicación excelente, para ahondar en un problema tan antiguo y con una solución tan actual y revolucionaria.

El problema de los generales bizantinos

  • Satoshi Nakamoto resolví este problema
  • Es un experimento mental para plantear el problema entre un conjunto de sistemas informáticos que tienen un problema entre si.
  • Se soluciona entre Blockchain y Proof of Work.
  • Se busca eliminar los mensajes (datos) de impostores para no perjudicar la transferencia del mismo.
Soy solo yo o la premisa de los generales se parece mucho al juego "among us"

Aqui hay un video que habla del tema.
El problema de los generales bizantinos

El problema de los generales bizantinos

El problema de los generales bizantinos es un ex- perimento mental creado para ilustrar el dilema de lograr un consenso entre un conjunto de entidades con un objetivo comu ́n cuando entre ellas pueden existir traidores, es decir, entidades con objetivos opuestos que intenten dinamitar el proceso. Adema ́s, se supone que las comunicaciones entre dichas entidades son limitadas e inseguras. El problema se presenta como una analog ́ıa con un escenario de guerra, donde un grupo de generales bizantinos se encuentran acampados con sus tropas alrededor de una ciudad enemiga que desean atacar.Después de observar el comportamiento del enemigo, los generales deben comunicar sus observaciones y ponerse de acuerdo en un plan de batalla comu ́n que permita atacar la ciudad y vencer. Para ello, los generales se comunican u ́nicamente a trave ́s de mensajeros. Adema ́s, existe la posi- bilidad que algunos de los generales sean traidores y, por lo tanto, decidan enviar mensajes con informacio ́n erro ́nea con el objetivo de confundir a los generales leales. Un algoritmo que solucione el problema debe asegurar que todos los generales leales acuerdan un mismo plan de accio ́n y que unos pocos traidores no pueden conseguir que el plan adoptado por los generales leales sea equivocado.

https://www.youtube.com/watch?v=dfsRQyYXOsQ

Un poco de ilustración, del problema bizantino en inglés.

Seguridad, velocidad, fiabilidad, autenticidad-

la verdad el problema esta muy enredado perol la solucion es muy increible ese japones sabe mucho

Me arme toda una película con este ejemplo jajaj

Lo más importante de bitcoin es la nueva forma de darle valor a las cosas, no creo que sea importante saber quien es el verdadero creador, lo importante es la tecnología misma

Al fiiiiiiiiiiiiin una explicación sublime, sencilla y elegante del gran problema hipotético de los generales bizantinos. Bravo Angela

Muy buen ejemplo para entender como funciona

Ahora a leer el documento de los recursos para tener bases sólidas de este funcionamiento.

Increíble que todo un sistema actual se resuelva en base a problemas históricos.

El problema de los generales bizantinos. Es un experimento mental creado para ilustrar el dilema de lograr un consenso entre un conjunto de entidades con un objetivo común. Entre ellas pueden existir traidores, es decir, entidades con objetivos opuestos que intenten dinamitar el proceso. Se trata de evitarlos. Además, se supone que las comunicaciones entre dichas entidades son limitadas e inseguras. En el caso de Bitcoin, son por internet y sin conocer al remitente ni el remitente al que le envía el mensaje o la transacción. Una ‘guerra’ de información. El problema se presenta como una analogía con un escenario de guerra. Un grupo de generales bizantinos se encuentran acampados con sus tropas alrededor de una ciudad enemiga que desean atacar. Al estar defendida la ciudad de forma muy efectiva, la única forma de conseguir la victoria, es atacando todos los grupos de soldados. Todos gobernados por un general a la vez. Los generales deben comunicar lo que han ido viendo y ponerse de acuerdo en un plan para atacar la ciudad y ganar. Para ello, los generales se comunican únicamente a través de mensajeros y de forma asíncrona. Es decir, no como si estuvieran hablando por teléfono, si no por carta. Ideado para evitar ‘traiciones’. Existe la posibilidad que algunos de los generales sean traidores y, por lo tanto, decidan enviar mensajes con información errónea. Su objetivo es confundir al resto y que el ataque no se haga a la vez y por consiguiente no tenga éxito. Un algoritmo que solucione el problema debe asegurar que todos los generales leales acuerdan un mismo plan de acción. Todo para que unos pocos traidores no puedan conseguir que el plan adoptado por los generales leales sea equivocado. O hablando de Bitcoin, que todos contengan el mismo libro contable. Es decir, que unos pocos en conjunto no puedan hacer creer al resto que su libro no es válido. Que no les engañe con el suyo, que tiene transacciones trampa. Más allá de ser la primera criptomoneda con una aceptación extendida por todo el mundo… Uno de los grandes logros de Bitcoin es el hecho de ofrecer la primera solución práctica al problema de los generales bizantinos. <https://baetica.com/problema-generales-bizantinos/>

Problema de generales bizantinos (explicacion)

muy buena explicación, sobre todo poder entender como si fuera un cuento histórico.

Increible problema y la solución fue no tan compleja pero muy eficiente!

muy ingenioso la forma de resolver el problema

Aqui estamos generación BITCOIN!

tremenda explicación de la blockchain 💪

Me gusto como lo explica Angela 😃

Es un poquito bastante difícil de entender

Menudo problema matemático, solo un o varios duros pudieron resolverlo… Cuanto tiempo tardarían en hacerlo? poniendo a 6 generales y expandiéndolos al infinito… y con muchísimos castillos

muy interesante en el concepto de funcionamiento, mas el como se pudo solucionar, esto muestra el problema de la topologia de redes en linea y circulo, estas dependen de unas u otras, pero con la se soluciona, con un concenso 😂

la explicación de la profesora es buena y entendible, gran solución al problema.
excelente manera de explicar.

Me estoy enamorando mucho y esto tan solo es el principio 😄.

exelente ideologia para explicar

Wikipedia no es una fuente confiable. Entiendo que es una fuente rápida y para información general, pero le resta validez y seriedad a este curso.

Muy completo este curso. Estoy aprendiendo muchísimas cosas nuevas.

La magia de la matemática y la criptografia aplicada a resolver problemas reales de la nueva economía

Por todo esto bitcoin y la tecnología Blockchain son un avance grandísimo que impacta directamente en la autonomía, descentralización y democrcia monetaria digital…

fue muy importante el creador de Enigma

¡Atacamos a las 10:00 p. m!
El el enlace no funciona

Me encanto este capitulo

Un problema matemático solucionado con la idea de una democracia directa. muy interesante !

Fascinante, como programador esto es motivador para crear soluciones, la solución de Satoshi marco un antes y un despues

Saber historia solucionó el problema de los generales Bizantinos.

Sería interesante ver aplicada toda esta metodología y la blockchain en la política y dentro del mundo empresarial para la toma de decisiones!

el problema en mención me recuerda un juego llamado el "teléfono roto"

Es una forma muy creativa para entender cómo funciona.

Me parece muy interesante como encontró la solución y la capacidad que tuvo para tener la idea

La primera vez que escuché acerca del problema de los generales bizantinos fue aquí:
https://www.youtube.com/watch?v=2TrRHuZCkjE

Me parece muy interesante este tema del Bitcoin y de las Criptomonedas en general, como poder hacer transacciones de dinero con la metodología o desarrollo de una blockchain. Además me parece bastante interesante el tema de como se minan estas monedas con la resolución de problemas matemáticos complejos, ¡seguimos aprendiendo!

Es increíble en todo lo que pensaron para lograr sacar adelante el proyecto

¡Muy buena información! ¡Muchas gracias!

Interesante, y mas porque desconocía este problema!!!

muy buen ejemplo para explicar el problema

Brutal el ejemplo del problema/solución de los generales bizantinos. Muy esclarecedor
Muy buena la explicación, sobre todo para aquellos que estamos buscando entender bien el tema

Siempre he valorado a las personas que están muy adelantados a nuestros tiempos, será la crianza, algunos factores o influencias o simplemente genios.
De cualquier modo, hay que aprender de ellos y sus invenciones.

enserio qe hora eso dijiste en la primera sesión, mucha historia de lo que ya se sabe, aburrido

que loco!!! genial!!!

Hola, quiero compartir este video donde explican el tema del problema de los generales bizantinos.

https://www.ledger.com/academy/school-of-block/episode-6-back-to-basics-what-is-blockchain

Al igual en esta web esta disponible un contenido muy interesante para aprender blockchain.

Este capitulo es pura matematica! Lo vi en economia en teoria de los juegos. De hecho tambien hay una pelicula relacionada con esto sobre el matematico John Nash. La pelicula se llama Una mente brillante

Me pareció emocionante y comprensible como se abordó la resolución “El problema de los generales bizantinos”.

Excelente clase

Muy buena clase he aprendido nuevos conceptos y nuevas ideas sobre las criptomonedas 😉

Wow, realmente no había leído o escuchado antes sobre este problema de los generales bizantinos, pero sí me dio muchísima curiosidad averiguar más al respecto, me encanta saber que así empezó todo, gracias por la recomendación del paper! definitivamente lo consultaré ❤️

Angela en realidad es increíble como se soluciono el problema, lo mas interesante es que la solución es meramente democrática y en la actualidad muchos problemas simples no se solucionan por no llegar a un acuerdo o consenso, afortunadamente en la informática esto no sucede y se puede parametrizar . Excelente

Si increíble para su tiempo

Me costo un poco entender el como funcionan las transacciones con la documentación pero cuando ya lo entiendes es sencillo y super efectivo. Grande Satoshi!!!

No se me habia ocurrido plantear una cyberwar, donde a travez del blockchain las maquinas puedan establecer distintas posiciones, estrategias, puntos de ataque y defenza, de forma asimetrica pero coordenada. Una IA como comandante de la operacion que manipula los drones, misiles, objetos-bomba, o incluso dispersores de algun virus. Tiene mucho futuro la criptomania.

si lo hubieses hecho con un dibujo hubiese sido mejor entenderlo.

Sorprende saber que la historia trae consigo claves específicas que dominan avances como el que trajo consigo las blockchains, cripto e incluso los sistemas financieros actuales. Con la revolución cripto-tecnológica actual que pasará en 50 años? o incluso en 5. Las posibilidades aumentan y dan muchas ganas de estar en primera línea para ver lo que sucede.

Muy buena explicación a un gran problema.

GRacias

¡ Increíble la forma en la que se explica esto!

Me gustó esta clase, me imagine cada escena.☺

increíble ejemplo, me encanta todo lo que conyeva una misma situación.
l

Muchas personas creen que la solución a este problema es extraterrestre… Pueden leer sobre esta teoría aquí

Genial su explicacion…me encanto su Pedagogia!!!

Para mi fue impactante, creo que es una de las bases del Bitcoin Basicamente el que este haciendo trampa en la red, se expone asi mismo Debido a que todos quieren lograr un objetivo en comun, es dificil que alguien haga trampa

El ingenio y las matemáticas son las aliadas perfectas para resolver toda clase de problemas

Gracias angela, me está encantando tu audiocurso, y tus explicaciones son muy fáciles de entender.

buen curso y me gusto el drama en la explicación

muy interesante la clase 😃

Es genial como lo explica la profe

Es increíble ver cómo la tecnología Blockchain se apoya en distintas disciplinas como las matemáticas y la criptografía para resolver problemas prácticos.