A Look Into Crypto's Leading Multi Client Protocol

By Michael @ CryptoEQ | CryptoEQ | 29 Aug 2024


You are reading an excerpt from our free but shortened abridged report! While still packed with incredible research and data, for just $40/month you can upgrade to our FULL library of 60+ reports (including this one) and complete industry-leading analysis on the top crypto assets. 

67cbbf4723857b85c151585aa280e6d940346c501cef75bafd7dea02b44b24c9.png

Becoming a Premium member means enjoying all the perks of a Basic membership PLUS:

  • Full-length CORE Reports: More technical, in-depth research, actionable insights, and potential market alpha for serious crypto users
  • Early access to future CORE ratings: Being early is sometimes just as important as being right!
  • Premium Member CORE+ Reports: Coverage on the top issues pertaining to crypto users like bridge security, layer two solutions, DeFi plays, and more
  • CORE report Audio playback: Don’t want to read? No problem! Listen on the go.

 

Ethereum Clients

Anyone can participate in the Ethereum network by running node software or a client. This allows users to interact within the Ethereum ecosystem within the rules laid out by the protocol. Ethereum owes much of its strength and adaptability to the diversity of its client implementations. Written in various programming languages, these clients not only enhance the network's robustness and security but also play a crucial role in maintaining its operational integrity, particularly in a Proof of Stake (PoS) network.

The assortment of Ethereum clients across different programming frameworks underpins the network’s resilience. Since each client has distinct codebases and operational nuances, vulnerabilities or bugs in one do not compromise the entire network. This diversity is especially critical in achieving finality within a PoS framework, where a dominant client with bugs could impede consensus.

The responsibility for maintaining and improving the Ethereum network is distributed among multiple development teams. This decentralization of development efforts spurs innovation, with each team bringing unique perspectives and solutions. It also ensures network continuity, as the absence or discontinuation of any single team's contributions doesn't halt the network's evolution.

Ethereum's Dual-Layer Structure: Execution and Consensus

Ethereum operates on a dual-layer structure, comprising the execution and consensus layers, each supported by different client software.

  1. The Execution Layer: Also known as the Execution Engine or EL client, this layer listens to new transactions, executes them in the Ethereum Virtual Machine (EVM), and maintains the current state and database of Ethereum data.
  2. The Consensus Layer: Referred to as the Beacon Node or CL client, this layer implements the PoS consensus algorithm, validating data from the execution client to achieve network agreement.

Ethereum node diagram Source

Key Ethereum EL Clients

  • Go Ethereum (Geth): Geth, written in Go, is a foundational Ethereum implementation. It transforms a computer into an Ethereum node, participating in the peer-to-peer network. Geth is responsible for generating new blocks, validating them, and updating the network's state, including ether balances and smart contract data.

  • Hyperledger Besu: Operating under the Linux Foundation's Hyperledger project, Besu is an open-source, permissioned blockchain platform compatible with the Ethereum ecosystem. It caters to enterprise use cases, offering both the security of a permissioned network and the flexibility of a public blockchain. Besu supports the EVM and Solidity, allowing for a wide range of dApps and smart contracts.

  • Erigon: Formerly known as Turbo-Geth, Erigon represents a re-architected Ethereum implementation focusing on speed and disk space efficiency. Originating as a Geth fork, Erigon has evolved into a fast, modular, and optimized execution layer client, particularly suited for managing large amounts of on-chain data.

  • Nethermind: Launched in 2017, Nethermind is a high-performance Ethereum client built on .NET. Compatible with Linux, Windows, and macOS, it supports various consensus algorithms and offers rapid sync speeds. Nethermind’s configurability and support for external plugins make it a versatile option in the Ethereum client ecosystem.

ETH EL clients table Source

Key Ethereum CL Clients

Lighthouse, developed by Sigma Prime, an information security and software engineering firm, is a significant Ethereum consensus client. Funded by the Ethereum Foundation, ConsenSys, and private individuals, Lighthouse connects with other Ethereum consensus clients, reinforcing the decentralized nature of Ethereum's PoS blockchain. Its development underscores the collaborative efforts within the Ethereum community to enhance network robustness.

Lodestar stands out for its commitment to security and minimal trust requirements, aiming to broaden participation in Ethereum's network. As a light client, Lodestar enables users to run full nodes independently, reducing reliance on external parties. This approach not only lowers hardware demands but also ensures direct access to the Ethereum blockchain, reinforcing censorship resistance – a cornerstone of decentralized networks.

The Prysm project offers a Go implementation of the Ethereum protocol, encompassing a full beacon node and validator client for consensus participation. Prysm's integration of Google’s gRPC library, BoltDB for persistent key-value storage, and libp2p for peer-to-peer networking, positions it as a top choice for production servers. These features highlight Prysm's alignment with Ethereum's vision of a scalable, secure, and efficient blockchain ecosystem.

Nimbus emerges as a unique client for Ethereum's consensus and execution layers, focusing on minimal resource usage. Its ability to perform efficiently on embedded systems, including Raspberry Pis and mobile devices, broadens its applicability. Moreover, Nimbus's low resource consumption allows it to coexist with other server workloads, offering a cost-effective solution for stakers and server operators.

Teku distinguishes itself as the only Ethereum 2.0 client that has not received funding from the Ethereum Foundation, being fully supported by ConsenSys. Designed to meet institutional needs and security standards, Teku has been actively involved in all multiclient testnets, showcasing its reliability and commitment to Ethereum's evolving ecosystem.

Ethereum CL Clients Source

All else equal, having more nodes and client diversity is good for decentralization, but sometimes, running a node is too technical, expensive, or burdensome for the average user. Archive nodes store all the blockchain data from genesis and forms an archive of historical states (who owns what at a certain point in the past). This is only necessary if a user/entity needs to query something, such as an account balance at block 4,000,000, making it necessary for only services such as block explorers, chain analytics firms, wallets, etc.  Because of this structure, archive nodes contain terabytes of data, making them less appealing to normal users due to the hardware requirements and storage costs needed to run one.

Any synchronization option other than archive will result in the deletion of blockchain data. This indicates that there is no archive of all prior states, but the entire node can generate them on demand.

Full nodes store the full blockchain data (although periodically pruned) and help verify the blocks that are getting added to the blockchain. Full nodes also provide proofs that show that past transactions are valid. 

Light nodes just store the much smaller ‘proofs’ of past transactions. These light nodes help more people participate in the network, since they store less stuff and are cheaper to run. An archive node store everything that the full nodes keep and more. These require the most computing space to run and maintain and are really only necessary for analytics tools, wallet providers, and Ethereum infrastructure projects.

Unlike in Bitcoin, Ethereum does not have just one software client. An Ethereum node actually consists of two distinct software components: a consensus client and an execution client. The consensus and execution clients within a node communicate using the remote procedure call (RPC) protocol and the JSON data format (JSON-RPC). JSON-RPC is an API that specifies both data structures and rules for their processing.

In Ethereum, PoS consensus clients determine how the blockchain reaches a consensus on the blockchain's true state. The software handles importing validators, validator responsibilities, block proposals, attestations, incentives, slashing, forks, and the state of the beacon chain. It does not operate the smart contracts or handle transactions.

Below are the official implementations of the consensus specs (the blueprints for the consensus client software) in various languages, all with slightly different user experiences and feature support.

  • prysm — Go implementation of the consensus specs maintained by the Arbitrum team with our docs found here.
  • lighthouse — Rust implementation.
  • teku — Java implementation.
  • lodestar — Javascript implementation.
  • nimbus-eth2 — Nim implementation.

Execution clients execute smart contracts and manage the EVM. In addition, they keep track of all accounts that interact with Ethereum. Execution clients rely on consensus clients to finalize the blockchain in order to function effectively. Below are the various execution clients.

  • go-ethereum — a part of the Ethereum Foundation and the original Ethereum client written in Go.
  • nethermind — .NET implementation.
  • besu — Java implementation.
  • erigon — another Go implementation focused on optimizations.

Any combination of the five consensus clients and four execution clients is a node. The most popular one is Geth, but other ones like OpenEthereumBesu or Nethermind are also options. Ethereum’s success in maximizing uptime and network reliability, unlike outages experienced in Solana, Polygon, and others, is thanks to this multi-client ecosystem. This approach amplifies redundancy and isolates bugs to just one implementation. 

How do you rate this article?

73


Michael @ CryptoEQ
Michael @ CryptoEQ

I am a Co-Founder and Lead Analyst at CryptoEQ. Gain the market insights you need to grow your cryptocurrency portfolio. Our team's supportive and interactive approach helps you refine your crypto investing and trading strategies.


CryptoEQ
CryptoEQ

Gain the market insights you need to grow your cryptocurrency portfolio. Our team's supportive and interactive approach helps you refine your crypto investing and trading strategies.

Send a $0.01 microtip in crypto to the author, and earn yourself as you read!

20% to author / 80% to me.
We pay the tips from our rewards pool.