We would like to outline our approach to the Segwit2x fork which goes into effect approximately between the 13th and 16th of November 2017 (block 494,784).

The Goal

BitGo’s first goal is to always keep our customer’s bitcoins safe. Since this fork could create two different coins with two different values, our top priority is to securely preserve the value of both. Our second goal is to provide customer access to each coin as soon as possible.

The Challenge

The difficulty for wallet providers handling the Segwit2x upgrade is that it does not provide an ability to safely send transactions onto only one side of the forked chain. That is, without careful planning, spending bitcoins on one chain would create valid transactions on both chains, and our customers could accidentally be spending both coins when they only intend to spend one.

The Solution

To ensure safe spending of coins, BitGo will build infrastructure to isolate each transaction and direct it to only one chain. This means that customers will be able to spend their coins on the 1x chain or the 2x chain and BitGo will ensure they aren’t inadvertently spending on both.

At the time of the fork, BitGo will begin a process of double spending (via RBF) some of its own coins to isolate them onto each chain. We anticipate that one chain will have majority hashpower and be able to confirm transactions quickly, and the other chain will confirm slowly. This will result in different transactions confirming on both chains, resulting in isolated outputs (coins) on each chain. Once we have isolated coins, we will split them and include tiny amounts with each customer transaction, thereby ensuring that transactions are being directed to only the intended chain.

Unfortunately, the process of getting confirmed transactions that are sufficiently deep in the blockchain takes time and it is unsafe to spend on either chain until that is the case. We anticipate that we will not be able to consider the coins on either of the new chains safe from possible lengthy chain reorgs for at least 20 blocks. Due to anticipated reduced hashpower on one of the chains, we expect this process could take some time.

The Plan

At the time of the fork, BitGo will disable our customers’ ability to send transactions. We will continue in this state until BitGo has confidence that we can resume operations in a secure and stable manner. We estimate that this will take approximately 24–72 hours but we are not able predict the exact duration. During this period we’ll be doing two things:

Isolating BitGo’s coins onto each of the two chains for replay safety, as described above. Determining the most viable chain. It is our belief that one of the two chains will emerge as the most viable chain post-fork. This will be determined based primarily on market price and secondarily hashpower.

As soon as BitGo is able to safely split coins and determine the strongest chain, we will resume operations. The strongest chain will be labeled as BTC and will be the coin transacted on the V1 API. All transactions will include split coins from BitGo, and will therefore mitigate the risk of spending on the minority chain.

BitGo will also support the minority chain as soon as possible after the fork. It will only be enabled via the V2 API after it has reached sufficient stability and is safe for BitGo customers to use. BitGo customers currently using only the V1 API will need to develop solutions using the V2, multi-coin API in order to support the minority chain.

API/SDK Platform Updates

BitGo will release a mandatory SDK update to implement the replay safety as mentioned above, and also to support the minority chain. The exact coin name (ticker) within the V2 API will be known when we determine the most viable chain. Other users that have utilized the BitGo API/SDK for Bitcoin Cash, Litecoin, Ripple or our Ethereum wallets will find that the interface is identical.

For customers that craft transactions manually, BitGo will also announce the new low-level APIs that will provide the ability to access the replay-safe inputs.

Conclusion

Everyone at BitGo very much would like to see one chain emerge after the fork. Although there is much debate within the community right now about how the fork will play out, we are prepared for any result. BitGo will be supporting the most viable chain as quickly as possible (based primarily on market price), and will support the minority chain a few weeks thereafter. Although this process will likely take a few days to settle, all BitGo customers should feel safe that value from both coins will be preserved and made available to them.