Proof-of-stake & Byzantine consensus

nothing-at-stake problem

The nothing-at-stake problem is the foundational incentive flaw that naive proof-of-stake designs had to overcome. In proof of work, when the chain forks, a miner must split its finite hash power and choose which branch to mine — backing both is physically wasteful. In a naive proof of stake, voting costs nothing but a signature, so when a fork appears the rational validator votes on every branch at once, hedging to collect the reward on whichever wins. If everyone does this, no fork ever resolves and consensus never converges.

Worse, the same costlessness invites validators to support an attacker's fork for a bribe or just in case, since signing an extra chain risks nothing. This both undermines the fork choice in the short range and enables long-range history rewrites. The whole point of staking — having skin in the game — collapses if betting on every horse is free. Early critics used this to argue proof of stake could never be secure.

The resolution is slashing. By defining provable misbehaviors (notably signing two conflicting attestations for the same height or target) and destroying the stake of anyone caught, the protocol converts 'nothing at stake' into 'your whole deposit at stake.' Now voting on two branches at once is not free hedging but signable, self-incriminating evidence that costs you your bond. This gives validators genuine skin in the game and is precisely why modern proof of stake — Ethereum's Casper, Tendermint, and others — builds slashing in from the start rather than relying on goodwill.

Nothing-at-stake is about short-range fork hedging; the long-range attack is its history-rewriting cousin. Slashing addresses the first (the misbehaving keys are still bonded), while weak subjectivity is needed for the second (the keys may already have withdrawn).