(quoted post by BeeCee1)

8 messages BitcoinTalk BeeCee1, throughput, Gavin Andresen, knightmb, MoonShadow, FreeMoney, Satoshi Nakamoto August 3, 2010 — August 3, 2010
BeeCee1 August 3, 2010 Source · Permalink

If enough people are using the network, and the split were not due to open hostilities, it is possible that there would be intermittent connectivity between the two networks. This would serve to re-sync the block chains but could hurt the reliability of the system with transactions disappearing at random.

Imagine a cable cut, or series of cable cuts that isolated a block of countries.

  • Someone with bitcoin might initiate an oversees dialup connection
  • someone might have a satellite connection

These would probably be intermittent since they may spend most of their time on their ‘normal’ internet since most of what they want is there. Everytime they connected the blocks would start flowing from their computer to the rest of the world, then when they re-connected to their normal service they would flow to the rest of their country.

Someone with bitcoin might fly to one of those countries to visit, when they connected to a local service, the blocks on their computer would flow to the disconnected countries, the longest block chain wins. When they come back, again, the blocks from the disconnected countries would flow to the rest of the world.

throughput August 3, 2010 Source · Permalink

Quote from: BeeCee1 on August 03, 2010, 01:07:23 PM

If enough people are using the network, and the split were not due to open hostilities, it is possible that there would be intermittent connectivity between the two networks. This would serve to re-sync the block chains but could hurt the reliability of the system with transactions disappearing at random.

Imagine a cable cut, or series of cable cuts that isolated a block of countries.

  • Someone with bitcoin might initiate an oversees dialup connection
  • someone might have a satellite connection

These would probably be intermittent since they may spend most of their time on their ‘normal’ internet since most of what they want is there. Everytime they connected the blocks would start flowing from their computer to the rest of the world, then when they re-connected to their normal service they would flow to the rest of their country.

Someone with bitcoin might fly to one of those countries to visit, when they connected to a local service, the blocks on their computer would flow to the disconnected countries, the longest block chain wins. When they come back, again, the blocks from the disconnected countries would flow to the rest of the world.

Yes… But what you describe is only possible after someone have noticed and prooved the network split is happening. Do you propose any method to detect the beginning of the network split?

BeeCee1 August 3, 2010 Source · Permalink

Quote from: throughput on August 03, 2010, 01:33:08 PM

Quote from: BeeCee1 on August 03, 2010, 01:07:23 PM

If enough people are using the network, and the split were not due to open hostilities, it is possible that there would be intermittent connectivity between the two networks. This would serve to re-sync the block chains but could hurt the reliability of the system with transactions disappearing at random.

Imagine a cable cut, or series of cable cuts that isolated a block of countries.

  • Someone with bitcoin might initiate an oversees dialup connection
  • someone might have a satellite connection

These would probably be intermittent since they may spend most of their time on their ‘normal’ internet since most of what they want is there. Everytime they connected the blocks would start flowing from their computer to the rest of the world, then when they re-connected to their normal service they would flow to the rest of their country.

Someone with bitcoin might fly to one of those countries to visit, when they connected to a local service, the blocks on their computer would flow to the disconnected countries, the longest block chain wins. When they come back, again, the blocks from the disconnected countries would flow to the rest of the world.

Yes… But what you describe is only possible after someone have noticed and prooved the network split is happening. Do you propose any method to detect the beginning of the network split?

No, I am saying that given enough bitcoin users this is likely to happen, there is no need for them to notice that the bitcoin network split, either they notice that they can’t check email/access websites outside of their local area and initiate a temporary alternate connection to the “rest of the world” or they just happen to take a laptop with bitcoin on an airplane.

I am also not saying it is a good thing. having a single split for a fairly long period of time lets people come up with a solution, having many splits that each last for a few hours means that transactions randomly disappear and that hurts confidence in the system.

Quote from: BeeCee1 on August 03, 2010, 03:12:42 PM

I am also not saying it is a good thing. having a single split for a fairly long period of time lets people come up with a solution, having many splits that each last for a few hours means that transactions randomly disappear and that hurts confidence in the system.

Transactions won’t disappear if they’re valid. They’ll just move to the longer block chain.

Invalid transactions would be somebody trying to double-spend across the split chains (which would be tricky— you’d have to run a modified client, or copy your wallet to a machine working on the other block chain).

Or if the split lasted long enough (more than 100 blocks), transactions that involve generated coins on the shorter chain would be invalid at the merge.

For shorter splits, immature generated coins on the shorter chain will disappear when the chains merge, but that would be about the worst consequences for honest users (unless you were unlucky enough to get an invalid coin from somebody trying to cheat).

knightmb August 3, 2010 Source · Permalink

Quote from: gavinandresen on August 03, 2010, 06:38:44 PM

Transactions won’t disappear if they’re valid. They’ll just move to the longer block chain.

Invalid transactions would be somebody trying to double-spend across the split chains (which would be tricky— you’d have to run a modified client, or copy your wallet to a machine working on the other block chain).

Or if the split lasted long enough (more than 100 blocks), transactions that involve generated coins on the shorter chain would be invalid at the merge.

For shorter splits, immature generated coins on the shorter chain will disappear when the chains merge, but that would be about the worst consequences for honest users (unless you were unlucky enough to get an invalid coin from somebody trying to cheat).

Interesting info, so other than some double-spending issues, as long as the block chain isn’t separated for more than 100 or so blocks (or 16+ hours), it should be able to merge back to together without too many issues. So coin generation would probably be the only victim (if no double-spending cheats took place), or more technically, coin generation would be assigned to someone else that was generating at the same time as those that split off.

If there a hard coded limit on split delay? Meaning if I had a small network split from the public network, spent some coin around, came back a few days later and got them sync up to the public network (other than coin generation if it happened) transactions should be fine?

MoonShadow August 3, 2010 Source · Permalink

Quote from: throughput on August 03, 2010, 01:33:08 PM

Yes… But what you describe is only possible after someone have noticed and prooved the network split is happening. Do you propose any method to detect the beginning of the network split?

I started another thread along this line elsewhere, but for an individual vendor, a simple watchdog daemon that tracks the average time between blocks since the last official change in difficulty and alerts the vendor if a single block takes more than twice as long as the average, perhaps suspending the acceptance of new coins until the vendor checks to see what is happening. Each block in a row that takes longer than the average increases confidence against a false positive. So if one block takes twice as long as average, followed by a series of blocks that take 75% longer than average, then you can be fairly certain that you are no longer on the majority network.

FreeMoney August 3, 2010 Source · Permalink

Quote from: creighto on August 03, 2010, 08:01:22 PM

Quote from: throughput on August 03, 2010, 01:33:08 PM

Yes… But what you describe is only possible after someone have noticed and prooved the network split is happening. Do you propose any method to detect the beginning of the network split?

I started another thread along this line elsewhere, but for an individual vendor, a simple watchdog daemon that tracks the average time between blocks since the last official change in difficulty and alerts the vendor if a single block takes more than twice as long as the average, perhaps suspending the acceptance of new coins until the vendor checks to see what is happening. Each block in a row that takes longer than the average increases confidence against a false positive. So if one block takes twice as long as average, followed by a series of blocks that take 75% longer than average, then you can be fairly certain that you are no longer on the majority network.

Really? It seems to me more likely that a bunch of people left/crashed than a whole new network half the size of the legit one has gotten to you.

I’m probably misunderstanding.

creighto: I agree with that idea.  After a few hours, it should be possible for the client to notice if the flow of blocks has dropped off by more than would be likely just by chance.  It could tell if it’s not hearing the hum of the world anymore.

Quote from: knightmb on August 03, 2010, 07:02:13 PM Quote from: gavinandresen on August 03, 2010, 06:38:44 PM

Or if the split lasted long enough (more than 100 blocks), transactions that involve generated coins on the shorter chain would be invalid at the merge.

Interesting info, so other than some double-spending issues, as long as the block chain isn’t separated for more than 100 or so blocks (or 16+ hours), In practice, splits are likely to be very asymmetrical.  It would be hard to split the world down the middle.  More likely it would be a single country vs the rest of the world, lets say a 1:10 split.  In that case, it would take the minority fork 10 times as long to generate 100 blocks, so about 7 days.  Also it would be super easy for the client to realize it’s hearing way too few blocks and something must be wrong.

Quote from: knightmb on August 03, 2010, 07:02:13 PM

If there a hard coded limit on split delay? Meaning if I had a small network split from the public network, spent some coin around, came back a few days later and got them sync up to the public network (other than coin generation if it happened) transactions should be fine?

There’s no time limit.  Assuming you weren’t spending coins generated in the minority fork, or spending someone’s double-spends you received, your transactions can get into the other chain at any time later.