LearnBitcoin

Bitcoin Dev Archive 2024

Network partition recovery

3 messages, 14 to 21 Jun 2024. Started by Tao Effect.

Tao Effect, Ethan Heilman, Peter Todd

Permalink Original thread on gnusha.org

Tao Effect permalink original

What work has been done on recovering from a network partition?

The day is fast approaching when Bitcoin could be split in two not by a purposeful fork, but because the Internet is split in two.

Have Bitcoiners gamed this out? What happens when the Internet reconnects? Do we throw out half of the transactions? Or is a merge possible? Can it be done automatically?

- Greg
Ethan Heilman in reply to Tao Effect permalink original
Quoted text (1 line)
> Have Bitcoiners gamed this out?

Not that I am aware of.

Short term partitions (10 to 30 minutes) would likely not be noticed by most users. Long term partitions (1 day to 1 week) would likely cause relying parties to find non-internet mechanisms to communicate blocks and transactions.

If say 20% of the mining power was stuck in a partition, the miners in that partition would likely stop mining once they realized they were partitioned because they would understand they would lose all their rewards when the partition stops. Likely people in the partition would no longer respect confirmations made by miners in the partition because those confirmations will be reversed when the partition ends.

It seems likely that parties (miners, relying parties) in the partition will attempt to communicate outside the partition to interact with Bitcoin.

The issue becomes much trickier if the partition, partitions mining power exactly into 50%. It is unlikely that if the internet has a long term partition it will exactly split the mining power.

Quoted text (1 line)
> What happens when the Internet reconnects?

"Longest" chain wins.

Quoted text (1 line)
 > Or is a merge possible? Can it be done automatically?

Some DAG chains do allow to two forks to be merged automatically including resolving double spends. Adding this functionality in Bitcoin would likely be the biggest consensus change in the history of Bitcoin.

On Sat, Jun 15, 2024, 6:11 PM Tao Effect <contact@taoeffect•com> wrote:

Quoted text (20 lines)
> What work has been done on recovering from a network partition?
>
> The day is fast approaching when Bitcoin could be split in two not by a
> purposeful fork, but because the Internet is split in two.
>
> Have Bitcoiners gamed this out? What happens when the Internet reconnects?
> Do we throw out half of the transactions? Or is a merge possible? Can it be
> done automatically?
>
> - Greg
>
> --
> You received this message because you are subscribed to the Google Groups
> "Bitcoin Development Mailing List" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to bitcoindev+unsubscribe@googlegroups•com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/bitcoindev/CC066457-A396-4680-8F11-F013E5EFDD1E%40taoeffect.com
> .
>
Peter Todd in reply to Tao Effect permalink original

On Fri, Jun 14, 2024 at 02:31:42PM -0700, Tao Effect wrote:

Quoted text (5 lines)
> What work has been done on recovering from a network partition?
>
> The day is fast approaching when Bitcoin could be split in two not by a purposeful fork, but because the Internet is split in two.
>
> Have Bitcoiners gamed this out? What happens when the Internet reconnects? Do we throw out half of the transactions? Or is a merge possible? Can it be done automatically?

Given how little bandwidth it takes to synchronize blocks, and the enormous financial incentives to solve this problem, it's unlikely that an internet split would result in a long term network partition. It's just too easy to fix the split through technologies like satellite internet, amateur radio, Blockstream satellite, pigeons, etc. If the event leading to the split manages to defeat all these mechanisms on a large scale, there's a good chance that Bitcoin is the least of our worries...

Anyway, transactions in blocks that have been reorged out can be mined in subsequent blocks so long as there are no conflicts. In practice, this will happen automatically.