Crypto glossary
Client diversity
Client diversity means spreading a network's nodes across several independent software implementations so a bug in one client cannot break the whole chain.
A client is the software a node runs to follow the protocol. Ethereum deliberately has several: execution clients such as Geth, Nethermind, Besu, Erigon and Reth, and consensus clients such as Prysm, Lighthouse, Teku, Nimbus and Lodestar. Each is written by a different team, often in a different programming language, from the same specification.
If every validator ran the same client, a single bug could make the whole network finalise an invalid chain or stop entirely. With diversity, a faulty client knocks out only its share of nodes. The thresholds matter: on Ethereum, a client used by more than two thirds of stake could finalise a bad chain, and validators on it could face heavy penalties, so the community campaigns to keep every client below one third.
Diversity has costs: specifications must be precise, every upgrade has to be implemented and tested several times, and differences between clients can themselves cause splits. Bitcoin takes the opposite approach, with nearly all nodes running Bitcoin Core to avoid consensus divergences. In practice, Ethereum execution clients have long been dominated by a single implementation.
Example
When a bug in one Ethereum execution client made its nodes stop producing valid blocks in early 2024, the chain kept finalising because most validators ran other clients.
