<p>The Byzantine generals problem (BGP) refers to a situation where independent actors need to agree on a common strategy but can't know which actors or information they can trust.</p>
<p>In Bitcoin terms, participants need to verify that a transaction they receive is indeed valid and that the inputs of that transaction are not already spent by a different transaction. The relation between double-spend and BGP lies in the fact that there can be multiple valid parallel chains, and there is no central authority signing off on which is the valid chain. Without knowing which chain everyone else is using, it's impossible to agree on which outputs have already been spent and thus validate your transaction.</p>
<p>Bitcoin's approach to probabilistically solving this problem is to use Proof of Work, which makes it very expensive to produce multiple valid chains. With every additional block added to the chaintip, it becomes more expensive and thus less rewarding to double-spend a transaction.</p>

CC BY-SA 4.0
2022-08-21T23:47:06.007Z
You mention that PoW solves the BGP by helping us know which chain everyone is using. Then you add that without knowing such chain, it's impossible to agree on outputs spent (agreeing on this solves the double-spend problem). You lastly say that agreeing on outputs is necessary to validate a transaction.

But PoW is actually not needed to validate transactions. So I'm now confused on the order of events you outline.
StatsScared
CC BY-SA 4.0
2022-08-22T13:48:38.677Z
@StatsScared how you describe it is not how I structured my answer, though. The order is important. Let me know what still does not make sense in the correct order and I'd be happy to revise where necessary. In short: in order to validate, we need to agree on a valid chain. With PoW it becomes very expensive to create multiple valid (longest) chains, so with each added block we get more confidence.
stickies-v
CC BY-SA 4.0
2022-08-21T16:55:36.060Z
2022-08-21T16:55:36.060Z
stickies-v
<blockquote>
<p>Are the double-spend and the Byzantines general problem related somehow? If yes, how?</p>
</blockquote>
<p>They are the same problem. If you can solve one, you can solve the other.</p>
<p>Imagine you had a solution to the double spend problem. You could then solve the BGP as follows:</p>
<ol>
<li>One general submits a first transaction to the system that can solve the double spend problem.</li>
<li>The general waits the time the system needs to solve the problem.</li>
<li>The general submits a second transaction to the system that can solve the double spend problem that is a double spend of the first transaction.</li>
<li>If the first transaction wins, the generals attack. If the second transaction wins, the generals do not attack.</li>
</ol>
<p>If the system solves the double spend problem such that one and only one transaction confirms, then either both generals will attack or neither will attack, so the system can also solve the BGP.</p>

CC BY-SA 4.0
2022-08-26T09:28:29.717Z
2022-08-26T09:28:29.717Z
David Schwartz
<p>Bitcoin does not solve the Byzantines General problem. Point.</p>
<p>Bitcoin purchases the temporary solution )))</p>

CC BY-SA 4.0
2022-08-21T13:51:06.423Z
This is a technically correctly but completely useless answer.
Pieter Wuille
CC BY-SA 4.0
2022-08-21T08:38:29.380Z
2022-08-21T08:38:29.380Z
amaclin
<p>I’ve read that Bitcoin’s key innovation is solving the double-spend problem. I’ve also read that Bitcoin solves the Byzantine generals problem.</p>
<p>Are the double-spend and the Byzantine generals problem related somehow? If yes, how?</p>

<protocol><doublespend><byzantine-fault-tolerance>
How is the double-spend problem related to the Byzantine generals problem?
StatsScared
# How is the double-spend problem related to the Byzantine generals problem?

(Asked by: username_0 on 2022-08-21)

I’ve read that Bitcoin’s key innovation is solving the double-spend problem. I’ve also read that Bitcoin solves the Byzantine generals problem.

Are the double-spend and the Byzantine generals problem related somehow? If yes, how?

**Tags:** protocol, doublespend, byzantine-fault-tolerance


---

## 3 answers

### Answer by username_1 on 2022-08-21. Score: 2

The Byzantine generals problem (BGP) refers to a situation where independent actors need to agree on a common strategy but can't know which actors or information they can trust.

In Bitcoin terms, participants need to verify that a transaction they receive is indeed valid and that the inputs of that transaction are not already spent by a different transaction. The relation between double-spend and BGP lies in the fact that there can be multiple valid parallel chains, and there is no central authority signing off on which is the valid chain. Without knowing which chain everyone else is using, it's impossible to agree on which outputs have already been spent and thus validate your transaction.

Bitcoin's approach to probabilistically solving this problem is to use Proof of Work, which makes it very expensive to produce multiple valid chains. With every additional block added to the chaintip, it becomes more expensive and thus less rewarding to double-spend a transaction.

> **Comments:**
> **username_0**: You mention that PoW solves the BGP by helping us know which chain everyone is using. Then you add that without knowing such chain, it's impossible to agree on outputs spent (agreeing on this solves the double-spend problem). You lastly say that agreeing on outputs is necessary to validate a transaction.  But PoW is actually not needed to validate transactions. So I'm now confused on the order of events you outline.  
> **username_1**: @username_0 how you describe it is not how I structured my answer, though. The order is important. Let me know what still does not make sense in the correct order and I'd be happy to revise where necessary. In short: in order to validate, we need to agree on a valid chain. With PoW it becomes very expensive to create multiple valid (longest) chains, so with each added block we get more confidence.  

---

### Answer by username_2 on 2022-08-26. Score: 1

> Are the double-spend and the Byzantines general problem related somehow? If yes, how?

They are the same problem. If you can solve one, you can solve the other.

Imagine you had a solution to the double spend problem. You could then solve the BGP as follows:

1. One general submits a first transaction to the system that can solve the double spend problem.
2. The general waits the time the system needs to solve the problem.
3. The general submits a second transaction to the system that can solve the double spend problem that is a double spend of the first transaction.
4. If the first transaction wins, the generals attack. If the second transaction wins, the generals do not attack.

If the system solves the double spend problem such that one and only one transaction confirms, then either both generals will attack or neither will attack, so the system can also solve the BGP.


---

### Answer by username_3 on 2022-08-21. Score: -3

Bitcoin does not solve the Byzantines General problem. Point.

Bitcoin purchases the temporary solution )))

> **Comments:**
> **username_4**: This is a technically correctly but completely useless answer.  

---

