Skip to content

Dandelion Implementation / Spec #341

@kaiserd

Description

@kaiserd

Background

As I am working on a Dandelion Vac RFC specifying Dandelion for Waku Relay
(and by extension for libp2p, because Waku Relay builds on libp2p gossipsub),
I was looking into current implementations and analyses beyond the Dandelion/Dandelion++ papers.
The first goal is identifying anonymity properties,
and, if possible, relaxations that yield lower latency but still beneficial anonymity properties.

js-libp2p-gossipsub Dandelion Implementation

The current implementation of js-libp2p-gossipsub does not follow the Dandelion and/or Dandelion++ approaches directly.
It currently implements what the Dandelion paper refers to as "diffusion-by-proxy" with a fixed stem length
(the implementation features an additional degree parameter for the anonymity phase, though).

In contrast, Dandelion

  1. fixes the anonymity graph
  2. has a probabilistic stem length
  3. introduces random delay in the fluff phase (because it uses diffusion) which gossipsub does not do

Also, it introduces epochs and a fail-safe that diffuses messages if they are not received via fluff spreading after some time.

I wanted to ask if there is any analysis regarding the design choices made in the current implementation?
It will improve latency, but (presumably) at the cost of lower entropy (i.e. higher recall / precision for the attacker).

Dandelion Vac Spec

Would any js-libp2p-gossipsub Dandelion contributor be interested in collaborating on a Vac RFC specifying Dandelion for libp2p gossipsub / Waku Relay? I am currently working on a first raw version as a basis for discussion. We are interested in trade-offs leaning towards lower latency at a low anonymity cost.

Further References

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions