Bitcoin Forum
November 03, 2024, 06:19:18 PM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 »
  Print  
Author Topic: [Guide] Handling splits: UASFs, BIP148, etc.  (Read 48567 times)
theymos (OP)
Administrator
Legendary
*
Offline Offline

Activity: 5376
Merit: 13368


View Profile
July 10, 2017, 06:32:40 PM
Last edit: August 18, 2017, 08:01:27 AM by theymos
Merited by ABCbits (1), HabBear (1)
 #1

Although it is very undesirable, it is possible for Bitcoin to split into two non-negligible separate currencies.

Why is this possible? / What causes a split?

There is no actual BTC in your Bitcoin wallet: there are only private keys which are used to unlock and then transfer ownership of BTC stored in the Bitcoin system. BTC never actually leaves the Bitcoin system. A split creates a clone of the original cryptocurrency, but with modifications preventing the two cryptocurrencies from actually being the same; after the split, you cannot send coins from one side of the split to the other. After the split, your private key can be used to unlock your coins on both the original system and the modified system.

It's like if someone got their hands on a copy of the google.com database and created super-google.com starting with the google.com database but with different features. You could use the same login credentials to login at either google.com or super-google.com. But after the clone was created, if you received mail.google.com email, it would not show up at mail.super-google.com, and vice-versa. Similarly, you can use the same private key to spend money on the original currency or the modified currency, but after the split they diverge.

Anyone can create a split. It only requires a few lines of code changes. But splits only matter if people of economic significance actually use the split (ie. they must run the modified software).

Splits happen in the following situations:

 - In a contentious hardfork.
 - In a user-activated softfork (UASF) which lacks both majority mining power at the time of activation and near-unanimous support from the economy. If it has one or the other, then a split does not result.
 - In a BIP9-style miner-triggered softfork where a very large number of miners are lying about their enforcement of the softfork. (Unlikely.)

What happens to my bitcoins in a split?

It's similar to a stock spin-off. You have x BTC beforehand, and afterward you have both x BTC and x "BTC-X". But very importantly, your wallet will not magically know that it is now able to unlock both currencies. If your wallet is not updated to account for the split, then you will only be able to spend one of the currencies, probably the more "status-quo" one. Another possibility is that your wallet could be updated, but only to support a different currency than it would've otherwise, not to support both. It is not unreasonable for wallets to support only one currency, since they really weren't originally designed/intended to support multiple. But if your wallet only supports one of the currencies, then you will usually end up throwing away some or all of the other currency when you next send coins after the split, as a side-effect of the transaction -- this is called "replay".

Value is unpredictable. Like a stock split or spin-off, you'd vaguely expect the value of BTC  immediately before the split to equal the sum of the values of "BTC" and "BTC-X" immediately after the split. But if a split like this is anything close to a 50-50 split (in relation to economic adoption/value, not node or miner adoption), then the whole thing will probably be unbelievably, catastrophically messy, which may result in the combined value crashing. On the other hand, if the minority currency is pretty small and things don't get too messy, the minority side could be speculatively overvalued (similar to altcoins) without affecting the majority side too much, causing the combined value to rise somewhat.

Which side of the split is the real Bitcoin?

That depends on a wide variety of factors, and to some degree it is subjective. The most important factor is which currency people/businesses/exchanges accept: if for example one currency is accepted by 95% of the pre-split economy, and the other is accepted by only 5% of the pre-split economy, then the 95% one is probably truly Bitcoin, and the other one can be considered a Bitcoin-derived altcoin. Note that mining power has very little influence here.

Some might say that both currencies post-split are valid incarnations of Bitcoin, but it is my philosophy that only one Bitcoin can exist at any one time; any uncertainty is only a temporary feature, and at least in hindsight there will be a single unbroken path from Satoshi's original Bitcoin to the current one.

What should I do to secure my bitcoins?

First of all, remove all bitcoins possible from banks/exchanges/"hosted wallets". If you can't export your private keys, then you don't actually control the bitcoins. This is a good idea in general, but it's especially important in case of splits. If you're using a Bitcoin bank, then you will have no control over what happens to your coins. Quite possibly, the bank will end up stealing/losing one of the currencies that you should have access to, either through greed/malice or technical incompetence, and the currency they throw away might well be the only one that ends up having any long-term value.

Possible splits are usually predictable some time in advance (see the next section). If in doubt, avoid sending transactions or trusting received transactions 12 hours before and up to a few days after the split time, and check the forum for more news. If a major split happens, I will very likely make a post and news item explaining how to handle the situation. Coins at rest are not at risk.

Generally, after a split:

 - If you want to completely ignore (ie. discard) one of the currencies, and your wallet is already set up to ignore that currency, then you don't have to do anything.
 - If you want to completely ignore (ie. discard) one of the currencies, and your wallet is set up to support only that currency, then you might be able to change the software's settings after the split, or you might have to switch to different wallet software.
 - If you want to use both currencies at the same time or sell one of the currencies, then you will probably have to follow a somewhat-complicated series of steps possibly involving running some extra software in order to cleanly split your coins and eliminate the possibility of replay.

Note that in the Bcash split on Aug 1, 2017, it was relatively easy to split coins, and the above risks mostly did not apply. This is because Bcash had a feature called replay protection. It is possible for a split to lack this feature, in which case the above more stringent measures are necessary.

About the near future / "SegWit2X"

SegWit is already locked-in in Bitcoin. There is zero doubt that Bitcoin will support SegWit. With SegWit, the max block size will be roughly 4MB.

"SegWit2x", also known by the abbreviation B2X, is a potential split proposal. Despite the name, it has nothing to do with SegWit. It doubles the max block size (under SegWit) from 4MB to 8MB. If its supporters go forward with it, B2X would definitely cause a split. As mentioned previously, if you have x BTC before the split, you'll be technically able to claim x B2X as well after a split. However, B2X lacks replay protection, so it will be more difficult to safely acquire your B2X than it was to acquire your BCH in the Bcash split.

The next time when a split is predicted to possibly happen is block 494,784, sometime in November, which is the fork time currently planned by B2X supporters.

OK wallets

The following wallets give you some theoretical way of exporting your private keys, so they should be safe to hold BTC during any split. Depending on what happens after a split, you may have to export your private keys and use different software, though. (Do not go doing this willy-nilly in a panic, though -- wait for agreement and clear instructions from several sources. There will be no rush.)

The ones in bold are ones that I also tend to like for other reasons. The ones in italic seem to make it difficult to export your private keys, or I particularly dislike them for other reasons.

Mobile
Electrum
Mycelium
Bitcoin Wallet for Android
breadwallet
Simple Bitcoin Wallet
Bither
ArcBit
Coin.Space

Desktop
Bitcoin Core
Electrum
Bitcoin Knots
mSIGNA
Armory
Bither
ArcBit

Hardware
Ledger
Trezor
Digital Bitbox
KeepKey

Web
Green Address*
Coin.Space

* Note for Green Address: You must either use a 2of3 account or have nLockTime transactions emailed to you in the settings. Otherwise you're trusting Green Address too much.

1NXYoJ5xU91Jp83XfVMHwwTUyZFK64BoAD
achow101
Staff
Legendary
*
Offline Offline

Activity: 3542
Merit: 6885


Just writing some code


View Profile WWW
July 10, 2017, 07:26:16 PM
 #2

A couple of corrections

If it succeeds economically, it will activate SegWit in November.
BIP 148 will activate SegWit by November, not necessarily in November.

The next time when a split is predicted to possibly happen is therefore August 1, 2017 at midnight UTC.
Note that the split will possibly happen when the Median Time Past is after August 1st, so the split would likely happen ~1 hour after midnight UTC as the MTP is usually 1 hour behind real time.


You should also include information about Segwit2x which will activate segwit via BIP 91 and then hard fork 12960 blocks after Segwit is activated.

JRonal12
Newbie
*
Offline Offline

Activity: 28
Merit: 0


View Profile
July 10, 2017, 08:01:37 PM
 #3

Wow this really is wild stuff and actually why I cam to the forum.

How do I check to see if my wallet will hold both the currencies? I'll bounce around on their website but does anyone have any pointers? Thanks in advance!
theymos (OP)
Administrator
Legendary
*
Offline Offline

Activity: 5376
Merit: 13368


View Profile
July 10, 2017, 10:07:39 PM
 #4

BIP 148 will activate SegWit by November, not necessarily in November.

Fixed.

Quote
Note that the split will possibly happen when the Median Time Past is after August 1st, so the split would likely happen ~1 hour after midnight UTC as the MTP is usually 1 hour behind real time.

Close enough; better to be early than late.

Quote
You should also include information about Segwit2x which will activate segwit via BIP 91 and then hard fork 12960 blocks after Segwit is activated.

There's no risk of that yet.

How do I check to see if my wallet will hold both the currencies? I'll bounce around on their website but does anyone have any pointers? Thanks in advance!

If you can export your private keys, then it should be possible for you to split the currencies, though in any case it probably won't happen automatically.

1NXYoJ5xU91Jp83XfVMHwwTUyZFK64BoAD
achow101
Staff
Legendary
*
Offline Offline

Activity: 3542
Merit: 6885


Just writing some code


View Profile WWW
July 10, 2017, 11:12:38 PM
 #5

Quote
You should also include information about Segwit2x which will activate segwit via BIP 91 and then hard fork 12960 blocks after Segwit is activated.

There's no risk of that yet.
The activation of BIP 91 itself could cause a chain split since it requires all blocks after it activates to signal for segwit. Since only 80% of the hashrate supports segwit2x, these is a possibility that the remaining 20% won't be signalling for segwit following BIP 91's activation and thus cause a chain fork (their blocks would be invalid without segwit signalling).

Genesis1337
Full Member
***
Offline Offline

Activity: 154
Merit: 100


View Profile WWW
July 11, 2017, 12:58:59 AM
 #6

fantastic post, great job of putting it in layman's terms for people like myself

( ͡° ͜ʖ ͡°)
Quickseller
Copper Member
Legendary
*
Offline Offline

Activity: 2996
Merit: 2371


View Profile
July 11, 2017, 05:01:56 AM
 #7

One might be able to argue that it would be best to not send (and avoid receiving, if possible) any bitcoin immidiately prior to (in order to avoid issues resulting from confirmation delays), and after a split up until it is very clear which "side" of the split is going to succeed.

The combination of the 100 block maturity time and the 2016 block difficulty retarget time give very serious disincentives for the miners to mine on a minority chain for very long because of the risk that a miner may never get to spend their block reward. I believe this will create a cascading effect resulting in an ever-increasing percentage of the miners mining on the majority chain over time.

Even if a (super) majority of the economy supports a minority chain, rational economic actors will eventually abandon a minority chain, in favor of a majority chain due to the long confirmation times, high confirmation cost, and low security (all relative) of the minority chain, possibly provided that certain aspects of Bitcoin are not changed in the majority chain.

The risk is that it may not be clear which chain will be the majority chain because miners may lie, or otherwise change their mind about which chain they will mine on. Also, if a chain has as little as 30% of so of the miners mining, this chain may temporarily appear to have the majority of miners mining because of variance.

A user sending bitcoin on the wrong chain may result in significant financial loss due to the potential for replay attacks, and for accepting a significantly lesser value for your bitcoin than its very short term value.

★ ★ ██████████████████████████████[█████████████████████
██████████████████████████████████████████████████████████████████████
██████████████████████████████████████████████████████████████████
███████████████████████████████████████████████████████████████████
████████████████████████████████████████████████████████████████████
██████████████████████████████████████████████████████████████████
███████████████████████████████████████████████████████████████████
█████████████████████████████████████████████████████████████████████
█████████████████████████████████████████████████████
██████████████████████████████████████████████████████████████████
█████████████████████████████████████████████████████████████
████████████████████████████████████████████████████████████
███████████████████████████████████████████████████████████████████
★ ★ 
theymos (OP)
Administrator
Legendary
*
Offline Offline

Activity: 5376
Merit: 13368


View Profile
July 11, 2017, 05:18:14 AM
 #8

One might be able to argue that it would be best to not send (and avoid receiving, if possible) any bitcoin immidiately prior to (in order to avoid issues resulting from confirmation delays), and after a split up until it is very clear which "side" of the split is going to succeed.

That's what I do recommend in the guide...

Quote
If in doubt, avoid sending transactions or trusting received transactions 12 hours before and up to a few days after the split time, and check the forum for more news. If a major split happens, I will very likely make a post and news item explaining how to handle the situation. Coins at rest are not at risk.

In the unlikely event that there are are insufficient miners or attacks by miners on an economically-strong currency, it won't be too difficult to fix this with a hardfork (manual difficulty adjustment or PoW change). If Bitcoin is already unusable/unstable/insecure, then there's no additional harm in doing an immediate hardfork. We're not just going live with 1% confirmation speed for several months or whatever.

My post-split instructions will provide guidance for any such ongoing or plausible-future difficulties.

1NXYoJ5xU91Jp83XfVMHwwTUyZFK64BoAD
Quickseller
Copper Member
Legendary
*
Offline Offline

Activity: 2996
Merit: 2371


View Profile
July 11, 2017, 05:59:52 AM
 #9

One might be able to argue that it would be best to not send (and avoid receiving, if possible) any bitcoin immidiately prior to (in order to avoid issues resulting from confirmation delays), and after a split up until it is very clear which "side" of the split is going to succeed.

That's what I do recommend in the guide...
Fair enough. The 'if in doubt' clause implies that a user might be able to make the conclusion as to which is the 'winning' side of the split. I argue that it will not be possible to declare a 'winner' until significant time has passed after the split.

In the unlikely event that there are are insufficient miners or attacks by miners on an economically-strong currency, it won't be too difficult to fix this with a hardfork (manual difficulty adjustment or PoW change). If Bitcoin is already unusable/unstable/insecure, then there's no additional harm in doing an immediate hardfork. We're not just going live with 1% confirmation speed for several months or whatever.
Rational economic players will either follow the medium term majority chain, or will be neutral (which would be similar to following the majority chain once it has a very strong - ~80%+ - majority because the minority chain would effectively be unable to process deposits/withdrawals/payments) over time.

This kind of HF would require a PoW change because an "unscheduled" difficulty retarget would leave the minority chain being vulnerable to attacks by malicious actors if the PoW is not also changed. I would agree that if 1MB Bitcoin has 6 hour block times, it would not be difficult to pull off a HF quickly, however one could argue that the majority of the economy would have moved to the majority chain by the time a HF can be implemented, and the economy may not even accept a HF until they are comfortable that mining and the nodes are sufficiently decentralized that they will not lose money by accepting deposits/payments.

Several Bitcoin devs have previously stated that they will stop working on the Bitcoin project if BU were to activate. A combination of this and the above brings up an interesting question of what happens when the value of a split goes to nearly zero, and devs with highly superior technical expertise to the expertise of the devs working on the current majority chain subsequently do a HF from the minority chain? These devs, can theoretically create cool new (economically significant) features, which might cause some to use their chain even though there is another chain with greater security.

★ ★ ██████████████████████████████[█████████████████████
██████████████████████████████████████████████████████████████████████
██████████████████████████████████████████████████████████████████
███████████████████████████████████████████████████████████████████
████████████████████████████████████████████████████████████████████
██████████████████████████████████████████████████████████████████
███████████████████████████████████████████████████████████████████
█████████████████████████████████████████████████████████████████████
█████████████████████████████████████████████████████
██████████████████████████████████████████████████████████████████
█████████████████████████████████████████████████████████████
████████████████████████████████████████████████████████████
███████████████████████████████████████████████████████████████████
★ ★ 
Kakmakr
Legendary
*
Offline Offline

Activity: 3542
Merit: 1965

Leading Crypto Sports Betting & Casino Platform


View Profile
July 11, 2017, 06:55:33 AM
 #10

We are talking about "economic significance" and people running the modified software, but how will they be incentivized to move over, if we will have a period {possibly weeks} where people will not actively move coins? Most people/users/merchants/exchanges will go into a wait and see mode, before they move their coins. The people who wants this shift/change the most, will have to spearhead this process to show the direction for other people who will be waiting back to see what happens.

I for one are the type of person who will wait for other people to upgrade to the latest version of say Windows/Linux or whatever and then upgrade once the bugs have been sorted out. ^hmmm^

..Stake.com..   ▄████████████████████████████████████▄
   ██ ▄▄▄▄▄▄▄▄▄▄            ▄▄▄▄▄▄▄▄▄▄ ██  ▄████▄
   ██ ▀▀▀▀▀▀▀▀▀▀ ██████████ ▀▀▀▀▀▀▀▀▀▀ ██  ██████
   ██ ██████████ ██      ██ ██████████ ██   ▀██▀
   ██ ██      ██ ██████  ██ ██      ██ ██    ██
   ██ ██████  ██ █████  ███ ██████  ██ ████▄ ██
   ██ █████  ███ ████  ████ █████  ███ ████████
   ██ ████  ████ ██████████ ████  ████ ████▀
   ██ ██████████ ▄▄▄▄▄▄▄▄▄▄ ██████████ ██
   ██            ▀▀▀▀▀▀▀▀▀▀            ██ 
   ▀█████████▀ ▄████████████▄ ▀█████████▀
  ▄▄▄▄▄▄▄▄▄▄▄▄███  ██  ██  ███▄▄▄▄▄▄▄▄▄▄▄▄
 ██████████████████████████████████████████
▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄
█  ▄▀▄             █▀▀█▀▄▄
█  █▀█             █  ▐  ▐▌
█       ▄██▄       █  ▌  █
█     ▄██████▄     █  ▌ ▐▌
█    ██████████    █ ▐  █
█   ▐██████████▌   █ ▐ ▐▌
█    ▀▀██████▀▀    █ ▌ █
█     ▄▄▄██▄▄▄     █ ▌▐▌
█                  █▐ █
█                  █▐▐▌
█                  █▐█
▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀█
▄▄█████████▄▄
▄██▀▀▀▀█████▀▀▀▀██▄
▄█▀       ▐█▌       ▀█▄
██         ▐█▌         ██
████▄     ▄█████▄     ▄████
████████▄███████████▄████████
███▀    █████████████    ▀███
██       ███████████       ██
▀█▄       █████████       ▄█▀
▀█▄    ▄██▀▀▀▀▀▀▀██▄  ▄▄▄█▀
▀███████         ███████▀
▀█████▄       ▄█████▀
▀▀▀███▄▄▄███▀▀▀
..PLAY NOW..
freedomno1
Legendary
*
Offline Offline

Activity: 1806
Merit: 1090


Learning the troll avoidance button :)


View Profile
July 12, 2017, 05:56:49 AM
 #11

Thanks for the summary Theymos the only suggestion I have is to pin this on top of Beginners and Help as it is a current event and will draw increased attention as we get closer to August 1, or to move it to Important Announcements as a placeholder to replace or supplement Hexadecimals original posting.
https://bitcointalk.org/index.php?topic=1836611.0

The stuff below is just commentary

When economically significant actors decide to join one side of the debate or other, creating a split consensus scenario, we will see issues if it is a minority majority chain, actors on either side may have an incentive to try to push their chain to dominance if the difference is close enough, ideally we do not want two non-negligible separate currencies but it is a possibility, in the end regardless of the split proportions I'm sure we will see the minority chain calling itself an incarnation of the original for marketing purposes versus an altcoin, case in point ETH vs ETC.

Thanks for pointing out the lesser mentioned risk about needing a wallet update for possible replay transactions to avoid a loss of balances. Coins that are parking will not be at risk but until it is safe to utilize both sides for transactions in a forking event an individual user will need to wait to execute scenario 3  that keeps the value of both chains transactions.

The control of the private keys being individual instead of exchange based mitigates this concern, but another risk that may occur for an exchange holder is the rare scenario where an exchange may lose its operating liquidity, if they choose the wrong chain and end up with a worthless fork with insufficient funds to cover a balance, a MtGox in a sense. This may not be a very common scenario but for those who use exchanges as wallets it is worth noting that their is a risk involved with that, when considering the risk a fork presents to coin ownership and split scenarios.

Believing in Bitcoins and it's ability to change the world
guclu
Full Member
***
Offline Offline

Activity: 260
Merit: 102



View Profile WWW
July 12, 2017, 08:50:45 PM
 #12

Great guide on a topic I had no idea about but was afraid of what's coming on our way. Thank you for the information and spending your time on warning us.

sonawer
Full Member
***
Offline Offline

Activity: 308
Merit: 105


View Profile
July 12, 2017, 09:07:59 PM
 #13

Thanks for this full guide. i think all will going well in autumn with one bitcoin chain  Wink
crendore3
Sr. Member
****
Offline Offline

Activity: 502
Merit: 250


View Profile
July 12, 2017, 10:03:46 PM
 #14

What should I do? Keep my bitcoins in bitcoin core, are they safe there?...
What happens if I don't upgrade to the new wallet that gets released? Will I be able to use my BTC?
Are there any risks of me loosing all the BTC I have?
achow101
Staff
Legendary
*
Offline Offline

Activity: 3542
Merit: 6885


Just writing some code


View Profile WWW
July 12, 2017, 11:08:02 PM
 #15

What should I do? Keep my bitcoins in bitcoin core, are they safe there?...
The safest thing to do is to use Bitcoin Core as it is a full node and gives you control over which chain you want to use (via the invalidateblock and reconsiderblock RPC commands).

What happens if I don't upgrade to the new wallet that gets released? Will I be able to use my BTC?
It depends on your wallet software. If you are using Bitcoin Core, then you are fine.

Are there any risks of me loosing all the BTC I have?
If you don't spend your Bitcoin, no, there is no risk. Bitcoins at rest (i.e. remain unspent) are not at risk.

D0G3
Newbie
*
Offline Offline

Activity: 17
Merit: 0


View Profile
July 12, 2017, 11:28:57 PM
 #16

Is Blockchain wallet safe for this? (Blockchain.info)
achow101
Staff
Legendary
*
Offline Offline

Activity: 3542
Merit: 6885


Just writing some code


View Profile WWW
July 12, 2017, 11:46:10 PM
 #17

Is Blockchain wallet safe for this? (Blockchain.info)
No. They aren't even safe to use normally.

chapinmaster
Full Member
***
Offline Offline

Activity: 141
Merit: 100


View Profile
July 13, 2017, 12:20:24 AM
 #18

This can cause the price go down? people going to move to altcoins?
Hienrich
Newbie
*
Offline Offline

Activity: 44
Merit: 0


View Profile
July 13, 2017, 12:51:38 AM
 #19

Coins at rest are not at risk.
What does this mean? Coins at rest? Like if they are cold-storage?
achow101
Staff
Legendary
*
Offline Offline

Activity: 3542
Merit: 6885


Just writing some code


View Profile WWW
July 13, 2017, 01:00:25 AM
 #20

Coins at rest are not at risk.
What does this mean? Coins at rest? Like if they are cold-storage?
Coins at rest means that the coins are not being transacted. This could be in coins in cold storage or just that you are not making or receiving any transactions. Any coins that are from a transaction that was confirmed before the fork or are sent in a transaction that was confirmed before the fork are fine. However any coins in an unconfirmed transaction during and after the fork may not be.

Pages: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 »
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!