Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: bytemaster on May 24, 2013, 08:55:30 PM



Title: Blockchain Splits/Merges and Resulting Invalid Transactions
Post by: bytemaster on May 24, 2013, 08:55:30 PM
Because orphaned chains no longer contain valid outputs, any transaction that contains any inputs that can be traced back to that coinbase becomes invalid.  Even if only 1% of the inputs to the transaction are traceable to a minority block coinbase.

For this reason you must wait almost a day to spend it.   What happens with splits that last longer than a day?   In theory those coins could have been used in multiple transactions involving dozens of people and all of those transactions would be invalidated even though they may only contain a fraction of the generated coin.   This is very likely with mining pools that may end up on the wrong side of a split.

The only solution I can think of is to have all clients deny transactions that reference coins minted after the split until the chain merges again.  This would require detecting the split and then holding all coins generated after the split as 'unspendable' until after the remerge determines whether you were on the majority or minority side of the split.  Miners as well as clients would have to know that any transaction that references one of these coinbases is 'unconfirmed' so they can act accordingly. 

What systems are in place to detect splits due to network connectivity interruption?   Is the assumption that SOMEONE will find a way to sync transactions between chains within 24 hours?   Is that a safe assumption?  I suspect that a 50% fall in hash rate would be enough to detect the potential of being on the minority side of a split.   Thoughts? Solutions?


Title: Re: Blockchain Splits/Merges and Resulting Invalid Transactions
Post by: Atruk on May 24, 2013, 09:01:06 PM
Because orphaned chains no longer contain valid outputs, any transaction that contains any inputs that can be traced back to that coinbase becomes invalid.  Even if only 1% of the inputs to the transaction are traceable to a minority block coinbase.

For this reason you must wait almost a day to spend it.   What happens with splits that last longer than a day?   In theory those coins could have been used in multiple transactions involving dozens of people and all of those transactions would be invalidated even though they may only contain a fraction of the generated coin.   This is very likely with mining pools that may end up on the wrong side of a split.

The only solution I can think of is to have all clients deny transactions that reference coins minted after the split until the chain merges again.  This would require detecting the split and then holding all coins generated after the split as 'unspendable' until after the remerge determines whether you were on the majority or minority side of the split.  Miners as well as clients would have to know that any transaction that references one of these coinbases is 'unconfirmed' so they can act accordingly. 

What systems are in place to detect splits due to network connectivity interruption?   Is the assumption that SOMEONE will find a way to sync transactions between chains within 24 hours?   Is that a safe assumption?  I suspect that a 50% fall in hash rate would be enough to detect the potential of being on the minority side of a split.   Thoughts? Solutions?

Well, coins generated by a coinbase transaction can take nearly an entire day to mature...