the servers are partitioned into two disjoint sets: {
} and {
}
All requests sent from {
} to {
} are lost
A more general framework
The impossibility of guaranteeing both safety and liveness in an unreliable distributed system
The definitions
Safety
The original definition
Informally, an algorithm is safe if nothing bad ever happens
In blockchain context
Consistency: If we were to ask different (honest) nodes about the state of the chain at some point, then we should always get the same answer, no matter which node we ask
The blockchain transaction history will not contain two conflicting blocks
Liveness
The original definition
By contrast, an algorithm is live if eventually something good happens
The Proof-of-Stake (PoS) Ethereum consensus protocol is constructed by applying the finality gadget Casper FFG on top of the fork choice rule LMD-GHOST
Reference
Three Attacks on Proof-of-Stake Ethereum Paper (introduction part)
The Proof-of-Stake (PoS) Ethereum consensus protocol is constructed by applying the finality gadget Casper FFG on top of the fork choice rule LMD-GHOST
High-Level Overview
Proposer proposal and run fork-choice rule to add new block
Attesters publishe the attestations and broadcast
How it works
Randomly selected committee
At each epoch, all validators are equally assigned to 32 slots through "committee"
Numbers
Minimum 1 committee per slot, maximum 64
Minimum 128 validators per committee, maximum 2048
At least 32 * 1 * 128 = 4096 validators are required
Up to 32 * 64 * 2048 = 4194304(419.43w) validators are allowed
There are currently 456620 validators
Proposer and attester
The first member in the committee as proposer, and the remaining members as attesters
There is only one proposer, the rest are all attesters
Proposing blocks and attesting are done immediately, then broadcast the block and attestation