If I understand correctly, when the client is faced with two different blockchain, the longest will prevail.
If it's the case, wouldn't be possible to generate a longer blockchain (starting from scratch, or almost) by simply using an easier difficulty than the network?
The new blockchain would then be seen as the truth and the real one simply discarded.
I must be missing something. Could someone please enlighten me?
I brought this up a long time ago, basically I called it a reverse-time attack. You generated a block chain with 2 PCs at the lowest difficult and wait until it over-takes the real block chain and then bring that block chain into the network. To get around the issue, the clients since had a hard-coded block lock put into place with every release. That way if someone did try this, the clients would see that the block chain history didn't match the new "fake" generated chain and refuse using it.
The only reason that attack would work is, 1) you get a perfect 1 block / 10 minute generation cycle. This would eventually catch up with the real block generation because it can vary from 10 minutes to an hour sometimes 2) There was nothing in the software to say otherwise until the block chain locks were added
The effect would be, you would wipe out all transactions and end up owning all the bitcoins generated with that fake block chain. But like I said, something to counter that was put into place long, long ago.