The Byzantine Generals’ Problem
James A. Donald once said, “It is not sufficient that everyone knows X. We also need everyone to know that everyone knows X, and that everyone knows that everyone knows that everyone knows X — which, as in the Byzantine Generals’ problem, is the classic hard problem of distributed data processing.”
A few months ago, I read the above words of James A. Donald about The Byzantine Generals Problem. For nearly an hour on my way home, I struggled to understand it.
It is a hypothetical problem, one that is not as simple as it may look at first. Today, I’ll try to explain this problem in an effort to highlight its significance in the world of Distributed Ledger Technology or DLT for short in the context of achieving consensus on a blockchain network.
Let me begin by rephrasing this problem as a question:
How do you ensure multiple entities, that are far from each other, are in complete agreement on anything they do before any action is taken?
To put it another way, how do different parties find a way to achieve complete consensus?”
Brief History of Byzantine Generals’ Problem
Byzantine Generals’ Problem was first referenced in the paper titled ‘The Byzantine Generals’ Problem’, published in 1982.