I am just guessing here given the little I know about bitcoin and distributed databases.
This comes down to the how CAP theorem applies to the bitcoin blockchain DB.
CAP theorem states that it is impossible for a distributed computer system to simultaneously provide all three of the following guarantees:
- Consistency (all nodes see the same data at the same time)
- Availability (a guarantee that every request receives a response about whether it was successful or failed)
- Partition tolerance (the system continues to operate despite arbitrary message loss or failure of part of the system)
As far as I can tell it is not consistent. And will handle partitions for a short period.
(and you could argue that long periods of partition will break availability of some transactions)
Details of what I think might happen:
(If every one plays nice and someone makes a few tweaks to the software it will come back online)
The bitcoin protocol has (in simple terms) two sets of data that it transmits/stores.
One is the block chain which is the authoritative order that transactions occur in.
The other is a gossip of the transactions.
First of all transactions would gossip around the islands network, but they would not get confirmed. Even if there were miner nodes on the network. This is because the difficulty would be very high.
The chance of the miners on the island of finding a block would be very low. So the confirmations of the transactions would probably not occur.
The difficultly is only adjusted every 2016 blocks. But as the miners on the island can not find a block the difficulty will not change. The confirmations would become stalled.
Basically if every one trusted 0 confirms and didn't double spend (hint: that is not going to happen) you could carry on as normal (assuming your software will let you spend 0 confirmed transactions)
This could lead to the network collapsing.
However if someone changed their mining software to mine at a much lower difficulty I think the network could start confirming again.
Normally this would not work as then bitcoin network would very quickly drop your block in favour of a longer more difficult one. But since you are in a partition you would win (for now)
Lets assume the miner who modded his software didn't try to make any double spends (which he would only be able to with the money he has before the partition, and there are enough miners so there are not any 51% atacks.
2016 blocks after that the network would readjust the difficulty (to the sum hashing power of the pool) and every thing would hopefully stabilise.
Ok all seems fine the partitioned island network would carry on.
That is until then partition is reconnected. (Dun dun dunnnnnnnn)
At that point two things would happen.
- A longer more difficult block chain would replace the island block chain as the authoritative chain. This would wipe out all of the island confirmed transactions.
- The island nodes would start gossiping the transactions that had occurred on to the other (newly connected) main partition.
This is assuming that, between all of the islands nodes, some of the software had a full copy of the gossiped transactions.
I think it would take the same number of blocks as the longest train of island transaction for all of the island transactions to be confirmed on the network.
Every thing back to normal???
Yes (insert lost reference) as long as no one got off the island; with their bitcoin wallet.
If some one made a transaction from their wallet on both the island and on the main network,
then their transactions on the island would be seen as invalid (like a failed double spend).
But that would also mean that anyone the island who had made a transaction based on that failed transaction would find that their transactions would also be invalid etc etc. In other words that one double spend transaction would be poisoned.
Also any coins mined during the partition would also be poisoned.
Everyone's wallets along the poisoned branch(s) would revert to the balance they had just before that poisoned transaction.
You could check for those poisoned transactions with some offline copies of the block chain; before you reconnected the partitions.
This would make for an interesting set of norms, for your islands culture:
Your island's economy would depend on the (threat of the) death penalty being applied to anyone who tries to make offshore double spends (or spend coins mined on the island).
(Miners could still make money through transaction fees)
The import of mining rigs would fetch huge quantity of bananas and coconuts (as that would be the only thing you would have left to barter with internationally (Since you no longer have a national currency and can't trade internationally with bit-coins) :P