<p>Nakamoto Consensus has some properties that are superior to BFT algorithms. (It also has some properties that are inferior, but that's another story). </p>

<p>First, BFT algorithms assume a central authority picks who the participants are. NC, on the other hand, allows anyone to attempt to win the next round.</p>

<p>Second, BFT algorithms generally require 2/3 + 1 (e.g. 67%) of the participants are honest. NC sets a lower threshold of 1/2 + 1 (e.g. 51%). That's because NC's PoW prevents a node from broadcasting two messages at once. </p>

<p>Finally, NC has the interesting attribute that the moment a miner "wins", they also simultaneously choose the transactions they are going to include on the block. This means there is no window of opportunity for an attacker to attempt to influence the winning miner to break the rules. </p>

<p>Note that Paxos is not a BFT algorithm. Paxos solves for stop-fail failures. The worst a node can do is stop working. Paxos does not solve for "byzantine" failures, where a node can try to say two different things. </p>

CC BY-SA 4.0
2019-01-09T04:42:15.377Z
2019-07-05T23:05:48.440Z
2019-07-05T23:05:48.440Z
Yaoshiang
<p>Consensus participants are not known ahead of time, so you don't know whom to listen to and whom to ignore. Also identities are extremely weak in Bitcoin (miners don't have identities at all, users usually just a cheap keypair), so sybil attacks (<a href="https://en.wikipedia.org/wiki/Sybil_attack" rel="nofollow noreferrer">https://en.wikipedia.org/wiki/Sybil_attack</a>) are cheap.</p>

CC BY-SA 3.0
2018-03-16T11:23:21.617Z
2018-03-16T11:23:21.617Z
Sukrim
<p>Proof-of-work creates a relation between a miners ability to vote on what the next block should be, and a real-world expense (electricity costs). You cannot spoof proof-of-work results, so you cannot spoof the network by pretending to do work that you didn't actually do. </p>

<p>If there was no cost to running a 'mining node' in the network, then what would happen when an entire Amazon server warehouse worth of nodes join the network? You need a method to defend against sybil/ddos attacks.</p>

<p>To answer your points:</p>

<ul>
<li>taking time is essential, it means miners are working to solve the next block. Their investment is very closely related to the network security. More investment = more hashpower = more difficult to change the history = more security.</li>
<li>I think the leader in a multi-paxos environment could be paid something like a block reward</li>
<li>This is true, it sometimes happens and leads to an 'orphaned block'. In relation to your first point, shorter blocktimes actually lead to higher orphan block rates, due to a higher chance of two miners finding their own valid blocks within a short timespan of eachother. </li>
</ul>

<p>In relation to Paxos, what I am reading about multi-paxos says that a leader node needs to be trusted, so it seems a level of trust is required in these systems. Paxos systems also hold a state, while the bitcoin blockchain is stateless, so that is a difference in security/failure modes as well. </p>

CC BY-SA 4.0
2019-02-20T23:14:23.027Z
Please don't edit spam to remove the links, like you did on [this post](/q/84769). Doing so makes it harder to appropriately deal with the spam post and results in the spam existing on the site longer, along with giving the spammer the opportunity to revert the edit in order to remove any spam flags cast on the edited version (which they are likely to do, just because you removed the spam content). Please see: [Should spam posts be edited?](//meta.stackexchange.com/a/110031) [Please ping me (`@Makyen`) once you read this, so I can delete it, as it has nothing to do with your answer here.]
Makyen
CC BY-SA 3.0
2017-11-13T12:51:42.017Z
2017-11-13T12:51:42.017Z
chytrik
<p>Any solution to the Byzantine General's Problem can be used as a consensus method to base a distributed ledger on.</p>

<p>Why then, did Satoshi Nakamoto choose for the super-expensive (in electricity and CPU cycles) Proof-Of-Work?</p>

<p>I can think of these reasons:</p>

<ul>
<li>Proof of Work takes time, which means that blocks take time. (But nowadays this is actually a drawback?)</li>
<li>Miners are paid out by the PoW. (But couldn't this work in a Multi-Paxos environment as well, where basically all miners would like to become leader for the next round?)</li>
<li>A Proof-of-Work chain will still work if the network netsplits into two pieces. This will create separate blocks in each half of the network, actually being a problem when the two halves are joined again (because then one of the two chains is discarded, which, if the netsplit took multiple minutes before healing, means that people and external systems might have acted based on their now-invalid balances.)</li>
</ul>

<p>Clearly these reasons are not good enough. So what real reasons are there to use Proof-of-Work over e.g. Multi-Paxos or another 'classical' solution to the Byzantine Generals Problem?</p>

CC BY-SA 3.0
2017-11-13T12:51:04.863Z
Isn't Byzantine generals problem unsolvable? https://en.wikipedia.org/wiki/Two_Generals%27_Problem
croraf
CC BY-SA 3.0
2017-11-13T17:14:52.500Z
@croraf This is why all BFT systems, including Bitcoin, claim to be _eventually_ consistent. That is: As long as some proper message in the very far future does arrive between nodes, it will be consistent. They are thus only solutions to this restricted version of the problem. The general version is indeed proven to be unsolvable.
Qqwy
CC BY-SA 4.0
2019-07-06T02:20:46.127Z
Bitcoin isn't even eventually consistent, only probabilistically consistent (the chance that a particular state is final approaches 1 exponentially, but never reaches it).
Pieter Wuille
<consensus>
Why isn't 'classic' Multi-Paxos Byzantine Consensus used for public Blockchains?
Qqwy
# Why isn't 'classic' Multi-Paxos Byzantine Consensus used for public Blockchains?

(Asked by: username_0 on 2017-11-13)

Any solution to the Byzantine General's Problem can be used as a consensus method to base a distributed ledger on.

Why then, did Satoshi Nakamoto choose for the super-expensive (in electricity and CPU cycles) Proof-Of-Work?

I can think of these reasons:

* Proof of Work takes time, which means that blocks take time. (But nowadays this is actually a drawback?)
* Miners are paid out by the PoW. (But couldn't this work in a Multi-Paxos environment as well, where basically all miners would like to become leader for the next round?)
* A Proof-of-Work chain will still work if the network netsplits into two pieces. This will create separate blocks in each half of the network, actually being a problem when the two halves are joined again (because then one of the two chains is discarded, which, if the netsplit took multiple minutes before healing, means that people and external systems might have acted based on their now-invalid balances.)

Clearly these reasons are not good enough. So what real reasons are there to use Proof-of-Work over e.g. Multi-Paxos or another 'classical' solution to the Byzantine Generals Problem?

**Tags:** consensus

> **Comments:**
> **username_1**: Isn't Byzantine generals problem unsolvable? https://en.wikipedia.org/wiki/Two_Generals%27_Problem  
> **username_0**: @username_1 This is why all BFT systems, including Bitcoin, claim to be _eventually_ consistent. That is: As long as some proper message in the very far future does arrive between nodes, it will be consistent. They are thus only solutions to this restricted version of the problem. The general version is indeed proven to be unsolvable.  
> **username_2**: Bitcoin isn't even eventually consistent, only probabilistically consistent (the chance that a particular state is final approaches 1 exponentially, but never reaches it).  

---

## 3 answers

### Answer by username_3 on 2019-01-09. Score: 4

Nakamoto Consensus has some properties that are superior to BFT algorithms. (It also has some properties that are inferior, but that's another story).

First, BFT algorithms assume a central authority picks who the participants are. NC, on the other hand, allows anyone to attempt to win the next round.

Second, BFT algorithms generally require 2/3 + 1 (e.g. 67%) of the participants are honest. NC sets a lower threshold of 1/2 + 1 (e.g. 51%). That's because NC's PoW prevents a node from broadcasting two messages at once.

Finally, NC has the interesting attribute that the moment a miner "wins", they also simultaneously choose the transactions they are going to include on the block. This means there is no window of opportunity for an attacker to attempt to influence the winning miner to break the rules.

Note that Paxos is not a BFT algorithm. Paxos solves for stop-fail failures. The worst a node can do is stop working. Paxos does not solve for "byzantine" failures, where a node can try to say two different things.


---

### Answer by username_4 on 2018-03-16. Score: 2

Consensus participants are not known ahead of time, so you don't know whom to listen to and whom to ignore. Also identities are extremely weak in Bitcoin (miners don't have identities at all, users usually just a cheap keypair), so sybil attacks (<https://en.wikipedia.org/wiki/Sybil_attack>) are cheap.


---

### Answer by username_5 on 2017-11-13. Score: 0

Proof-of-work creates a relation between a miners ability to vote on what the next block should be, and a real-world expense (electricity costs). You cannot spoof proof-of-work results, so you cannot spoof the network by pretending to do work that you didn't actually do.

If there was no cost to running a 'mining node' in the network, then what would happen when an entire Amazon server warehouse worth of nodes join the network? You need a method to defend against sybil/ddos attacks.

To answer your points:

* taking time is essential, it means miners are working to solve the next block. Their investment is very closely related to the network security. More investment = more hashpower = more difficult to change the history = more security.
* I think the leader in a multi-paxos environment could be paid something like a block reward
* This is true, it sometimes happens and leads to an 'orphaned block'. In relation to your first point, shorter blocktimes actually lead to higher orphan block rates, due to a higher chance of two miners finding their own valid blocks within a short timespan of eachother.

In relation to Paxos, what I am reading about multi-paxos says that a leader node needs to be trusted, so it seems a level of trust is required in these systems. Paxos systems also hold a state, while the bitcoin blockchain is stateless, so that is a difference in security/failure modes as well.

> **Comments:**
> **username_6**: Please don't edit spam to remove the links, like you did on [this post](/q/84769). Doing so makes it harder to appropriately deal with the spam post and results in the spam existing on the site longer, along with giving the spammer the opportunity to revert the edit in order to remove any spam flags cast on the edited version (which they are likely to do, just because you removed the spam content). Please see: [Should spam posts be edited?](//meta.stackexchange.com/a/110031) [Please ping me (`@username_6`) once you read this, so I can delete it, as it has nothing to do with your answer here.]  

---

