Using a server just moves the problem to a different channel it does not remove it.
You can design a practical protocol between two parties that actually works based on a large number of messages. Let’s say the generals can exchange 100 messages each of which has an independent 80% chance of message failure. That sounds really bad.
However, if the protocol is I will attack after receiving 20 messages or I will flip a coin once for each message received and attack on the specific date if even a single head shows up.
Now in your example if they receive 13 conformations they can assume there is at minimum a 99.98% chance the other party is going to attack.
There are several ways to improve the protocol based on a host of factors. But, it really demonstrates the difference between theory and practice.
You can design a practical protocol between two parties that actually works based on a large number of messages. Let’s say the generals can exchange 100 messages each of which has an independent 80% chance of message failure. That sounds really bad.
However, if the protocol is I will attack after receiving 20 messages or I will flip a coin once for each message received and attack on the specific date if even a single head shows up.
Now in your example if they receive 13 conformations they can assume there is at minimum a 99.98% chance the other party is going to attack.
There are several ways to improve the protocol based on a host of factors. But, it really demonstrates the difference between theory and practice.