Long-Range Attack in Proof of Stake

Published by Mario Oettler on

For this topic, you need to know how the nothing at stake attack works. The proposed remedy was to punish block producers that create blocks on conflicting branches. To be able to punish a block producer, he has to lock a deposit at the beginning of his activity.

After a certain lock time, the deposit is returned to the block producer. This opens up an exploit. Once the deposit is returned, the block producer can publish an alternative chain. But since the deposit doesn’t exist anymore, there is no way to punish the attacker.

The remedy here is to introduce checkpoints. If a block at block height 100 becomes a checkpoint, forks starting on blocks with a lower height are rejected by the network. If the checkpoint period is shorter than the lock time for the deposit, this avoids long-range attacks.