I'm sorry, i'm not seeing it clearlly, how exactly does other people finding blocks of transactions after the fake transaction results in them indentifying that the fake transaction was fake? Or the other people are actually calculating the same block several times till their blocks agree with the blocks their neighbours calculated?
First there is no such thing as a "fake" transaction... the fraud would be the
omission of a real transaction. A transaction that is fake on its face (i.e. sends bitcoins that don't exist) won't be accepted by any unmodified client, whether in a block or otherwise. (If it were in a block, the block would be rejected).
If I am a fraudster, what I am trying to do is generate blocks that
omit registering money i have spent, so I can try to spend it again. But once someone else successfully generates a block that includes the missing transaction, I'm hosed. If I own more CPU power than the rest of the network, I can continue to generate blocks that override the blocks I don't like (and have mine overrule by the longest-proof-of-work rule), but since I don't have the majority of CPU power, I can't create the longest proof of work, and I'm stopped from the attack.