Discovery v5

Piper Merriam,discoverynetworkingpeer-to-peerp2parchive

Node Service Discovery is a crucial technology within Ethereum. This post aims to provide the reader with little to no peer-to-peer networking knowledge to have an overview of discovery services, how it works, and resources to dive deeper.

What is node discovery, and why is it important?

Ethereum operates as a decentralized network comprising numerous computers called nodes. These nodes run specialized software capable of validating blocks and transaction data.

According to ethernodes.org, the Ethereum network comprises more than 7000 Ethereum nodes spread widely across the globe, forming the Ethereum network.

Each new node joining the network must know how to find the other nodes, or when a node goes offline, it must know how to find other nodes; Nodes can do this with discovery services.

These node connections allow for transactions, blocks, and other network data to happen on Ethereum.

New nodes would struggle to establish connections without node discovery, halting the network's overall functionality.

The Achilles heel of the node discovery protocol is the process of joining the network.

Joining the Ethereum network presents a challenge as it is decentralized.

Imagine you had to find a few specific people in a huge crowd - you wouldn't try chatting to everyone to see if they were the right people - you would set up a system in advance to find each other more efficiently - this is what the discovery service provides for Ethereum nodes.

This establishes a system for new nodes to find a few peers who can then provide a list of their peers, and so on, in a cascade of introductions. Ethereum's discovery service allows this in a decentralised and automated way. Instead of using a centralized authority, nodes must independently discover and establish connections with peers. This decentralized approach prevents any single entity from gaining control, avoiding a single point of failure. However, this node discovery process, also known as bootstrapping, can be complex. Bootstrapping involves finding and connecting to existing nodes in the network. While trusted boot nodes could provide initial contact points, they present potential single points of failure and can become overwhelmed with traffic. To address these challenges, a decentralised discovery service is required.

Introducing Discovery V5 (DISCv5)

Ethereum needs DISCv5, a new service discovery protocol, because the current protocol, DISCv4, needs to be more efficient and scale better with increasing nodes and applications in the Ethereum ecosystem.

Discv4 doesn't scale well because it uses a random walk approach to discover peers in application-specific sub-networks. This approach becomes increasingly inefficient as more applications join the network.

DISCv5 aims to address these issues by combining pseudo-random and deterministic placement of advertisements (a process by which nodes are selected to advertise their presence in the network) to achieve both efficiency and security.

Additionally, DISCv5 implements a new admission control protocol that protects against a wide range of malicious behaviors expected in an open environment.

With DISCv5, Ethereum can perform lookup operations using three orders of magnitude fewer messages and discover ten times more peers per time slot while achieving a similar or lower eclipse probability. (An eclipse attack occurs when an attacker can control the connections and information flow to a specific node)

Overall, DISCv5 is an essential upgrade to the Ethereum ecosystem, ensuring that service discovery remains efficient and secure as the network grows.

Benefits of DiscV5 over DiscV4:

Portal Website
Portal Specs