Don't be scared though since this serious CVE bug and security vulnerability is being intensively reviewed by the technical community. If you run and rely on the most recent version of a Bitcoin Core full-node then you should be 99% safe (but for the 1% chance)!

To be clear, you will need to be running two full-nodes: (1) legacy Bitcoin Core and (2) BIP 148 enforcing Bitcoin Core fork. We assume you have an understanding of best practices as outlined in the Glacier Protocol.

To help you protect your money, this guide will be frequently updated with the latest developments.

Share this guide with your friends by directing them to: www.uasfguide.com

What is BIP 148?

Bitcoin Improvement Proposal (BIP) 148 is a User Activated Soft Fork (UASF) that requires that miners signal for Segregated Witness (SegWit). SegWit readiness is signalled by miners by setting the version number of blocks mined.

Signalling this bit does not mean miners support SegWit, but is a signal for readiness that miners are ready to enforce the rules.

Miners are still allowed to mine blocks that do not support SegWit and are only required to not mine non-standard blocks that spend SegWit transactions along with not building on top of blocks that do this.

Beginning 1 August 2017, nodes that enforce BIP 148 will reject any block from miners that do not signal SegWit readiness, along with any block that is built on top of a block that does not signal support.

If you want a quick background and reasoning then this piece by the extremely respected open-source Linux kernal developer, Rusty Russell, who has been working on the Lighting Network should hit the spot.

Those pessimistic towards BIP 148

Current BIP 148 Support

What really matters in a UASF situation is which chain the economic actors like users, institutions, exchanges, payment processors, etc. support. There is no easy way to quantify this with a decentralized peer-to-peer network.

What could happen on 1 August 2017?

If miners activate SegWit prior to 1 August 2017 then BIP 148 will not be enforced. All users of Bitcoin will remain on the same chain no matter what client they use.

If miners do not activate SegWit then there may be a chain split. A chain split will mean that some users will see a different set of transactions than others.

If the majority of miners enforce BIP 148 then these chain splits will be temporary and eventually all clients will see the same chain and SegWit will activate for all SegWit compatible clients (0.13.1+ for Bitcoin Core).

If the majority of miners do not enforce BIP 148, users that enforce BIP 148 will diverge from users that do not enforce it.

If the majority of miners do start enforcing BIP 148 at a later date then the legacy chain (without BIP 148 enforcement) may be reorganized once the BIP 148 chain has more work.

The users who are running BIP 148 would be undisturbed, but users running legacy clients may see a large amount of history re-written and could lose funds.

Where can I get more information?

Possible scenarios from BIP 148

BIP148 requires support from the economic majority, particularly exchanges and wallets. If this does not occur, node software supporting BIP148 should not be run after August 1st as it will cause a chain split leading to the abandonment of BIP148.

There are strong economic incentives in the Bitcoin system for nodes to cooperate and remain in consensus to prevent chain splits. If the economic majority is signalling as of August 1st, miners have many incentives to follow along.

Not following along would make it difficult to sell coins mined after August 1st as the blocks would not be accepted by the economic majority. Essentially, miners would be producing an altcoin not recognized by users and exchanges, making them less useful and in lower demand.

Some miners could opt to ignore the BIP148 rule and attempt to split the chain, but this would require a majority of miners who would be out of consensus from the rest of the economic majority.

If a majority of hash power follows BIP148, all nodes will follow the chain regardless of if they are running BIP148. Non-compliant blocks will be orphaned. All SegWit nodes will eventually activate SegWit.

If a minority of the hash power (under 51%) follows BIP148, nodes running BIP148 will be fine, but those not running BIP148 will be out of consensus with the rest of the economy. In this scenario, the more of the economy that runs BIP148, the better.

Miners will find it difficult to sell their coins leading economically motivated miners to start enforcing BIP148.

How do I signal support?

If you operate a full-node then you can signal support with your current software. This is a way you can show support without actually upgrading to enforcing BIP 148 rules.

Many users are alter their node’s user agent string to include BIP148.

To signal #BIP148 on Linux or Mac on your node before binaries are released go to Help --> Debug Window --> Console:

As a Hodler (Long Term Investor)

If a chain split occurs then long term investors will have equal amounts of coins on both sides of the chain.

If a chain split is resolved then they will have their original balance on the unified chain and need to take no actions.

As A Bitcoin Trader

As a trader you will need to find an exchange that supports, preferrably, both the legacy chain and the BIP 148 chain.

Traders may have an opportunity to trade coins from one side to another. If exchanges support both chains then they could sell one and buy on the other.

If sufficient demand exists on the BIP 148 chain, it may encourage miners to mine on that chain, which could eliminate any split.

Traders should excercise caution when trading on the legacy chain as it may be reorganized without warning. Traders should also excercise caution on the BIP 148 chain, as if interest in it is insufficient, it may not hold long term value.

The following is a list of exchanges that have or will support BIP 148.

The list is ordered by date of an unequivocal public announcement for support of BIP 148.

Exchanges Supporting BIP 148

A listing of exchanges here does not imply any endorsement of the quality or security of the service.

The exchange's customers will find the underlying coins, and not any future, derivative or bet, in their account balances, and can trade them exactly as if the two chains exist already!

This would help gauge the economic support for both chains.

Here is an illustrative and exhaustive guidance on how trading will work for customers on an exchange:

Technically, and practically, it works like this:

Starting 1st July 2017, each customer on Exchange ABC will see 3 Bitcoin accounts:

(a) The normal Bitcoin account

(b) An account laballed "Bitcoin-Old-NonSegWit"

(c) An account labelled "Bitcoin-BIP148-SegWit"

By default, a customer having 1 BTC on his account will find the follwoing balances, when he logs in on 1st July 2017:

(a) Bitcoin: 1.00000000 BTC

(b) Bitcoin-Old: 0.00000000 BTC

(c) Bitcoin-148: 0.00000000 BTC

If the customer does nothing special, he can continue trading, withdrawing or loading bitcoins as usual and does not need to change anything. He can just ignore (b) and (c).

Optionally, the customer can move back and forth the balances between (a) and (b) and (c), e.g. as follows:

(a) Bitcoin: 0.60000000 BTC

(b) Bitcoin-Old: 0.40000000 BTC

(c) Bitcoin-148: 0.40000000 BTC

This means, he now has moved 0.4 BTC from his "default" Bitcoin account (a) to his "new" Bitcoin accounts (b) and (c). This kind of account keeping respects the fact that after a chain split, i.e. after 1st August 2017, each Bitcoin that exists before the chain-split will duplicate into one "Bitcoin-Old" and one "Bitcoin-148".

Let's assume that there are two customers on Exchange ABC, call them Alice and Bob, with the following account balances:

Let's assume that Alice and Bob "re-arrange" their accounts in their account settings, as follows:

Now, Alice and Bob can start trading. Let's assume, for the sake of simplicity and ease of understanding, that 1 BTC is valued == 1000 EUR.

Also, trading fees earned by the Exchange operator are assumed to be 0.00% here for simplicity.

Alice and Bob can now place buy and sell orders for Bitcoin-Old (b) or Bitcoin-148 (c), exactly the same way as for normal Bitcoin (a), or for any other crypto-currency traded on Exchange ABC. For example, Alice places a buy-order for 0.25 tokens of "Bitcoin-148" for 300 EUR, and Bob accepts this order. After settlement, their account balances look like this:

After another trade where Alice is selling 0.2 "Bitcoin Old" tokens to Bob for 150 EUR, their balances read:

Now let's assume Alice wants to withdraw 0.7 BTC (0.8 BTC would be the maximum possible in the current situation for her) to her local Trezor wallet. For this she will first "re-arrange" her account (again via account settings) as follows:

She will now withdraw 0.7 BTC:

Alice couldn't withdraw her remaining 0.45 "Bitcoin-148" tokens, because they do not yet exist on any public blockchain. To withdraw them as well already now, she'd either have to sell the 0.45 Bitcoin-148 tokens on the Exchange ABC and buy legacy Bitcoin tokens from that Fiat money, or she'd buy 0.45 Bitcoin-Old tokens to match her "Bitcoin-148" tokens.

Thereafter she could again "re-arrange" her account and then withdraw all the BTC.

Let's assume that no further activity occurs on Alice's and Bob's accounts for the rest of July 2017.

On 1st August 2017, Bitcoin-BIP148 shall activate. As a result, the legacy account balance (a) ceases to exist, and the Bitcoin balances in the customers' accounts read:

As we can see, Bob's former 0.6 BTC was moved (or "re-arranged") to his "Bitcoin-Old" and "Bitcin-148" balance. This reflects the fact that both chains (b) and (c) have the same pre-decessor chain (a).

Now let's assume that first the "Bitcoin-Old" chain grows faster than the "Bitcoin-148 chain", such that there are indeed TWO public Bitcoin blockchains (in the other case we'd have only one common chain, and we'll come to that scenario later).

From this moment on, trading of Bitcoin-Old tokens and Bitcoin-148 tokens on Exchange ABC works like tokens of any other crypto-currency, they are simply treated as what they are - separate chains.

Alice or Bob could e.g. withdraw "Bitcoin-Old" or "Bitcin-148" tokens. Exchange ABC will make sure that no replay attacks are possible when their customers withdraw tokens.

Also, Alice and Bob can load their account balances with new coins. In this case, of course Exchange ABC cannot guarantee that no replay attack will occur. However, for fairness reasons, Exchange ABC will always monitor the receiving address on BOTH chains, and should coins arrive on the "other chain", the received amount will also be credited to the customer's balance, such that no coins get lost when a customer gets "replay-attacked" when loading coins onto his/her account at Exchange ABC.

Now let's consider what happens if one of the two public blockchains disappears - let's look at different possible scenarios:

1.) The blockchain of BIP148 (UASF, SegWit) is not mined at all because of lack of interest, or is slower from the start then "Old-Chain", and gets slower and slower and gets less and less valuation and less and less miners and nodes operate this chain.

At some point, this chain "dies" because no more block is mined on this chain at all.

--> In this case, customer balances for Bitcoin-148 coins will not be withdrawable any more as the chain dies, Exchange ABC will quit support trading its tokens a short time later, and customers will lose their balances for this token, since the coin has become unusable and worthless.

2.) After a "slow start" on 1st August 2017, the tokens of Bitcoin-BIP148 (UASF, SegWit) become more and more valuable, more and more miners hence switch to mine them, the BIP-148 chain hence becomes longer and longer and at one point overtakes the "Old-Non-SegWit-Chain".

At this point, the "Old-Non-SegWit-Chain" reorganises and becomes identical to the "BIP148-SegWit-Chain". As a consequence, the "Bitcoin-Old" tokens cannot be withdrawn any more and cannot be traded any more - they will be displayed "grayed-out" in the account balance view, just for information, and will a few days afterwards be removed from the user accounts altogether.

3.) On 1st August 2017, if from the first moment on, the BIP-148 SegWit chain is faster than the other "Non-SegWit" chain, then no "Bitcoin-Old" chain will be created in the first place, and the customer balance for "Bitcoin-Old" tokens will not be withdrawable.

These tokens, however, will still be tradeable for the first time starting 1st August, because the initial faster block creation of BIP-148 SegWit blocks might well be a result of statistical coincidence, i.e. the "Bitcoin-Old" chain may still turn out faster and longer and fork-off from the BIP148-chain some time later.

Another reason why there don't immediately have to be two parallel chains is that the "Old-chain" will accept BIP148-blocks (because of the SOFT fork characteristics) such that there is no reason to immediately fork-off. However, injection of SegWit transaction into the "Old chain" that look like "anyone can spend" transactions to the "Old-chain miners", as well as old Non-BIP148 blocks that are rejected by BIP148-miners, should sooner cause a chain-split with Old-chain forking off from BIP148-chain, if "old-chain" miner hash power is greater than "BIP148-chain" hash power.

So trading of Old-Chain tokens will be possible for some time (maybe even some days) on Exchange ABC, in expectation that an Old-chain creation may still happen. In case the Old-Chain should indeed fork-off, as soon as it is [10] blocks longer than BIP148-chain, Exchange ABC will recognize the existence of this Old-Chain and will allow withdrawals of "Bitcoin-Old" tokens.

After this moment, the two chains will either coexist forever, or one of the cases 1.) or 2.) will occur at some point in time, sooner or later.

SUMMARY

By opening a fair and unbiased market for directly trading "Non-SegWit-Bitcoin" tokens and "BIP148-SegWit-Bitcoin" tokens well in advance before actual BIP148 activation, a market demand for a SegWit-disabled coin on the one hand, and for a SegWit-enabled Bitcoin on the other hand, can be determined in a fair and reliable way, before SegWit activation on 1st August 2017 happens.

This solves the dilemma that nobody knows in advance of 1st August what the actual market/user demand for SegWit is, because today's miner hashrate is not representing real market demands.