This file has been truncated. show original
# Dandelion in Grin: Privacy-Preserving Transaction Aggregation and Propagation
This document describes the implementation of Dandelion in Grin and its modification to handle transactions aggregation in the P2P protocol.
Dandelion is a new transaction broadcasting mechanism that reduces the risk of eavesdroppers linking transactions to the source IP. Moreover, it allows Grin transactions to be aggregated (removing input-output pairs) before being broadcasted to the entire network giving an additional privacy perk.
Dandelion was introduced in  by G. Fanti et al. and presented at ACM Sigmetrics 2017. On June 2017, a BIP  was proposed introducing a more practical and robust variant of Dandelion called Dandelion++  published later in 2018. This document is an adaptation of this BIP for Grin.
We first define the original Dandelion propagation then the Grin adaptation of the protocol with transaction aggregation.
## Original Dandelion
Dandelion transaction propagation proceeds in two phases: first the “stem” phase, and then “fluff” phase. During the stem phase, each node relays the transaction to a *single* peer. After a random number of hops along the stem, the transaction enters the fluff phase, which behaves just like ordinary flooding/diffusion. Even when an attacker can identify the location of the fluff phase, it is much more difficult to identify the source of the stem.