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?
[Ethereum] the difference between Casper and Tendermint
casperproof-of-stake
Related Solutions
The friendly Ghost
Casper is a security-deposit based economic consensus protocol. This means that nodes, so called bonded validators, have to place a security deposit, an action called bonding, in order to serve the consensus by producing blocks.
In Casper style proof of stake anyone can participate in block production by posting a bond. After posting a bond you have an opportunity to bet on which block will be included next. The incentives are such that you make money by betting with the eventual consensus and lose money by betting against the consensus. Any crypto-graphically provable misbehavior results in the forfeit of the bond.
An analogy can be made to proof of work where each miner is betting with their hash power on which block will be accepted. If they bet wrong then any block they produce will be orphaned causing them to lose money.
This protocol has several nice properties:
- Anyone can participate
- Consensus can be reached in a timely manner
- It quickly converges on an irreversible consensus
- It is free of politics
Casper in non-economic terms
Casper is an eventually-consistent blockchain-based consensus protocol. It favours availability over consistency, see the CAP theorem. It is always available, and consistent whenever possible. It is robust to unpredictable message delivery times because nodes come to consensus via re-organization of transactions, after delayed messages are eventually received. It has an eventual fault tolerance of 50%, in the sense that a fork created by >50% correct nodes scores higher than any fork created by the remaining potentially-faulty validators. Notably, though, clients cannot be certain that any given fork created with 51% participation won’t be reverted because they cannot know whether some of these nodes are Byzantine. Clients therefore only consider a block as finalized if it has the participation of a supermajority of validators or bonded stake.
Here is a comparison on Reddit, favoring Casper PoS https://www.reddit.com/r/ethereum/comments/6s6eh8/delegated_proofofstake_vs_proofofstake_also_im/
Here is a review of Casper from the creator of DPoS. http://bytemaster.github.io/2015/08/08/Review-of-Casper-Ethereums-proposed-Proof-of-Stake-Algorithm/
Best Answer
A quote I like to use from Vlad Zamfir (one of the people building the CASPER protocol) is this:
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.