James A. Donald wrote: > OK, suppose one node incorporates a bunch of > transactions in its proof of work, all of them honest > legitimate single spends and another node incorporates a > different bunch of transactions in its proof of > work, all of them equally honest legitimate single > spends, and both proofs are generated at about the same > time. > > What happens then? They both broadcast their blocks. All nodes receive them and keep both, but only \ work on the one they received first. We'll suppose exactly half received one first, \ half the other. In a short time, all the transactions will finish propagating so that everyone has \ the full set. The nodes working on each side will be trying to add the transactions \ that are missing from their side. When the next proof-of-work is found, whichever \ previous block that node was working on, that branch becomes longer and the tie is \ broken. Whichever side it is, the new block will contain the other half of the \ transactions, so in either case, the branch will contain all transactions. Even in \ the unlikely event that a split happened twice in a row, both sides of the second \ split would contain the full set of transactions anyway. It's not a problem if transactions have to wait one or a few extra cycles to get into \ a block. Satoshi Nakamoto