Dandelion
Dandelion (BIP-156) est une proposition pour protéger l'origine des transactions. Une transaction passe d'abord par une « tige » de relais avant le « pissenlit » habituel. Empêche un attaquant d'identifier le nœud émetteur. Implémenté dans Monero, expérimental sur Bitcoin.
Le problème de la fuite d'origine
Lorsque vous diffusez une transaction Bitcoin depuis votre nœud, celui-ci la propage à tous ses pairs en quelques secondes. Un adversaire qui se connecte à un grand nombre de nœuds peut, en observant lequel a relayé la transaction en premier, deviner avec une bonne probabilité quel nœud en est à l'origine. Cette attaque, appelée « topology-based deanonymization », fonctionne sans aucune analyse de la blockchain. Elle a été démontrée notamment par les chercheurs de l'université de l'Illinois en 2017.
Le principe Dandelion
Dandelion (BIP-156, par Giulia Fanti, Pramod Viswanath et Andrew Miller, 2017) propose de scinder la propagation d'une transaction en deux phases :
- Phase « tige » (stem) : la transaction est transmise séquentiellement, de pair en pair, à travers une dizaine de nœuds choisis aléatoirement. Aucun ne la relaie en broadcast.
- Phase « fleur » (fluff) : à la fin de la tige, le nœud final déclenche le gossip normal (propagation à tous ses pairs).
Le résultat : impossible de remonter à l'émetteur en observant simplement quel nœud broadcast en premier, puisque ce nœud n'est pas l'émetteur, mais un relais arbitraire en bout de tige.
Dandelion++ et adoption
Dandelion++ (2018) renforce le schéma initial contre des attaques plus subtiles (graph learning, intersection attacks) en randomisant régulièrement la topologie. C'est cette version qui a été adoptée par Monero en 2020. Sur Bitcoin, la proposition BIP-156 n'a jamais été intégrée à Bitcoin Core, principalement par crainte d'augmenter la latence de propagation et d'introduire de nouveaux vecteurs DoS.
Alternatives sur Bitcoin
| Solution | Niveau de protection | Disponibilité | |---|---|---| | Tor sur Bitcoin Core | Bonne (anonymise l'IP) | Native, recommandée | | I2P | Bonne | Supportée depuis Core 22 | | Dandelion BIP-156 | Excellente | Non implémentée | | Diffuser via un nœud distant | Variable | Pratique courante |
À retenir
Faute d'adoption de Dandelion sur Bitcoin, la meilleure pratique pour anonymiser l'origine de ses transactions reste de faire tourner son propre nœud derrière Tor ou I2P. Dandelion conserve un intérêt théorique majeur et inspire des discussions régulières sur le développement futur de la couche P2P de Bitcoin.
Termes lies
- GossipLe gossip est le mécanisme de propagation des transactions et blocs dans le réseau P2P. Chaque nœud transmet les nouvelles données à ses pairs. Bitcoin et Lightning utilisent leurs propres protocoles de gossip. Indispensable à la diffusion rapide.
- TorTor (The Onion Router) est un réseau d'anonymisation par routage en oignon. Utilisé par Bitcoin Core et la plupart des nœuds privacy-conscious. Onion services (.onion) permettent même aux nœuds en NAT d'être joignables. Pas exempt de risques (exit nodes, Sybil).
- P2P (peer-to-peer)Le réseau Bitcoin est pair-à-pair : chaque nœud se connecte à d'autres pour échanger blocs et transactions. Pas de serveur central. Robuste et résistant à la censure. Décrit dans le white paper de Satoshi.
Glossaire inspire du dictionnaire de Loic Morel sur Pandul.fr.