Bitcoin volledig anoniem gebruiken met Wasabi Wallet

wasabi

Na jaren van onderzoek, bijna een jaar werk en precies 5 jaar na de aankondiging van Dark Wallet (helaas nooit volledig afgemaakt), is op het 10 jarig bestaan van Bitcoin de eerste volledig anonieme Bitcoin wallet uitgebracht onder de naam Wasabi Wallet. Hiermee is het voor het eerst mogelijk om in één wallet met een zeer gebruiksvriendelijke interface Bitcoin volledig anoniem te gebruiken.

Vaak wordt onterecht aangenomen dat Bitcoin gebruikers al volledig anoniem zijn; dit is echter niet helemaal correct. Zoals we eerder al hebben beschreven zijn er verschillende manieren hoe je als Bitcoin gebruiker je anonimiteit kan verliezen. Bitcoin kan het beste omschreven worden als pseudo-anoniem en als Bitcoin gebruiker moet je heel erg je best doen om niet je echte identiteit te koppelen aan je bitcoin adressen (je pseudoniem).

De connectie met de fysieke wereld

Ten eerste is het altijd belangrijk om te beseffen dat de persoon of organisatie waar jij je bitcoins koopt of verkoopt jouw echte identiteit kent. Zonder maatregelen te nemen kunnen zij exact zien wat jij doet en vervolgens al je bitcoin transacties aan je identiteit koppelen. Om dit te voorkomen kan je als bitcoin gebruiker eventueel wanneer je bitcoins koopt bij partij X de bitcoins eerst naar partij Y sturen en vervolgens naar de eindbestemming. Op die manier maak je het lastiger voor mensen om jouw geldstromen te volgen. Maar uiteindelijk verschuif je daar het probleem alleen mee.

Je eigen wallet

Als je geen gebruik maakt van Tor en een light wallet of full node als wallet gebruikt koppel je onbewust je IP-adres aan al je transacties en daarmee aan al je bitcoins.

  • Bij een wallet zoals bijvoorbeeld Mycelium geef je deze informatie aan de centrale server van Mycelium. Mycelium kan vervolgens zien wat jouw IP-adres is en kan dit vervolgens koppelen aan alle transacties die jij verstuurt of adressen waarin je geïnteresseerd bent. Hiermee weet Mycelium exact welke bitcoins van jou zijn.

  • Bij een SPV wallet zoals Bread Wallet geef je deze informatie aan willekeurige full nodes door de bloom filters waar BRD gebruik van maakt en daarmee uiteindelijk ook aan analyse software die constant alle wallets in kaart proberen te brengen. Deze software wordt weer doorverkocht aan bedrijven, opsporingsdiensten en overheden.

  • Als je gebruik maakt van Electrum geef je deze informatie aan willekeurige Electrum servers. Hier kunnen ook kwaadwillende Electrum servers tussen zitten die Bitcoin gebruikers analyseren en daardoor heb je bij Electrum hetzelfde probleem als bij bijvoorbeeld Bread Wallet.

  • Een full node gebruiken is wat betreft je privacy al iets beter; je downloadt dan namelijk de volledige blockchain waardoor derden niet kunnen zien in welke transacties jij specifiek geïnteresseerd bent. Ook dan loop je echter het risico dat bij het versturen van je transactie op het Bitcoin netwerk bepaald kan worden vanaf welke node een transactie als eerste zichtbaar werd. Vervolgens kan daardoor wederom je IP-adres aan je transactie gekoppeld worden.

Wanneer je een wallet gebruikt die verbinding maakt over Tor is het al beter. Maar ook dan kan in het geval van een light wallet vastgesteld worden dat een bepaalde groep adressen toebehoort aan één persoon. Op een later moment kan deze cluster dan eventueel weer gekoppeld worden aan jouw identiteit, bijvoorbeeld in combinatie met de Bitcoin beurs die je gebruikt om jouw bitcoins te kopen of verkopen.

Als je een full node over Tor gebruikt worden veel van deze problemen al opgelost. Niemand weet dan namelijk in welke transacties je geïnteresseerd bent, omdat je de volledige blockchain download. En niemand kan jouw transacties aan je IP-adres koppelen omdat je Tor gebruikt. Het nadeel is echter dat je hiervoor de volledige blockchain moet downloaden (op het moment van schrijven 190 GB) en bovendien is een full node niet heel gebruiksvriendelijk. Maar het belangrijkste probleem is dat je ook bij een full node vatbaar bent voor blockchain analyse.

Blockchain analyse

Een nadeel van Bitcoin is dat de blockchain volledig transparant is. Alles wat iedereen doet kan door iedereen ingezien worden. Als iemand bitcoins van adres A naar adres B stuurt kan iedereen deze transactie zien verschijnen op de blockchain. Maar dat niet alleen; er kan tevens bepaald worden welke adressen er nog meer toebehoren aan de persoon die adres A gebruikt en de persoon die adres B gebruikt.

Dit werkt als volgt: stel Bob stuurt een klein bedrag naar Alice. In eerste instantie ziet Bob niet zo veel. Hij kan alleen zien dat Alice een klein bedrag van hem ontvangt op één van haar adressen. Wanneer Alice echter haar geld gaat uitgeven wordt het interessant.

wasabi_illustratie1.png

Bob kan nu zien dat adres 1 t/m 3 blijkbaar ook van Alice waren en dat Alice in het verleden geld heeft ontvangen van adres X en geld verstuurt naar adres Y. Bovendien is het Bitcoin protocol zo geschreven dat bij het versturen van een transactie altijd al je bitcoins worden verstuurd en alles wat overblijft wordt teruggestuurd naar een change adres. Bob weet daardoor tevens dat adres 4 van Alice is en dat ze dit adres in de toekomst weer zal gebruiken. Bob weet nog niet wie adres X en adres Y zijn. Voor blockchain analyse bedrijven is dit echter vaak eenvoudig te achterhalen. Deze bedrijven sturen naar alle bedrijven die met Bitcoin werken kleine hoeveelheden bitcoins om op die manier te achterhalen welke adressen bij welk bedrijf horen. Veel van deze informatie is ook in iets beperktere vorm publiek toegankelijk waardoor ook Bob vaak kan zien wat Alice met haar geld doet.

Vervolgens zou het er dan bijvoorbeeld als onderstaand voorbeeld uit kunnen zien; Alice werkt blijkbaar bij het lokale ziekenhuis en heeft iets gekocht bij de supermarkt.

wasabi_illustratie2.png

Dit is uiteraard een groot nadeel voor de verdere adoptie van Bitcoin. Stel je voor dat je een euro naar één van je vrienden stuurt en vervolgens zijn hele bankrekening en al zijn transacties kan inzien. Je weet precies hoeveel hij verdient, hoeveel spaargeld hij heeft en je kan tot in de kleinste details zien wat hij met zijn geld doet en op welk moment.

Wasabi Wallet

Het is de makers van Wasibi Wallet gelukt om voor al deze problemen een oplossing te vinden en hier tegelijkertijd een gebruiksvriendelijke interface omheen te bouwen. Hierbij is gebruik gemaakt van de volgende innovaties:

  • Een light wallet op basis van Neutrino met Tor integratie
  • Coin control
  • Chaumian CoinJoin

wasabiillustratie

Light wallet met Tor integratie

Een logische keus zou zijn om Wasabi Wallet in een full node te bouwen in plaats van een light wallet. Zoals eerder is toegelicht geef je daarmee namelijk geen informatie aan een derde partij welke bitcoins toebehoren aan jouw wallet. Het nadeel is echter dat Wasabi Wallet dan beduidend minder gebruikers zou hebben; niet iedereen is immers in staat om een full node op zijn computer te laten draaien. En voldoende gebruikers is van belang om Wasabi Wallet zo soepel mogelijk te laten functioneren (iets waar later in dit artikel op teruggekomen zal worden).

Om Wasabi Wallet als light wallet te kunnen gebruiken zonder bekend te maken in welke transacties de gebruiker geïnteresseerd is, is daarom door de makers van Wasabi Wallet gebruik gemaakt van BIP157 en BIP158, een redelijk nieuw idee dat in de Lightning wereld ook wel bekend staat als Neutrino.

Wanneer iemand Wasabi Wallet opstart wordt een filter tabel van de server van Wasabi gedownload; deze tabel is voor iedereen hetzelfde. Vervolgens bepaalt Wasabi Wallet met behulp van die tabel welke Bitcoin blokken nodig zijn. Deze blokken worden vervolgens apart bij verschillende Bitcoin nodes gedownload. Doordat de blokken volledig gedownload worden en bij verschillende nodes opgehaald worden kan niemand je transacties aan elkaar koppelen.

Om vervolgens te zorgen dat je IP-adres nooit aan je transacties gekoppeld kan worden, is Tor in de wallet verwerkt. Hierdoor is het voor de gebruiker niet noodzakelijk Tor apart te downloaden, iets wat tot nu toe wel altijd noodzakelijk is geweest bij andere wallets als men Tor wilde gebruiken. Door de integratie van Tor wordt je IP-adres nooit per ongeluk gelekt aan een derde partij.

Coin control

In het voorbeeld hierboven konden we zien dat door een kleine transactie van Bob, Alice al haar privacy verloor. Om dit te voorkomen is de gebruiker bij Wasabi Wallet altijd verplicht om ieder Bitcoin adres dat de gebruiker genereert een naam te geven. Vervolgens bepaalt de wallet niet zelf welke bitcoins worden verzonden wanneer Alice een betaling wilt doen, maar in plaats daarvan moet Alice selecteren welke bitcoins ze wil uitgeven. Hierdoor is het voor de gebruiker inzichtelijk welke bitcoins aan elkaar gekoppeld worden.

Alice heeft nu dus de keuze om de transactie van Bob niet te koppelen aan haar andere Bitcoin adressen, maar in plaats daarvan deze link eerst te verbreken door gebruik te maken van de grootste innovatie in Wasabi Wallet, namelijk Chaumian CoinJoin.

Chaumian CoinJoin

Om ervoor te zorgen dat niemand kan zien waar jij je bitcoins naartoe stuurt maakt Wasabi Wallet gebruik van Chaumian CoinJoin, voor het eerst voorgesteld in 2013 door Gregory Maxwell. Hierdoor worden je bitcoins gemixt met de bitcoins van andere mensen die ook Wasabi Wallet gebruiken, dusdanig dat zelfs de centrale coördinerende server niet weet van wie welke bitcoins zijn. In onderstaand voorbeeld laat Alice haar bitcoins mixen met Carol en Dave om ervoor te zorgen dat Bob niet langer kan zien wat ze met haar geld doet. Alice heeft haar geanonimiseerde bitcoins ontvangen op adres x, y of z. Alleen Alice kan vervolgens zien welk adres dit is.

wasabi_illustratie3.png

In het voorbeeld is uitgegaan van 3 mensen, maar in Wasabi Wallet wordt een nieuwe ronde pas gestart als er 100 mensen mee doen. Dit is tevens de reden dat het voor Wasabi Wallet van belang is dat er zoveel mogelijk mensen de wallet gebruiken om de tijd tussen rondes niet te lang te laten duren. Op dit moment duurt het meestal een aantal uur voordat er voldoende mensen zijn om een nieuwe ronde te kunnen starten. Als Wasabi Wallet echter uiteindelijk net zoveel gebruikers heeft als bijvoorbeeld bitmixer.io of later bestmixer.io dan zal het 3 à 5 minuten duren voordat er een nieuwe ronde wordt gestart. Bestmixer en vergelijkbare mixers waren een gecentraliseerde vorm van mixen die men vroeger gebruikte. Dit is echter niet effectief mede door de centralisatie en omdat men bij dergelijke websites geen rekening hield met de hoeveelheid bitcoins die men inlegde en er vervolgens weer uithaalde.

Om ervoor te zorgen dat men op basis van de hoeveelheid bitcoins niet langer kan analyseren van wie welke bitcoins zijn na het mixen, worden de UTXOÂs in Wasabi Wallet opgesplitst in gelijke hoeveelheden. Op dit moment is dit altijd 0,1 bitcoin en alles wat overblijft wordt vervolgens weer teruggestuurd naar het change adres van de gebruiker. In het geval van Alice betreft dit 0,01 bitcoin. Deze teruggestuurde bitcoins zijn niet geanonimiseerd; immers kan iedereen zien dat Alice 0,11 bitcoin inlegt en er iemand 0,01 bitcoin teruggestuurd krijgt. Er kan dan eenvoudig geconcludeerd worden dat de 0,01 bitcoin van Alice is. Het is daarom dan ook belangrijk om deze teruggestuurde bitcoins nooit te combineren met bitcoins die uit een mix komen. Mede daarom is de coin control functionaliteit in Wasabi Wallet van groot belang, waardoor niet per ongeluk je anonimiteit teniet wordt gedaan doordat je change adres gecombineerd wordt met de geanonimiseerde UTXO.

In het voorbeeld hieronder is te zien hoe dit er in Wasabi Wallet uitziet. De gebruiker heeft hier bitcoins ontvangen van BL3P en bitcoins uit de Mycelium wallet. De bitcoins die zijn binnen gekomen vanaf BL3P heeft de gebruiker vervolgens laten participeren in een Chaumian CoinJoin ronde. De bitcoins die hieruit komen krijgen daarom een groen schildje; hiermee wordt gevisualiseerd dat deze bitcoins geanonimiseerd zijn. De bitcoins die terug zijn gestuurd naar het change adres krijgen vervolgens net als de bitcoins uit Mycelium een rood schildje.

wasabi

Een praktisch voorbeeld is hieronder zichtbaar gemaakt. Alice werkt onder een pseudoniem als verslaggever in een dictatoriaal regime. In ruil voor haar werk ontvangt ze donaties van mensen die haar werk belangrijk vinden. Haar donatie adres is voor iedereen toegankelijk, deze staat immers op haar website. Als ze haar bitcoins direct naar een beurs zou sturen zou die beurs haar echte identiteit aan haar pseudoniem kunnen koppelen. Ze wil echter voorkomen dat de regering haar echte identiteit achterhaalt en ze weet niet welke beurzen allemaal loyaal zijn aan haar regering. Zonder maatregelen te nemen zou de Bitcoin beurs in het voorbeeld hieronder uiteindelijk niet alleen weten wie er achter het donatie adres zit (Alice), maar ook wie haar donaties heeft gestuurd.

wasabi_illustratie4.png

Door gebruik te maken van Chaumian CoinJoin in Wasabi Wallet tussen de beurs en het donatieadres kan deze link verbroken worden en kan Alice zonder zorgen haar bitcoins inruilen voor haar lokale valuta bij iedere willekeurige beurs.

Gebruiken

Om de Chaumian CoinJoin functionaliteit in Wasabi te kunnen gebruiken is het op het moment nog noodzakelijk om in bezit te zijn van minimaal 0,1 bitcoin. In de volgende versies van Wasabi Wallet zal het gelukkig ook mogelijk worden om kleinere en grotere hoeveelheden bitcoins tegelijkertijd te mixen. Je kan uiteraard wel altijd gebruik maken van de overige privacy voordelen van Wasabi Wallet.

Voordelen

  • Volledige anonimiteit
  • Eenvoudig in gebruik
  • Light wallet (niet noodzakelijk om volledige blockchain te downloaden)
  • Bech32 adressen
  • Wallet encryptie
  • Back-up middels seed
  • Hardware wallet ondersteuning

Nadelen

  • Op het moment nog niet mogelijk om hoeveelheden kleiner dan 0,1 BTC te laten participeren aan een CoinJoin ronde
  • Het kan soms tot maximaal een uur duren voordat een Chaumian CoinJoin ronde wordt gestart (dit is afhankelijk van het aantal gebruikers)

Wil je Wasabi Wallet ook proberen? Dan kan je deze downloaden voor Windows, Linux en Mac op de volgende website: https://www.wasabiwallet.io/