Free 30-min Web3 Consultation
Book Consultation
Smart Contract Security Audits
View Audit Services
Custom DeFi Protocol Development
Explore DeFi
Full-Stack Web3 dApp Development
View App Services
Free 30-min Web3 Consultation
Book Consultation
Smart Contract Security Audits
View Audit Services
Custom DeFi Protocol Development
Explore DeFi
Full-Stack Web3 dApp Development
View App Services
Free 30-min Web3 Consultation
Book Consultation
Smart Contract Security Audits
View Audit Services
Custom DeFi Protocol Development
Explore DeFi
Full-Stack Web3 dApp Development
View App Services
Free 30-min Web3 Consultation
Book Consultation
Smart Contract Security Audits
View Audit Services
Custom DeFi Protocol Development
Explore DeFi
Full-Stack Web3 dApp Development
View App Services
LABS
Glossary

Dandelion++ Protocol

A network-level privacy protocol for peer-to-peer transaction propagation that uses a stem phase for anonymous broadcasting before diffusing to the network.
Chainscore © 2026
definition
NETWORK PRIVACY

What is the Dandelion++ Protocol?

Dandelion++ is a network-level privacy protocol designed to obscure the origin IP address of a node broadcasting a transaction or block on a peer-to-peer network, thereby enhancing user anonymity.

The Dandelion++ Protocol is a peer-to-peer (P2P) network propagation mechanism that introduces a two-phase, randomized routing process to make it statistically difficult for network observers to link a transaction to its originating node. In the initial stem phase, a transaction is passed randomly along a line of peers in a quasi-anonymous manner. This is followed by a fluff phase, where the transaction is broadcast using the standard, efficient flooding (gossip) protocol. This two-step process, inspired by the way dandelion seeds disperse, creates a significant plausible deniability gap between the transaction's first appearance on the network and its source.

The protocol's key innovation over its predecessor, Dandelion, is its robustness against active adversaries who control a portion of the network. Dandelion++ uses a randomized, dynamic graph for the stem phase, where each node selects a Dandelion++ relay peer based on a persistent, per-node mapping. This design prevents an adversary from learning the propagation path by temporarily disconnecting peers. The transition from stem to fluff phase is also randomized per transaction, typically triggered after a random number of hops or a timeout, making the attack surface for deanonymization much smaller.

Implementing Dandelion++ requires modifications at the network layer of a blockchain client, not the consensus layer. Its primary goal is to mitigate transaction origin privacy attacks, where adversaries—such as internet service providers (ISPs), blockchain analytics firms, or other nodes—use network traffic analysis to cluster transactions and potentially link them to real-world identities. By obscuring the IP address origin, it complements other privacy techniques like confidential transactions or zero-knowledge proofs, which protect on-chain data but not network metadata.

A practical example of its application is in Bitcoin's peer-to-peer network. Proposals like Bitcoin Improvement Proposal (BIP) 156 outline an implementation where nodes operate in either stem or fluff mode. When a node creates a transaction, it enters the stem phase, forwarding it to a single, predetermined Dandelion++ peer. This continues until the transaction "fluffs," at which point it is broadcast to all connected peers using the standard inv/getdata message flow, making its propagation path untraceable back to the source.

The trade-offs of Dandelion++ involve a slight increase in propagation latency during the stem phase, as the transaction takes a longer, serialized path before flooding the network. However, this latency is considered a worthwhile trade-off for significantly enhanced privacy. Its effectiveness is measured by the anonymity set it creates—the number of possible nodes that could have originated a transaction—which grows exponentially with the length of the stem, making true source identification computationally infeasible for a passive observer.

etymology
PROTOCOL NAMING

Etymology and Origin

The name Dandelion++ combines a botanical metaphor with iterative cryptographic research to describe a network-level privacy enhancement for peer-to-peer systems.

The Dandelion++ protocol is a network-layer anonymity solution for peer-to-peer blockchains, named for its resemblance to the dispersal of dandelion seeds. Its development is an iterative academic collaboration, originating from the Dandelion protocol proposed by Giulia Fanti et al. in 2017. The '++' suffix denotes a significant enhancement over the original, specifically hardening the protocol against deanonymization attacks. The core metaphor visualizes a message's journey: a stem phase where it travels via a random, linear path (the stem), followed by a fluff phase where it is broadcast to the entire network (the dispersing seeds).

The protocol's origin lies in addressing a critical weakness in standard gossip protocols like Bitcoin's. In a naive broadcast, a transaction's origin can be statistically inferred by observing which node relays it first. Dandelion++ introduces uncertainty by routing the transaction through a random, sequential chain of peers before the final broadcast. This two-phase approach—first anonymity, then diffusion—makes it computationally difficult for a network spy to link the initial propagation point (the source node) to the eventual public transaction.

Key cryptographic contributions defining Dandelion++ include a robust graph construction for the stem phase, ensuring the anonymity graph remains effective even as peers join and leave the network, and a privacy-preserving fluff phase mechanism. The '++' improvements specifically introduced a lightweight, decentralized estimator for nodes to detect when they are at the end of the stem, triggering the fluff broadcast without centralized coordination. This made the protocol more resilient against active adversaries who might control a subset of network nodes.

The protocol represents a shift from on-chain privacy mechanisms, like confidential transactions, to network-layer privacy. While tools like CoinJoin obscure transaction graphs on the ledger, Dandelion++ obscures the IP-level origin of the transaction data itself. It has been implemented in cryptocurrencies like Bitcoin Core (as an option for transaction relay) and Ergo, serving as a foundational research artifact for improving base-layer privacy in decentralized networks without requiring consensus changes to the underlying blockchain logic.

how-it-works
ANONYMITY PROTOCOL

How Dandelion++ Works

Dandelion++ is a network-level privacy protocol designed to obscure the origin of transactions on peer-to-peer networks like Bitcoin and Ethereum, making it significantly harder for adversaries to perform transaction graph analysis and deanonymize users.

The Dandelion++ protocol operates in two distinct phases: the stem phase and the fluff phase. When a node creates a new transaction, it enters the stem phase, where the transaction is relayed sequentially through a randomly selected, single path of peers. This cautious, one-to-one propagation mimics the stalk of a dandelion, preventing observers from easily determining the true source. The transaction "hops" from node to node without being broadcast widely, delaying its public announcement to the network.

After a random number of hops (typically 2-4), the transaction transitions to the fluff phase. The node currently holding the transaction switches to a standard flooding or gossip protocol, like Bitcoin's standard diffusion. It broadcasts the transaction to all its peers simultaneously, causing it to rapidly propagate across the entire network like the dispersed seeds of a dandelion. This two-phase structure creates a critical anonymity set, as the point of origin is hidden among all nodes in the stem path.

A key innovation of Dandelion++ over its predecessor is its robust defense against active adversaries. The protocol uses a four-regular graph for peer connections and a privacy-preserving ranking mechanism to select the next stem relay. This design thwarts attacks where malicious nodes spy on connections to trace transactions back to their source. Even if an adversary controls a significant portion of the network, the probabilistic and decentralized relay selection makes precise source identification computationally difficult.

In practice, Dandelion++ is implemented as a soft fork; nodes running the protocol can coexist with non-compliant nodes. If a transaction reaches a non-Dandelion++ node during the stem phase, it immediately enters the fluff phase, providing graceful degradation of privacy rather than a failure. This incremental deployability has made it an attractive upgrade for enhancing network-layer privacy in major cryptocurrencies, addressing a fundamental weakness in their standard peer-to-peer transaction propagation.

key-features
DANDELION++ PROTOCOL

Key Features and Design Goals

Dandelion++ is a network-level privacy protocol designed to obscure the origin of a transaction by routing it through a random path before broadcasting it to the peer-to-peer network.

01

Anonymity Set Expansion

The primary goal is to increase the anonymity set for transaction origins. By delaying the link between a transaction's first broadcast and its public propagation, it becomes significantly harder for network observers to perform IP address deanonymization and link a transaction to its source node.

02

Stem and Fluff Phases

The protocol operates in two distinct phases:

  • Stem Phase: The transaction is passed quietly, peer-to-peer, along a randomly selected path (the "stem"). This is a diffusion process.
  • Fluff Phase: At a randomly selected node, the transaction transitions to a standard flooding broadcast, where it is propagated to the entire network. This decouples the origin from the public broadcast point.
03

Graph-Theoretic Design

Dandelion++ uses a quasi-random graph structure (specifically, a 4-regular graph) to determine the stem path. This provides stronger anonymity guarantees than the original Dandelion protocol by being robust against graph-learning attacks, where an adversary attempts to map the network's propagation graph.

04

Adversary Resistance

The protocol is designed to be secure against passive adversaries who control a subset of network nodes. Key resistance features include:

  • Resilience to first-spy estimator attacks, where the first spy to see a transaction is assumed to be near the source.
  • Protection against graph intersection attacks over multiple transaction observations.
06

Limitations and Considerations

While effective against network-level surveillance, Dandelion++ has defined limitations:

  • Does not protect against end-to-end timing correlation if an adversary controls the sender and receiver.
  • Privacy weakens if the adversary controls a large fraction of network nodes (eclipse attack).
  • It is a network-layer solution and does not address blockchain-level analysis like chain analysis.
visual-explainer
DANDELION++ PROTOCOL

Visual Explainer: The Stem and Fluff Path

This visual guide breaks down the two-phase transaction propagation mechanism of the Dandelion++ protocol, a privacy-enhancing feature used in several blockchain networks.

The Stem and Fluff Path is the core privacy mechanism of the Dandelion++ protocol, which anonymizes the origin of a transaction by routing it through a randomized, multi-hop stem phase before broadcasting it widely in a fluff phase. This two-stage process is designed to break the link between the transaction's true source IP address and its eventual appearance on the public peer-to-peer network, making network-level deanonymization attacks significantly more difficult for adversaries.

In the stem phase, a transaction enters the network and is passed, or stemmed, from node to node along a pseudo-random path. Each node relays the transaction to a single, randomly selected peer, creating a chain of propagation that obscures the origin. This phase uses a four-regular graph abstraction to determine the next hop, ensuring the path is unpredictable and resistant to analysis. The transaction remains in this covert, single-path relay mode for a randomly determined number of hops.

The protocol transitions to the fluff phase after the stem phase completes, which is triggered either by reaching the random hop limit or by encountering a node that is not in stem mode. In this phase, the transaction is broadcast using a standard, efficient diffusion protocol (like Gossip or Flooding), where each node relays it to all its connected peers. This rapid, widespread broadcast is necessary for fast network propagation but occurs only after the transaction's trail has been sufficiently obfuscated during the stem phase.

The key privacy guarantee stems from the difficulty for an adversary to trace the transaction back through the stem path. An observer who first sees the transaction during the fluff phase cannot easily determine which node in the preceding stem chain was the original source. The protocol's design specifically counters passive network adversaries who monitor traffic and attempt to link transactions to IP addresses, providing a lightweight yet effective layer of network-level anonymity for broadcast messages.

security-considerations
DANDELION++ PROTOCOL

Security Considerations and Limitations

Dandelion++ is a network-level privacy protocol designed to obscure the origin IP address of a transaction broadcast, mitigating deanonymization attacks. While it enhances privacy, it has inherent trade-offs and limitations.

01

Stem-Phase Privacy Guarantees

The stem phase is the initial, covert propagation stage where a transaction is passed in a line (a "dandelion stem") between peers. The primary limitation is that privacy is probabilistic, not absolute. An adversary controlling the first and second nodes in the stem can trivially link the transaction to its origin. The protocol's effectiveness depends on the graph's randomness and the assumption that most nodes are honest.

02

Fluff-Phase Vulnerability

After the stem phase, the transaction enters the fluff phase, where it is broadcast using standard diffusion (gossip). This phase is necessary for speed but reintroduces vulnerability. Sophisticated network-level adversaries can perform timing and intersection attacks by observing when the transaction enters the fluff phase from different nodes, potentially narrowing down its origin to a subset of the network.

03

Adversarial Node Models

Dandelion++'s security is analyzed under specific adversarial models, which define its limitations:

  • Passive Eavesdropper: Listens to network traffic. Dandelion++ provides strong protection.
  • Active Adversary: Can run malicious nodes. Protection weakens as the adversary controls more of the network graph.
  • Graph-Aware Adversary: Knows the entire pseudorandom graph used for stem routing. This is the worst-case scenario and significantly reduces anonymity, though the protocol includes countermeasures like 4-regular graph construction to mitigate this.
04

Latency vs. Anonymity Trade-off

A key limitation is the inherent trade-off between propagation latency and anonymity set size. The longer the stem phase (more hops), the larger the potential anonymity set, but the longer it takes for the transaction to reach the wider network. In practice, stem phases are kept short (e.g., 2 hops) to maintain acceptable latency, which caps the theoretical privacy benefit. This makes the protocol less effective in low-latency, high-throughput environments.

05

Lack of Incentive Compatibility

Dandelion++ is not natively incentive-compatible. A rational, profit-seeking node (e.g., a miner) has a disincentive to follow the stem-phase protocol, as delaying the propagation of a competing transaction can provide a mining advantage. Such nodes may "defect" and fluff a transaction immediately, breaking the privacy chain. This requires additional protocol layers or social consensus to enforce, which is a significant practical limitation.

ANONYMITY PROTOCOLS

Comparison: Dandelion++ vs. Standard Gossip

A technical comparison of transaction propagation mechanisms, focusing on anonymity and network-level privacy.

Feature / MetricDandelion++ ProtocolStandard Gossip (Flooding)

Primary Objective

Anonymity at the network layer

Fast, reliable broadcast

Propagation Phases

Stem phase (anonymity) then Fluff phase (flooding)

Single-phase flooding

IP Address Obfuscation

First-Hop Privacy

Randomized, outbound relay selection

Direct connection to broadcasting peer

Traceback Resistance

High (non-trivially links origin to first relay)

Low (trivially links to origin IP)

Latency Overhead

Adds 1-2 hop delay in stem phase

Minimal, optimized for speed

Network Bandwidth

Identical in fluff phase; stem phase uses less

High, immediate full broadcast

Deployment Status

Proposed enhancement (e.g., Bitcoin research)

Default in most blockchain networks

ecosystem-usage
PRIVACY ENHANCEMENT

Ecosystem Usage and Implementations

Dandelion++ is a network-level privacy protocol designed to obscure the origin of transactions by mixing them with other network traffic before broadcasting.

01

Core Mechanism: Stem and Fluff Phases

Dandelion++ operates in two distinct phases to obfuscate transaction origin. The Stem Phase is a privacy-critical period where a transaction is passed randomly along a line of nodes (a "stem") using epidemic diffusion. The Fluff Phase begins at a random node in the stem, which then broadcasts the transaction to the entire network using standard gossip protocol. This separation makes it computationally difficult to link the broadcasting node to the original source.

03

Adaptation in Ethereum (P2P Networking)

Ethereum's networking layer has incorporated a modified version of Dandelion++ for propagating transactions. The goal is to mitigate eclipse attacks and reduce the advantage of mempool snooping by sophisticated actors. In Ethereum's implementation, transactions enter a stem phase for a short, randomized period before being fluffed to the wider network, making it harder for adversaries to map transaction origin to IP addresses for front-running or deanonymization.

04

Key Privacy Threat: Sybil Attacks

Dandelion++ is specifically designed to resist sybil attacks, where an adversary controls a large number of nodes on the network. A naive broadcast makes it easy for a sybil attacker to triangulate a transaction's source. Dandelion++ counters this by:

  • Using a randomized, dynamic graph for the stem phase.
  • Ensuring the transition from stem to fluff occurs at a randomly selected node.
  • Making the probability of an attacker's node being on the critical path statistically low.
05

Comparison with Other Privacy Techniques

Dandelion++ addresses a different layer of privacy than most cryptographic techniques.

  • On-Chain Privacy (e.g., ZK-SNARKs, Ring Signatures): Hides transaction details on the ledger (sender, receiver, amount).
  • Network-Level Privacy (Dandelion++): Hides the origin of the transaction broadcast in the P2P network.
  • Mixnets (e.g., Tor): Can be used in conjunction with Dandelion++ but operate at a different network layer. Dandelion++ is a lightweight, protocol-native solution.
06

Limitations and Considerations

While effective, Dandelion++ has inherent limitations. Its privacy guarantees are probabilistic, not absolute. Privacy can be compromised if an adversary controls the first node in the stem or a significant portion of the network. It also introduces a slight propagation delay due to the stem phase. Furthermore, it does not protect against traffic analysis of the fluff phase broadcast, meaning the final broadcaster's IP is still exposed, though it is not the original source.

DANDELION++ PROTOCOL

Common Misconceptions

Dandelion++ is a network-level privacy protocol for peer-to-peer networks, designed to obscure the origin of transactions before broadcast. This section clarifies frequent misunderstandings about its purpose, operation, and limitations.

No, Dandelion++ does not provide complete anonymity; it is a network-level anonymity protocol designed to obscure the IP address origin of a transaction during its initial propagation phase. Its primary goal is to increase the difficulty for a network-level adversary to link a transaction's first broadcast to the originating node's IP. It does not provide cryptographic anonymity for the transaction's on-chain details or protect against deanonymization through blockchain analysis of addresses and transaction graphs. It is a complementary layer to other privacy technologies, not a standalone solution.

DANDELION++ PROTOCOL

Frequently Asked Questions (FAQ)

A technical FAQ addressing common developer and analyst questions about the Dandelion++ network-level privacy protocol.

The Dandelion++ protocol is a network-layer privacy mechanism designed to obscure the origin IP address of a transaction or block propagation on a peer-to-peer network. It works by routing messages through a random path in two distinct phases: a stem phase and a fluff phase. During the stem phase, a message is passed sequentially and privately between a small number of randomly selected peers. After a random number of hops, the message enters the fluff phase, where it is broadcast using the standard, efficient flooding (gossip) protocol, making its true origin difficult to trace back.

ENQUIRY

Get In Touch
today.

Our experts will offer a free quote and a 30min call to discuss your project.

NDA Protected
24h Response
Directly to Engineering Team
10+
Protocols Shipped
$20M+
TVL Overall
NDA Protected Directly to Engineering Team