3 ms·
[…] or very disasterously -- becomes impossible to spend either bitcoins of sw2x-bitcoins because of the chain overlap until the coinbase transactions start to
by runeks 9y ago
[…] or very disasterously -- becomes impossible to spend either bitcoins of sw2x-bitcoins because of the chain overlap until the coinbase transactions start to mature.
Can you elaborate?
- andrewla 9y agoThe problem with a lack of replay protection (and this played out for a bit after the ETH/ETC split) is that transactions that are valid on one chain are valid on the other. For convenience, let's call the chains BTC and SBT (for segwit2 bitcoin). If I hold 10 BTC before the split, then I hold 10 BTC and 10 SBT after the split. If I want to send 5 BTC to an address post-split, but hold on to my 5 SBT, there's no way to do it. The transaction that sends 5 BTC can be "replayed" onto the SBT fork, so the same address on the SBT side also receives my 5 SBT. In the ETC/ETH split this was resolved by having a contract which split coins into two addresses, depending on what side of the chain the contract was on; so you would make a ETCETH deposit to this address and specify two output addresses; one would receive the ETC and the other the ETH. This is not possible in Bitcoin; the language is not powerful enough. So to split your coins, you would need to get conflicting transactions accepted by the two chains, and wait for that to settle. Once that's done, you can move the remainder of your addresses by sending from the SBT address along with a BTCSBT address, and sending from the BTC address along with a BTCSBT address. This is pretty hairy for an individual user, and would probably have to be mediated by a service (most likely operated by an exchange).
- runeks 9y ago> So to split your coins, you would need to get conflicting transactions accepted by the two chains, and wait for that to settle. Good point. I hadn’t thought of the possibility of having one part of a double spend be confirmed on the main chain and the other part on the fork. But I don’t see how it relates to the part I quoted.
- andrewla 9y ago>> […] or very disasterously -- becomes impossible to spend either bitcoins of sw2x-bitcoins because of the chain overlap until the coinbase transactions start to mature. > But I don’t see how it relates to the part I quoted. My explanation covered the "impossible to spend either bitcoins [or] sw2x-bitcoins" -- the replay means that attempts to spend one spend the other as well. Forcing a split transaction pair (as I describe above) is really the only way to ensure that your BTC transaction won't spend your SBT as well. Is it the bit about the coinbase transactions? The coinbase is the most reliable way of getting transactions valid only on one side of the fork; the mining rewards necessarily only apply to the chain on which they were mined. They aren't spendable until 100 blocks after they are rewarded, and only after they mix in sufficiently with other transactions can they be used to differentiate general transactions -- any transaction that descends from a coinbase transaction is also specific to the chain fork. This is more reliable than a timing/sybil attack to try to force the split transaction pair described above.