So long person must name at least strike, and short person must name at most strike?
Maybe you can run through your example again but this time with it being the case that the prices they can get out in the world are below their strike price not above it?
-MarkM-
1. Bob and Alice create a CFD for 1 Bitcoin, beginning at $5. Bob takes the short, Alice takes the long.
2. Bitcoin drops to $4. Alice wants to cheat Bob; she claims it's at $6
3. Bob says "sure, it's at $6." He pays her $1 (the difference).
4. Since Alice named the price, she must accept the trade. Bob buys 1 BTC for $4 and sells it to her for $6. She sells it back to the exchange for $4.
5. Math. Bob sends MtGox $4, Alice 1 BTC, and Alice $1; he receives $6 and 1 BTC from Alice. This is a profit of $1, which makes sense because he "won" his short.
Alice sends MtGox 1 BTC and Bob $6; she receives 1 BTC from Bob, $1 from Bob, and $4 from MtGox. This is a loss of $1, which makes sense because in truth, the exchange rate fell, so her long position should be losing.
Really, the party can name any price for exercise (even a negative price ) and it will still work out properly.
In the case that there really are two different prices (say 2 different local markets or something), then it's possible for both parties to profit; this profit comes from the arbitrage.