Dandelion: anonimiteit vanuit de wortels
Er wordt vaak gezegd dat Bitcoin anoniem is. Dit is in veel gevallen niet het geval, zoals we eerder al eens toelichtte. Waar er een hoop ontwikkelingen omtrent privacy zijn rondom het applicatieprotocol, is dit in mindere mate het geval bij het netwerkprotocol. Onlangs is er een methode gepresenteerd tijdens Building on Bitcoin die de privacy op de protocollaag zou moeten bevorderen; Dandelion.
Propagatie
De peer-to-peer laag van Bitcoin zorgt ervoor dat alle informatie, zoals bijvoorbeeld transactie en blocks, naar alle nodes wordt gestuurd. Dit gebeurt op een dusdanige structurele manier waardoor de route van de data achterhaald zou kunnen worden. Daarnaast kan er een zogenaamde "sybil attack" uitgevoerd worden om transacties te traceren. Bij zo'n aanval heeft één partij een groot aantal nodes binnen het netwerk, waardoor de kans groot is dat een node behorende tot een wallet die een transactie verzendt, direct communiceert met een node van de sybil aanvaller. Hierdoor kan er direct informatie, zoals een IP-adres, van de verzender van de transactie worden verzameld. Dandelion voorkomt zo'n "sybil attack" niet volledig, maar verkleint wel de kans op het traceren van de oorspronkelijke node.
Dandelion
Dandelion, zoals de naam al doet vermoeden, heeft wat weg van een uitgebloeide paardenbloem. Er is een steel met daarbovenop zaden, die met de wind elke willekeurige richting mee genomen kunnen worden. Bitcoin maakt op dit moment gebruikt maakt van "diffusion", de verspreidingsfase. Diffusion is het direct verspreiden van een transactie naar alle bekende nodes. Dit net zoals de zaden van de paardenbloem die door de wind alle richtingen op worden geblazen. Door Dandelion wordt er een extra methode vóór deze fase toegevoegd. Deze nieuwe methode wordt de "stam fase" genoemd.
In deze nieuwe fase kiest een node eerst één Dandelion node uit de eigen lijst met bekende nodes. Dit is de enige node waarnaar de transactie verstuurd wordt. De ontvangende node heeft vervolgens 90% kans om de stam te vervolgen en de transactie door te sturen naar weer één eigen gekozen Dandelion node. Wanneer een ontvangende node beslist de stam niet meer te willen voortzetten bij 10% van de gevallen, dus gemiddeld na tien stam-stappen zal deze overgaan op de gebruikelijke diffusion. Zo zullen alle andere bekende nodes niet weten wie de oorspronkelijke verzender van de transactie is, aangezien deze al door een onbekend aantal andere aantal nodes door is gestuurd.
Het is hierbij niet noodzakelijk dat iedereen met het Dandelion protocol meewerkt. Wanneer een transactie aankomt bij een normale node, zal de stamfase direct overgaan in diffusion. Hoe meer Dandelion nodes er zijn, hoe effectiever het voortzetten van de stamfase dus wordt.
Om te voorkomen dat de route van de stam steeds hetzelfde is, en zo routes alsnog te achterhalen zijn, wordt de gekozen Dandelion node regelmatig veranderd. Doordat dit voor elke Dandelion node geldt, worden er dus steeds andere routes gebruikt voor het doorsturen van de transactie.
Verbetering
Doordat de bitcoin peer-to-peer laag een slechte bescherming van privacy heeft, kan deze eenvoudige toepassing de privacy toch bevorderen. Eventuele deanonimiseringsaanvallen op grote schaal kunnen hiermee voorkomen worden. Het is echter geen vervanging voor Tor, die de broadcasting van transacties beter en effectiever discreet houdt.
Een initieel ontwerp van Dandelion is terug te vinden op GitHub, waar ook al een implementatie voor Bitcoin te vinden is.