keep the old fork alive and have it accepted on an exchange: they would be
allowed to dump their coins from the old fork without affecting their holdings
on the new fork.
(Or I'll ask someone of my old bitcoin friends, because I'm stuck on the v0.3
Bitcoin code base and I'm not very good at the current Bitcoin source code.)
Here's how it will work.
1. The client sees the existence of a long blockchain, which it can not accept.
2. It starts to play Tag with two players trying to "tag" the longer blockchain.
3. It collects only those transactions which inputs are stored in its new blocks
(starting from the fork block) and all transactions with old inputs are ignored.
4. It gets a block from the long blockchain and imports all transactions which
are compatible with its blockchain (generation transactions aren't compatible).
5. It tries to mine a block with imported transactions. If there's enough space
in the block (1 MB max) to include its collected transactions - it includes them.
6. The game is repeated as long as there is a longer incompatible blockchain.
7. If its compatible blockchain reaches a large enough height and a sufficient
difficulty that victory is obvious - the old blockchain is "tagged" and the game
is over. From this moment the incompatible blockchain may also start to play.
Hopefully, I came up with something reliable. Please, check it for pitfalls.
FAQ
Q: Can I mix my old coins with new coins from the incompatible blockchain to
sell them as coins of the compatible blockchain?
A: No, you can't. Your transaction will contain inputs of new coins which were
created in the incompatible blockchain. There're no such coins in the new one.
Q: Can I mix my old coins with new coins from the compatible blockchain to
sell them as coins of the incompatible blockchain?
A: Same here. Your transaction will not be accepted.
Q: Can I just sell my old coins as coins of the compatible blockchain?
A: You can sell these coins just as coins of the incompatible blockchain. Such
coins are compatible and your transaction will be imported to the compatible
blockchain (if it contains only compatible old inputs).
Q: So I can't double-sell my old coins, right?
A: Yes, that's correct.
Q: But I can sell my new coins. Yes?
A: Yes, you can sell your new coins from the incompatible blockchain as coins
of the incompatible blockchain and you can sell your coins from the compatible
blockchain as coins of compatible blockchain. It's really simple as you can see.