Skip to content

Proposal: Remove Peer Exchange in GossipSub Prune Message #570

@diegomrsantos

Description

@diegomrsantos

Introduction

Peer Exchange in GossipSub may introduce more issues than it aims to solve. I propose that we consider removing it.

Current Benefits of Peer Exchange:

  • Mesh Recovery: Helps pruned peers find alternative nodes to reestablish a mesh.

Concerns:

  • Unverifiable Data: Peer Exchange is the only feature that introduces data that can't be validated in the protocol. A malicious agent could generate fake identities and inject them, leaving no way to verify this data.
  • Message Size: We've observed prune messages with sizes up to 9KB and 210 peerIDs, and this size is primarily made up of Peer Exchange data. If signed records were populated, sizes could get substantially larger, raising both efficiency and potential DoS concerns.
  • Privacy and Security Risks: Publicizes all connected peers in a global topic, making them easier targets for attacks.
  • Suboptimal or Malicious Peer Suggestions: Possible that a malicious actor could flood the network with bad peer suggestions, reducing network quality.
  • Limited Applicability for Peer Discovery: Peer Exchange may aid in mesh recovery for pruned peers, but it does not replace the need for a dedicated peer discovery mechanism crucial for forming the initial mesh. As signed peer records containing the node's dialable addresses are currently optional, this feature is even less useful. Finally, waiting to be pruned to receive a list of peers is a slow, unpredictable, and unreliable strategy for bootstrapping a network from a single or small set of peers.

Proposal
I propose that we reconsider the existence of Peer Exchange in GossipSub to reduce potential vulnerabilities and to keep the protocol streamlined and focused on its primary goals.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    Triage

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions