i guess if i control 51% of the computational power i could extend the fork with fraudolent fake transactions indefinitely...
You could, since you would outpace the creation of blocks by the rest of the world, so your forked chain would continue to be longer.
However, as you can hopefully see from the explanation that I posted above, if your chain included an invalid transaction then all the nodes that are running the real Bitcoin software would continue to just ignore your chain. You would have created a forked altcoin, and if you could convince others to use your custom software, then they would have access to coins on your chain separately from the Bitcoin chain.
In addition to having more than 50% of the world's hashpower, you could also just change your software to add something to your blocks that doesn't exist in a Bitcoin block and then make that extra thing a requirement for blocks accepted by your software above a chosen block number. Since Bitcoin blocks wouldn't have that extra thing, your software would see all future Bitcoin blocks as invalid and wouldn't accept them in place of your chain with less proof of work. This is effectively what happened with Bitcoin Cash.
Initially, Bitcoin Cash was just going to be creating blocks that are invalid according to the Bitcoin software. Those invalid Blocks would result in a forked chain via the same mechanism as I described. Their initial hope was that the vast majority of the world would switch to their software and therefore their chain would always have the most proof of work. Since Bitcoin is a system of consensus, they would effectively BE Bitcoin, and the small minority of users running the old software would be the altcoin.
Once they realized that they weren't going to be able to initially convince enough people to use their software to guarantee that their chain always had the most proof of work, they had to find a way to maintain their chain and keep it from continuously being overwritten by the Bitcoin blockchain. They had to modify their software in a way that made standard Bitcoin blocks look invalid to their software. That way there was no risk of a re-organization of the blockchain using blocks from the Bitcoin blockchain. Once they did that, they were able to extend their chain indefinitely. It still doesn't affect Bitcoin, because their blocks are still invalid according to the Bitcoin rules, but they no longer had to worry about having more total proof of work.
Danny, an interesting question arising from your outstanding explaination concerns the difficulty of the POW. I appreciate this is not strictly related to my first question but it arises naturally. The system you described, with such a distributed validation process, could, apparently, work also without such a painful effort to solve the cryptographic problem, because again any attempt to "invent" transactions should be validated by many other nodes, an unlikely event. I guess the POW effort is a way to make more expensive these attempts, but it slows the whole process as well...
You are correct. Preventing invalid transactions can be (and is) accomplished without proof of work.
The proof of work is needed for that second part where one chain is chosen over another. If it isn't slow and expensive to create a block, then an attacker could just create a burst of blocks to accomplish a variety of attacks.
For example, I could create software that makes two equally valid copies of a transaction. One copy would pay some recipient (perhaps you?), the other copy would, instead, pay a second address that I control. Then I could broadcast the transaction that pays you while I simultaneously create a block that uses the transaction that pays me. I'll hold on to that block secretly and not broadcast it to anyone yet. Every time I see another block from the network, I'll just create another block of my own on top of my secret chain so that my chain is always one block longer than the rest of the world. When you finally accept my payment and provide me something of value in exchange, I can then broadcast my secret chain to the world. All nodes (including yours) will see this longer chain and immediately throw out all the blocks that they have back to the block height where mine starts, and they will accept my longer chain in place of it. I'll have my bitcoins back, and you'll have provided me something of value in exchange for nothing at all. The transaction that pays you will be seen as an invalid transaction by the whole world (including your nodes) since it spends bitcoins that (according to the blockchain) have already been spent elsewhere.
Since creating blocks was effectively free and instantaneous, there wasn't ever any real risk to me. The worst that could happen to me even if I failed at my exploit is that I get what I paid for. Meanwhile, you could never feel confident that your payment wouldn't disappear. It's impossible to run a currency where recipients can never feel confident that they've actually received a payment. Nobody would accept it.