[Ethereum] the difference between Casper and Tendermint

casperproof-of-stake

Both are consensus protocols that fall under the category proof of stake. However – they differ in some design goals. Casper favors availability over consistency in comparison to Tendermint. What does this mean?

Best Answer

A quote I like to use from Vlad Zamfir (one of the people building the CASPER protocol) is this:

Tendermint favours consistency over availability, Casper favours availability over consistency (see the CAP theorem). Tendermint doesn't punish online validators for potentially censoring potentially-actually-just-offline validators.

CAP Theorem states that a distributed computer cannot simultaneously provide consistency, availability, and partition tolerance. Because of this, Tendermint and CASPER have to make trade offs in their design.

Tendermint is more suited to blockchain scenarios where the participants likely have some trust or the chance of an attack on the blockchain is lower, i.e. consortium or private/hybrid blockchains. Tendermint assumes that the participants will act non-maliciously most of the time, so the validator punishment rules are different/less stict. In doing that, they are able to maintain a blockchain that is more consistent than a CASPER based blockchain.

CASPER is more suited to scenerios where little to no assumptions should be made on the altruism of users or validators, i.e. public blockchains. CASPER designs harsher incentives in order to guarantee network security, including punishing miners who go offline, unintentionally or not. This forces validators to be more careful about their node uptime and other factors to make sure they follow the validator rules so they will not lose their stake. A positive side effect of this is that it reduces censorship of transactions and overall availability.

Outside of technical specs of each protocol, you can make the argument that their design goals are different to facilitate their users.

Tendermint is a blockchain for enterprise business applications, and Ethereum is a blockchain for decentralized applications.

Related Topic