Skip to content

Instantly share code, notes, and snippets.

@harding
Last active January 2, 2023 19:45
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save harding/1ce496734412f188639f4663fde8cf8a to your computer and use it in GitHub Desktop.
Save harding/1ce496734412f188639f4663fde8cf8a to your computer and use it in GitHub Desktop.
Reply to journalists about BIP148 network disruption

Hi Dave, I found your name among those contributing to the Bitcoin code. Would you be willing to field a question or two about the significance of this potential Bitcoin network outage?

https://bitcoin.org/en/alert/2017-07-12-potential-split

I'm happy to answer questions by email, but please note that I can only speak for myself. I don't speak for the Bitcoin project, Bitcoin.org, or any other Bitcoin project, and nobody can speak for Bitcoin any more than someone can speak in general for something like gold or the Internet.

I'm trying to figure out why it may happen. Is it planned maintenance, [or] something else?

Something else.

There's a proposal to correct a long-time deficiency in Bitcoin. That fix is bundled with a number of improvements which were convenient to make at the same time. The proposal is called "segregated witness" or "segwit" for short.

The development team for segwit, called Bitcoin Core, released it in late October 2015 with an activation method used for a previous successful Bitcoin upgrade. The method required Bitcoin miners signal that they support segwit; when 95% of mining capacity signaled their support within any of 26 scheduled two-week periods, segwit would activate.

Miner activation of Bitcoin upgrades is not required, but it does provide the least disruptive way known to make upgrades.

For a long time, no more than about 35% of miners signaled support for segwit. It's not clear to me why more miners didn't signal support; I have theories, but I don't want to mix them in with the bare facts.

After several months of segwit stuck at 35%, someone proposed we use a different activation method for segwit---one that didn't rely on miners. They called their method a "User Activated Soft Fork (UASF)" and pointed to a number of historic occasions where similar mechanisms were used to upgrade Bitcoin from 2009 to 2012.

A UASF is a boycott on steroids. Starting at a particular time (or other signal), a group of users boycotts any mining done by miners who haven't upgraded. By itself that would probably be ineffective, as most boycotts are, but the design of Bitcoin means that if you boycott a miner you also boycott everyone else who uses that miner or anything derived from that miner.

It's like being able to boycott not just a business but also all of their customers, the people the customers pay, the people those people pay, and so on.

That's a powerful advantage to the boycotters Eventually, everyone is forced to either go along with the boycotters or to cut them out of the economy. That's what's happening August 1st at 00:00 UTC: a UASF is proposed that will boycott any miners who don't signal support for segwit.

Now, if the USAF had near-universal support from the Bitcoin userbase, it would be a sure thing. There would be no disruption because miners could only be part of the economy if they upgraded. If the UASF had near-zero support, it would also be a sure failure as nobody would pay attention to the loonies.

Unfortunately neither of those happened. There's a moderate amount of vocal support for the UASF among Bitcoin's most active users on social media but it's not overwhelming support.

That means when the UASF starts on August 1st, we have to wait and see whether or not the people who say they support the UASF actually put their money where their mouth is and refuse to accept bitcoins from any boycotted miner or anyone associated with that miner.

Until the rest of us who aren't involved in the UASF know whether or not they've won, we have to be very careful about accepting bitcoins. If we accept bitcoins from someone who is boycotted and the UASFers win, that bitcoin will disappear from our wallet. The reverse is true; if we accept a bitcoin from a UASF supporter and they lose, that bitcoin could also disappear from our wallet.

Note that any bitcoins which are marked as "confirmed" in a wallet before the start of the UASF are completely safe.

It's a rather awful situation. Unfortunately the only advice we can give to users is in the notice, which is to stop using Bitcoin on July 31st until we know whether or not the UASF succeeded.

There are a million more details I can provide; please feel free to let me know if you have any questions.

Thanks,

-Dave

One question: UASF and BIP 148...are they the same thing?

BIP148 is an instance of a UASF, and BIP148 is the USAF involved in this situation.

There have been previous UASF-like events, although the most similar to the current situation was BIP16 in early 2012[1] which had a much larger share of mining support, so was less disruptive.

-Dave

[1] https://github.com/bitcoin/bips/blob/master/bip-0016.mediawiki

Hi David,

I am a journalist with The Associated Press and am reporting on the upcoming soft-fork. I was told by bitcoin.org website maintainer Will Binns that you had written the post.

That is correct, although please note that Will has made a few edits since then (the bottom of the post has a link to the complete edit history).

Do you have a moment to discuss why you wrote the post (

I'm happy to correspond by email. Here's a public copy of a response I wrote to another journalist that may provide some useful background information:

https://gist.github.com/harding/1ce496734412f188639f4663fde8cf8a

In addition, let me repeat here the beginning of my response to him: please note that I can only speak for myself. I don't speak for the Bitcoin project, Bitcoin.org, or any other Bitcoin project, and nobody can speak for Bitcoin any more than someone can speak in general for something like gold or the Internet.

are there not enough people signaling support for the new system?

There's one group (miners) who can activate the change through signaling; not enough of them are signaling to activate, although many of them have soft-committed to signaling in the near future (it's not certain that they will though).

There's another group (BIP148 supporters) that plans to boycott the non-signaling miners unless they signal. It's this group that has set the August 1st 00:00 UTC deadline.

The problem is that we don't know how many BIP148 supporters there are. If we knew there were a lot, we'd know their boycott would be effective. If we knew there were only a few, we'd know their boycott would fail. Our best guesses fall in the range where there could be either too few, so they'll fail, or just enough, so they will succeed.

The email linked above goes into more detail about this.

Is a bifurcated system likely?

It's quite possible that there will be a temporary split lasting several hours starting 8/1 00:00 UTC. That has happened before in Bitcoin, for a different reason, most notably in March 2013[1].

An extended split is much less likely, but not impossible. We won't really have a good grasp on the situation until a bit after 8/1 00:00 UTC when both sides will have to invest non-recoverable resources into their positions rather than just talking.

If you have any more questions, I'll be happy to answer them by email.

Thanks,

-Dave

[1] https://github.com/bitcoin/bips/blob/master/bip-0050.mediawiki

Thanks David,

This helps explain a lot. I want to be sure of something:

Are the entities on this list part of the boycott? http://www.uasf.co/

In short, yes.

Longer: please note that "boycott" is just how I'm attempting to describe the situation in plain English. In Bitcoin, we usually say "fork", "soft fork", or "user activated soft fork (UASF)" in order of specificity.

Also, those entities have only said that they will be part of the fork. To actually support the fork, they have to risk money (bitcoins) starting 8/1 00:00---which is something I suspect many won't do unless they think victory is assured.

This is part of the problem we have predicting outcomes: we don't know how many people will follow through with what they promised.

Or is there a separate list with members of the boycott group?

The other major list is here:

https://en.bitcoin.it/wiki/Segwit_support

This particular event is the BIP148 column. This is not a list of who claims they will risk money but rather a list of opinions about the validity and reasonableness of various competing proposals.

There are also a large number of BIP148 supporters on Twitter putting "UASF" in their Twitter profile name:

https://twitter.com/search?f=users&vertical=default&q=UASF&src=typd

Do you speak for the group or are you part of it?

Neither. I've objected to BIP148 for quite some time (e.g. [1]) but I'm also not affiliated with the miners who haven't signaled support for segwit.

My plan is to follow the same instructions in the warning post that I provided for other users, which is not to use Bitcoin until the situation is resolved. BIP148 supporters and miners opposing segwit on 8/1 00:00 UTC will both be using Bitcoin in a way where they can lose money if their side loses.

-Dave

[1] https://twitter.com/hrdng/status/869360246501847042

Also, I’d like to ask why the warning does not reference ‘The New York Agreement’ which appears to make SegWit2x the solution to which many participants agree.

The warning does not list segwit, BIP148, USAF, or any other specific term since it's focused on helping inexperienced users secure their bitcoins, so it wolud be inappropriate to mention segwit2x. It does however allude to the disruption that segwit2x may cause:

"Note: there is a chance a milder level of disruption could start
between now and Mon Jul 31 2017 20:00:00 GMT-0400 (EDT). If that is
the case, this post will be updated with details."

If the first part of segwit2x activates before 8/1 00:00 UTC, then there will be no UASF/BIP148 fork. However, segwit2x will likely disrupt the network itself, although with almost zero risk of producing a permanent split.

Right now the status of the segwit2x release is unclear. 80% of mining capacity needs to signal support for it to get started but currently (I just checked) 0% are signaling (probably because they're all supposed to start signaling at once on 7/21).

Let me know if you need more information,

-Dave

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment