- What is ‘flooding’?
Flooding is when a node communicates the transaction to all its peers, who in turn communicate to all their peers, and so forth, with some checks to prevent redundant communication. The information travels in all directions over the network like a wave. Some cryptocurrencies, like Bitcoin, randomize the timing of this broadcast, but Monero does not.
- What are the two phases of a Dandelion broadcast and what happens in each phase?
◦ Anonymity (or stem) phase - seeking out a proxy node along a special linear search path
◦ The Spreading (or fluff) phase – After seeking out a proxy node, then from this proxy node spreading the information rapidly and symmetrically
- What potential weakness of Dandelion does Dandelion++ aim to address?
Dandelion++ tweaks Dandelion to resist large-scale rule-breaking deanonymization attacks.
- Under the Dandelion++ protocol, what are the two ways to transition from the ‘stem’ phase to the ‘fluff’ phase?
In the new stem phase, to implement dynamic connectivity, it proceeds in discreet intervals, called epochs. Each node switches epoch independently, typically every few minutes. With each new epoch, a node picks two new relay connections at random from its outbound connections. Then whenever the node creates its own transaction it sends it over one of these two relays, always making the same choice for a given epoch. And whenever it gets a transaction from another node for forwarding during stem phase, if it is a relayer (more on this below), it sends it out randomly over one of the two relays.