The Two Generals’ Problem

Time to tell a story about idempotency, computer science, and the Night of the Multiple Orders. • Sponsored by Dashlane -try 30 days for free at:
Written by Sean M Elliott and Tom Scott
Directed by Tomek
Graphics by Mooviemakers
Audio mix by Haerther Productions
Thanks to Dashlane for sponsoring the video! If you're techie enough to watch this video, you should be using a password manager. Get a 30-day free trial at
I'm at
on Twitter at tomscott
on Facebook at tomscott
and on Instagram as tomscottgo


  1. Tom Scott

    Tom Scott

    Il y a 5 mois

    Yes, I had help with the graphics for this series. There's no way I'd have animated that myself! On that note, thanks to Dashlane for sponsoring and helping me hire an animator: their free trial link is

    • Caleb Gonsalves

      Caleb Gonsalves

      Il y a 3 jours

      We in India have an option to call the restaurant and the delivery driver so that solves the two generals problem here...

    • deltor 12

      deltor 12

      Il y a 17 jours

      Fire signals to show u received the message. So what can be the fire signal for computers

    • Артем


      Il y a 21 jour

      Also if you are a real computer nerd than you surely must know that the weakest point of a system is a human being. So storing all passwords in one place under one probably not complicated master password since you probably will enter quiet often - is the dumbest thing to do!

    • Clockwork Games

      Clockwork Games

      Il y a 22 jours

      Use just eat not deliveroo - its more ethical as well as this event

    • Ana Paula

      Ana Paula

      Il y a 25 jours

      Tom Scott send 10 messengers or more so that the probabilities are in your favor and then attack, it’s likely that at least one will make it, checkmate mate

  2. samkachar


    Il y a jour

    Not bad videos, but having been a computer engineer for many many years now I can say there are many many times huge issues caused by a single person.

  3. Junior


    Il y a jour

    I think the solution to it would be that both of the generals know that the only logical thing to do would be to attack immediately right when they pop into existence, since without doing that it would be unsolvable.

  4. jrw


    Il y a jour

    Why would anyone order food to their home when they can cook a good meal in half the time for 1/10th the cost?

  5. Sdsdfdu


    Il y a jour

    "a single human error is never the root cause" Didn't Cloudflare's servers break all because of one single regular expression?

  6. Stanley Wilcox

    Stanley Wilcox

    Il y a 3 jours

    My solution which is dumb but would probably work. When each general thinks they’ve received a lot of acknowledgments, say 7 or 8, they just go.

  7. tristan 123455

    tristan 123455

    Il y a 3 jours

    Why did I read the title as genitals lmao...

  8. Thomas Birtles

    Thomas Birtles

    Il y a 3 jours

    I’d just send a messenger to the other general, and tell him to send a messenger at a specific time to confirm the time to attack, then both parties would send a messenger.

    • 007 Dragon

      007 Dragon

      Il y a 2 jours

      I'm not sure if I understand you correctly, but how would General B sending a messenger at a time specified by General A help? When the messenger sent by General B arrives on time exactly as General A expected, General B still wouldn't know if the messenger got through. This is a problem because at this moment, General B does not know whether General A knows that General B knows what time to attack. IF General A does not know that General B knows what time to attack, General A will not attack at the planned time. P.s. it also does not help to send both messengers at the same time, as one of them will not have any new useful information to pass on / transmit. Sorry if this was confusing, feel free to clarify your idea if I misunderstood it:)

  9. Jason Gilliland

    Jason Gilliland

    Il y a 4 jours

    The real problem is that you need at least 5 more armies or you'll never conquer Byzantium!

  10. Ewan Biesinger

    Ewan Biesinger

    Il y a 4 jours

    What if they need the messenger to come back so they know that the message has received

  11. Anirudh Panguluri

    Anirudh Panguluri

    Il y a 6 jours

    Says certain delivery app in beginning just a couple seconds later shows news articles accusing deliveroo of unethical practices.

  12. Nate Youmans

    Nate Youmans

    Il y a 6 jours

    Could army A send two messengers over then at the halfway point, one of them turn back to give army A the all-clear, while the other messenger delivers the message?

  13. Desu Vult

    Desu Vult

    Il y a 6 jours

    A. Send a message announcing a time of attack and ask for them to send a messenger back as proof B. Sends a message back saying that they've read the message A. Send a message announcing that the decision is final and to send a messenger back as proof, but this time without expecting a response. If you get a message back, then you just attack at the determined time A and B are the 2 generals

  14. Kuriii


    Il y a 7 jours

    Just send three, if one makes it, the B sends another back, if that one makes it the other sends one back. Then they know they both recieved it and the time is right.

  15. Vikrant Panday

    Vikrant Panday

    Il y a 8 jours

    Well I mean if you have three acknowledgements I think it's fair to assume the other got the message. If A send B a message then A wont know B got the message but if they did and sent an acknowledgment back then A got the message but B doesn't know that. So now both A and B know to go at 8 since As the one that made the message and also received an acknowledgment and B got the message and sent it back but even if they didn't know A got it, A still was the one that made the time so they'd go anyway. Just to be safe, A can send another acknowledgment and if B gets it, they'll know both sides are going to go at 8.

  16. Yoovie


    Il y a 9 jours

    Mans looks like the hobbit

  17. ChokeNation


    Il y a 9 jours

    what about quantum entaglement? uwu

  18. apc55 English French

    apc55 English French

    Il y a 9 jours

    Smoke. Done.

  19. nikoladd


    Il y a 10 jours

    Here's a computer science suggestion: Use transactional promise driven model and thus make your confirmations explicit. In the same way actual payments work.(i.e. reserve and confirm) While the theoretical problem has no guaranteed solution the practical problem does have reasonably guaranteed solutions and that app was poorly designed.

  20. Viking Ninja

    Viking Ninja

    Il y a 10 jours

    That example doesn't seem to work because they would just need A to tell B 8pm, B acknowledges, then A acknowledges. Both armys know the other knows to attack at 8pm.

    • Michael Betts

      Michael Betts

      Il y a 8 jours

      What if A's acknowledgement never gets to B. B doesn't attack because it wasn't acknowledged, and A attacks because it was acknowledged. The problem is not knowing the time. It is that there is no way for both parties to be 100% certain that the other party is certain, and will attack. One "solution" (stuff like TCP) is A sends B an initial message repeatedly until it receives an acknowledgement, and B then starts sending acknowledgements to A, until A's response is received. Every time A receives a return message from B it responds that it received the acknowledgement. B knows that the chain is over with the final message, and A knows that it is over when it stops receiving acknowledgements from B, but this could also happen if every acknowledgement messenger from B was killed. In the real world it is unlikely that every messenger from B would be "killed" via some random chance and not some detectable error in the connection, but it could happen if something like a microwave being turned on interferes with a wireless connection, and A is programmes to think it can close the communication after 5 seconds without a response, and other traffic is still getting through.

  21. Konstantin Führ

    Konstantin Führ

    Il y a 10 jours

    I actually came up with a better solution : Dont attack and dont make war at all :D.

  22. Wreck-It Rolfe

    Wreck-It Rolfe

    Il y a 10 jours

    Imagine paying again after it's said you've already paid.

  23. T C

    T C

    Il y a 11 jours

    dont show up with two armies, there done.

  24. Luner Link

    Luner Link

    Il y a 11 jours

    just send 1 person from each general at the same time

  25. Δημήτρης Ντάβος

    Δημήτρης Ντάβος

    Il y a 11 jours

    what if they walk to the castle? the other side will see them and walk aswell

  26. X.Illuminati.XGamer Productions

    X.Illuminati.XGamer Productions

    Il y a 11 jours

    Possible solution to the Two General Problem. One general sends two messengers to the other general. One messenger stays back before it passes the castle, and the other messenger passes the castle. The messenger that stayed back will watch the other messenger pass the castle, and will be able to tell if the messenger passing the castle has been killed or has safely passed the castle. The messenger that passed the castle would have a time for the generals to attack. The messenger that watched would report back to the general who had sent the two.

  27. WalrusWarlord


    Il y a 12 jours

    Have both go at the same time, and meet in the center, thus letting them both confirm a time, and success

    • Michael Betts

      Michael Betts

      Il y a 8 jours

      And then one gets killed walking back and the other doesn't see it. Also that isn't solving the two generals problem, because it's a computer science problem, and so there is no middle, the castle represents anytuing with a non 100% success rate, like a wireless connection between two computers, that could be broken temporarily by noise from something else, like a microwave for example.

  28. Like a Bossk 627

    Like a Bossk 627

    Il y a 12 jours

    Can we get an f for our fallen messengers

  29. D Parker

    D Parker

    Il y a 12 jours

    I was working at a burger restaurant at the time that this issue was happening. 7 drivers arrived with the request for the same meal. You were smart for recognizing this issue initially and ordering one order

  30. Catriona


    Il y a 12 jours

    Best solution: Ignore the generals and go to the local pub for some food. :P

  31. Combine Echo

    Combine Echo

    Il y a 12 jours

    Morse code via smoke

  32. Jesus From Hyrule

    Jesus From Hyrule

    Il y a 13 jours

    I what if u send someone with one person behind and another behind them etc. so that when one gets confirmation they can give the army info right before the others get to The Valley ? I can’t quite explain

  33. Konstantin Führ

    Konstantin Führ

    Il y a 13 jours

    Solution for the problem is : arrange a certain time /sun stand ( other certain events that are global and recognizable to both armies ) and trust ;).

  34. Wood Kidneys

    Wood Kidneys

    Il y a 13 jours

    Realistically, couldn’t the other general just fire off a cannon or two in acknowledgement to the letter? I understand I am ignoring the computer science portion of this, but I came here for generals and armies and I will leave on those terms.

  35. InfinityBoss


    Il y a 13 jours

    Possible solution: One general could send a letter saying what time to attack. It would also say to shoot a flaming arrow in the air if they got the message and if they agree. If one general sees the arrow then the other would also shoot an arrow signaling that they both agree to attack at a specific time.

    • OneObjective


      Il y a 10 jours

      The problem operates under the assumption that the two armies cannot actually see eachother

  36. Random Ashe

    Random Ashe

    Il y a 13 jours

    Surely after 300 messengers confirming it, I don't REALLY need to confirm the 301st.

  37. William Klueg

    William Klueg

    Il y a 13 jours

    The two generals problem might be solved by sending a letter every day for a thousand days that says "Once every day for the next one thousand days (more or less depending on how arbitrarily difficult the valley is to pass) send a letter in confirmation of this letter. Mark down instances of letters getting through in your correspondence. On a specific date (at least 1,000 days in the future) we will attack, pending your confirmation." If it is reasonably possible for a letter to get through the dangerous valley this will work. If it is not then no coordinated attack is possible and no attack will take place.

  38. Kyle


    Il y a 14 jours

    I was like signal fires

  39. E030E03


    Il y a 14 jours

    Using flags in the general problem is badically using quantum entanglement

  40. Ay lmoa

    Ay lmoa

    Il y a 14 jours

    ...There is castle in the middle of the valley... *Sun Tzu left the group*

  41. canis pugnator

    canis pugnator

    Il y a 14 jours

    Could the general write we will attack at 12pm light a fire If you received it or we will not attack

  42. Red Ace

    Red Ace

    Il y a 14 jours

    Clicked this video genuinely thinking this was a hypothetical war paradoxical scenario, like if The Metatron and Vsauce2 collaborated or something. It's apparently not. I can't say I disliked it.

  43. roftar


    Il y a 14 jours

    Didn't they create war horn for that exact purpose?

  44. Tobey


    Il y a 14 jours

    What if I actually wanted to order the same thing twice in a short ammount of time?

  45. azurephantom100


    Il y a 15 jours

    my phone's messenger app is bugged where it will receive the same text message from someone over and over again. i didnt know about the two generals problem till now. though i figured out that is what was happening my phone. it was getting the message but the "i got it" signal wasnt going through so the other person's phone kept sending the message it didnt show for them but i would get the same text more then 20 times within a few seconds

  46. MadHatters7120


    Il y a 15 jours

    I thought this would be a historical/military themed video judging by the title and the thumbnail.

  47. Michael van Panhuys

    Michael van Panhuys

    Il y a 15 jours

    but the armies have the high ground, shouldn't they easily be able to win?

  48. Jblockminer MC

    Jblockminer MC

    Il y a 15 jours

    The solution to the problem of the two generals is simple, just have one army advance very slowly so the other army can easily see it’s going to attack and join the fight in time.

  49. catman 15

    catman 15

    Il y a 15 jours

    wht dont the generals just send a menssager in a route that doesnt pass right in the place they are trying to counquer

  50. TheDeadlypanda 12

    TheDeadlypanda 12

    Il y a 15 jours

    Why doesn't the messanger return?

  51. Sezlych yeeyee

    Sezlych yeeyee

    Il y a 15 jours

    wait just send multiple messengers with the same thing

  52. Leonardo Brito

    Leonardo Brito

    Il y a 16 jours

    But and if an army 1 send a messenger to army 2, then back to the middle of the valley with a messenger of army 2, then the two messegers go to oposite sides with the 8PM proposed time? Both messengers knew the other were not killed, because they left the middle spot seeing the other, and if both were attacked and die any army will attack, because they dont recieve the time of attack, so its just send another messenger and repeat until the messengers dont die...

  53. Brian Roden

    Brian Roden

    Il y a 16 jours

    You only need to stop at 5

  54. Snoop Dogg

    Snoop Dogg

    Il y a 16 jours

    Why not just use smoke signals?

  55. Derek Whittom

    Derek Whittom

    Il y a 16 jours

    I like this. Got into an argument with a coworker once about a similar situation, where the logic had thought there was a failure, but there wasn't.

  56. King Le

    King Le

    Il y a 16 jours

    Speaking about protecting your information from hackers and glitches I’d like to talk about today’s sponsor Nord VPN.... what’s that? Today’s sponsor is dashlane?

  57. Miles Mitchell

    Miles Mitchell

    Il y a 16 jours

    It's like when you go to print, nothing prints, hit it again, and repeat. Printer needs paper...boom 50 sheets

  58. davkrod


    Il y a 16 jours

    I had this happen in Australia last month. I ordered some home delivery alcohol for a party ($103) using PayPal. A message appeared (PayPal) saying the order could not be completed. Please check bank details. I tried again...same response. I then took my time checking my details. All appeared OK. Tried again, same result. I then contacted the merchant. They were very helpful, and contacted PayPal directly. 20 minutes later they called back saying all had been fixed and they had manually put the order through. It would be delivered in approximately 1 hour. It actually arrived in 20 minutes. (Woo Hoo!). The next day I discovered all 4 payments had gone through. I also had a message from PayPal saying refunds had been issued for the 3 extras. All parties were very helpful. My main complaint was the refunds took over a week to come through. (3 × $103). I really needed a drink after this, but this time I drove to the bottle shop and paid cash. 🍻🍺😎

  59. José Coronado Nieto

    José Coronado Nieto

    Il y a 16 jours

    I have an idea: The generals make a path out of the harm and then they plan

  60. A-DrewG


    Il y a 16 jours

    Now I know nothing about this company and from what I heard about the whole bad treatment of its employees they seem like assholes but it isn't the company's fault when there are idiots who placed an order, got a rejection message, and then continued placing messages. I mean bugs like this can happen all the time. Thats why I recommend if you ever placed an order and get a payment declined then either check your bank account and see if the payment went through, or check with the app to see if the payment did go through, only the message was bugged. Then the company gets absolutely flooded on its customer service line and now people hate that they have to wait. Like jesus christ the idiocy of customers.