Casper is an Ethereum proof-of-stake consensus algorithmic protocol meant to improve scaling, decentralization, energy efficiency, and security. Casper will launch in two parts on the Ethereum mainnet, the first sometime in late 2018, and the second sometime in 2019.
The Casper PoS network will rely on security-deposit “stakers” and staking pools instead of miners and mining pools. The security deposit requirement addresses the “nothing at stake” problem by making bad behavior expensive.
Casper’s mission is to shift ether from being a Proof of Work (PoW) coin to a Proof-of-Stake (PoS) coin. PoS achieves block consensus when “minters” stake their coins by locking them down in a smart contract residing in a special wallet called a “validator nodes”.
Validators bet large parts of their security deposits on how the consensus process will “turn out”, i.e., which chain will get the most algorithmically weighted votes. Like miners, stakers will be rewarded for their service to the network. The more ETH you stake on Casper, the larger your annual dividends will be.
Individuals have more incentive to act honestly in on a PoS blockchain than on a PoW blockchain. Whereas PoW miners launching a 51% attack in must gain a majority of mining power, a PoW 51% requires minters launching an attack to control the majority of the staked ether, an expense so extreme that Casper is practically immune to such an attack.
“Bonded validators” place security deposits into a smart contract attached to their node, an act dubbed “bonding”. Casper then controls these security deposits and rewards honest validators with ether taken primarily out of transaction fees (similar to paying interest on deposits), whereas validators who misbehave in an objectively verifiable manner, as determined automatically by Casper, will lose some or all of their staked deposit.
Casper is not one specific project. It is an amalgamation of research projects currently being developed by Ethereum teams around the world. Consensus algorithm development initiatives undertaken by Vlad Zamfir and Vitalik Buterin are the two most significant Casper projects:
- Casper the Friendly Finality Gadget (FFG) “Vitalik’s Casper”
- Casper the Friendly GHOST: Correct-by-Construction (CBC) Vlad’s Casper”
The final version of Casper will draw heavily from both Buterin’s and Zamfir’s ground-breaking work.
Casper is faster, and thus more scaleable than PoW because validators can coordinate placing exponentially growing portions of their security deposits as bets on a block, thereby achieving maximum security very quickly. It is an eventually-consistent blockchain-based consensus protocol that favors availability over consistency: “always available, consistent whenever possible.” With Ethereum PoW, if you know the genesis block you can authenticate consensus, whereas with Casper, as long as you know the set of currently-bonded validators, you can authenticate consensus.
Ethereum validators must lockup a minimum security deposit, for a set period of months, into a smart contract in order to get included in the validator set. Bonded validators then securely sign blocks and place bets on the consensus process. A bond validator’s stake is eventually returned if, over the life of the smart contract residing on their node, the blocks they bet their funds on are valid. If the bond/deposit/stake is bet on a single fraudulent block, the bond validator will lose some or all of their stake.
Every Casper PoS participant will have a public key and a private key. The public key is an identifier and the private key is a corresponding secret value used to sign messages, including bets. Messages signed with a private key can be verified against a public key.
A validator is severely punished if their bet changes too dramatically, for example by voting with a very high probability on one block after voting with a very high probability on another. This guarantees that validators will bet with very high probabilities only when they are confident that the other validators will make similar high probability bets. Through rapid iterated rounds of betting, bets never converge on a second value after converging upon the first, as long as there is sufficient Etherium network “liveness”.
Validators publish bets to the network, assigning a probability to every block number (block “height”). Validators are thus participating in iterative betting that elects exactly one block at every height. This determines the order in which transactions are executed. Casper forfeits a validator’s security deposit if they:
- places bets with probabilities summing to more than 100% at a time for a given height
- places any bet at less than 0%
- bet with more than 0% on an invalid block