2
I'm unsure how Proof of Stake prevents double spending. In PoW it's evident that I need 51% of the hashing power of the network, to "overtake" the real chain with my fraudulent fork. But what stops me in Proof of Stake to:
- Save the current chain as is.
- Send 1 coin to Bob
- Go offline and add blocks to my backed up chain, excluding my prior transactions, and wait until it's larger than the real blockchain
- Go online and broadcast the fraudulent fork.
Does the rest of the network have a way to see that I cheated by adding my own blocks? In PoW they could check the hash, but they can't here. I of course wouldn't get any fees or rewards for the "fake" blocks, but I would still get my money back, that I send to Bob.
Hope someone can clarify why this is not possible, and how the network can spot that I wasn't selected to add those blocks.
If two forgers reach a solution at the same time, fork in the blockchain is created. In an ideal case other participants reject one chain and follow the other. But in ‘Nothing at Stake’ validators on the network want to maximize their profit and as a result will continue validation on both chains as they will lose rewards on the other chain if they stop validating that chain. The PoW protocol is protected against this problem as the validators will have to split their computational power between the two chains, but there is nothing to split in PoS as their coins reside in both chains. – Ugam Kamat – 2019-04-24T08:57:07.820
Okay, that makes sense. But in case of nothing-at-stake, why are the mechanism accepting that a forger can validate two blocks simultaneously? I.e. if there are two forks, and I receive two blocks, one for each, from the same validator - what's the issue of not just rejecting both of them? Simply having a rule, that you can only validate one chain should solve the problem? Or what am I missing? – Benjamin Larsen – 2019-04-23T22:33:23.697