[Ethereum] How does Casper solve the “Nothing at Stake” issue

casperproof-of-stake

One of the criticisms of proof of stake is that stakers can vote for multiple blockchain forks with only a trivial cost. I believe NXT solves this by not giving out a mining reward, so that the reduced security of voting for multiple blockchain tips is sufficient deterrent. It is my understanding that Ethereum has a block reward.
How then does Casper solve the "Nothing at Stake" issue?

Best Answer

Casper requires validators (signatories of the blocks) to be bonded, i.e., to have committed certain amount of Ether into the Casper contract. Validators vote by issuing special voting transactions to Casper contract, and these special transactions would be valid in any possible chains. Therefore, if two votes are detected from the same validator for two different blocks of the same height, the Casper contract destroys the Ether in the bond.

Bond withdrawal, once requested from the Casper contract, would take a long time (4 months maybe). This allows enough time for all votes to be collected and the destruction of the bond to be effected by another set of validators (in case that current validators want to censor out the fact that they voted on multiple chains).

Related Topic