"There is nothing at stake" problem: a rational miner will choose to mine on 2 chains or more whenever there is an opportunity, to maximise his expected value.
- Miners who mine only on single chain are called altruistic. Miners who mine on as many chains as they can (rational) are called non-altruistic.
- An attacker only needs to outpace altruistic miners to perform an attack, thus it's possible to perform this attack even having less than 50% stake (as long as non-altruistic miners' and attacker's stakes add up to 51%).
To overcome this issue the SlasherSlasher algorithm can be used. If a miner creates a block on 2 chains he will be punished. For that, anyone can submit the block from the other chain into the original chain in order to steal the mining reward and penalize the double-voter.
- Miners will have to make security deposits so there is way for penalizing in case of double voting
- The miner has to have the right to withdraw the security deposit eventually, and once the deposit is withdrawn there is no longer any incentive not to vote on a long-range fork starting far back in time using those coins (reference). E.g. after 1000 blocks the miner will have the right to withdraw his deposit.
Long-range attack is when a miner starts mining a sidechain 1000 or more blocks back.
- Other non-altruistic miners will mine on that chain too since there is no punishing and the expected value is higher.
- In fact, it's even expected to see a black market of people selling their old private keys, culminating with an attacker single-handedly acquiring access to the keys that controlled over 50% of the currency supply at some point in history and performing the attack (reference).