Skip links

#73 Eenvoudige methodes voor privacy op de blockchain

Zoals je in de vorige editie al las, is de blockchain openbaar. Zelfs veel dataverbindingen zijn openbaar. Je las ook oplossingen: je kan jezelf verschuilen achter Tor of een VPN, waardoor mensen niet kunnen meekijken naar je transacties.

Dan komen we bij de volgende laag: de transacties zelf. Als je niet oplet, kan je ook hier onbedoeld gegevens lekken. In deze Bitcoin Focus lees je over blockchain gebaseerde aanvallen. Er zijn namelijk genoeg bedrijven en opsporingsinstanties die maar wát graag jouw transacties uitpluizen.

Deze week lees je wat je daar tegen doet! Volgende week is het laatste deel van de privacy-special, waar we het over beschermingstechnieken voor de geavanceerde gebruiker hebben, en over privacy op Lightning.

Verschillende aanvallen!

  • Effect van verloren privacy: waarom fungibility belangrijk is
  • Amount: Ontvanger weet hoe veel geld je hebt
  • Identiteit gekoppelde bitcoin linken aan uitgaven
  • Wisselgeld-detecties (en alles wat daarbij komt kijken)
  • Ronde betalingen
  • Adreshergebruik
  • Walletgedrag
  • Mystery Shopper-adressen

Resultaat: foute bitcoin niet welkom!

Voordat we het over de (blockchain-gebaseerde) aanvallen hebben, de vraag: wat is het probleem? En wat is het effect van alle controle?

Edward Snowden zegt: vrijheid betekent geen toestemming hoeven te vragen (Liberty is freedom from permission). Voor vrijheid met je geld is het belangrijk dat je transacties niet kunnen worden gecontroleerd of kunnen worden tegengehouden.

Eigen keuzes maken, met wat je met je eigen geld doet, dat is mogelijk met bitcoin. Die vrijheid wordt minder als je niet goed oplet: als surveillancebedrijven of andere instanties kunnen zien welke uitgaven jij doet, ga je je gedrag aanpassen, of kom je mogelijk in de problemen. Het is al vaak genoeg gebeurd dat er verkeerde conclusies worden getrokken uit transactiedata.

Opvolgend effect van de monitoring is het verminderen van de fungibility, een zeer belangrijke eigenschap van geld. De term is in het Nederlands vervangbaarheid of homogeniteit.

Waar het op neerkomt is dat elke bitcoin gelijkaardig is, zoals euromunten gelijkaardig zijn. Het maakt mij niet uit welke euromunt ik krijg, ze hebben allemaal dezelfde waarde.

Bij meer controle, dan raken we dat met bitcoin kwijt. Veel exchanges kijken al naar de bitcoin die worden verhandeld: wat was de historie? Wie heeft ze gehad? Komen ze van “enge” diensten?

Als jij goed oplet hoe je bitcointransacties doet, door de tips uit deze nieuwsbrief te volgen, gebruik jij bitcoin zelf meer privé, en maak je tegelijk de fungibility beter! Twee vliegen in één klap.

Je tegoed wordt bekend

Achtergrond: voor bitcointransacties heb je inputs en outputs. De inputs zijn de bitcoin die uitgegeven gaan worden. De outputs zijn de bestemming.

Probleem: iemand die geld vraagt aan jou, is de bestemming van de transactie. De transactie wordt publiek, en de ontvanger gaat zien dat hij geld heeft ontvangen. Als hij maar íets verder kijkt, ziet hij de inputs van de transactie (jouw geld).

Oplossing: inputselectie: er zijn wallets die je laten beslissen welke bitcoin je wil uitgeven. Bitcoin op je wallet is niet één bedrag (saldo), maar optelling van meerdere ontvangen transacties, misschien kreeg je in een jaar 500, 100 en 10 euro aan bitcoin. Je wallet laat zien dat je 610 euro (aan bitcoin) hebt. Goede wallets laten je kiezen welke bitcoin je uitgeeft.

Als je voor een croissantje in de supermarkt met 500 euro betaalt, dan weet de caissière dat je 500 euro hebt. Als je met 10 euro betaalt laat je minder weten. Hetzelfde kan met bitcoin.

Schrijf je in voor de preview nieuwsbrief!

Identiteitsinformatie gekoppeld aan jouw bitcoin

Achtergrond: je koopt bitcoin bij een Nederlandse exchange, je voert je paspoortgegevens in. Of er komt nieuwe Europese wetgeving.

Probleem 1: die bitcoin zijn nu gelinkt aan jouw identiteit. De exchange weet wanneer jij het weer uitgeeft.

Probleem 2: als er gekke dingen met die transacties gebeuren, als de politie bijvoorbeeld een transactie ziet naar een zwarte marktplaats met bitcoin die ooit van jou waren, dan ben je te koppelen als de politie belt met de exchange waar je kocht.

Oplossing 1: coinselectie! Wallets staan dit steeds meer toe. Wasabi en Bitcoin Core doen dit bijvoorbeeld: als je geld ontvangt, geef je een label. Dat label geeft aan wie kennis heeft “over” die bitcoin, je exchange dus.

Bij uitgeven doe je bij deze wallets coinselectie: zodra je een transactie gaat doen, kies je welke bitcoin je gebruikt (als inputs van de transactie). Je ziet, doordat je wallet de labels ook laat zien, meteen wat er (wat betreft data) gekoppeld kan worden.

Oplossing 2: een andere optie is natuurlijk om je bitcoin anoniem te kopen, of te verdienen, en nooit je identiteit te koppelen! Bijvoorbeeld met Bisq of Robosats

Volgende week nog meer opties om dit op te lossen.

Wisselgeldproblemen

Achtergrond: de inputs van een bitcointransactie moeten altijd volledig worden gebruikt. Als je dus wat bitcoin hebt ter waarde van 500 euro, dan kan je daar niet 10 euro van pakken, je moet altijd de 500 euro verzenden.

Stel dat je 10 euro wil uitgeven, dan maakt je wallet een transactie met de ‘input’ van 500 euro, en een output van 10 euro naar de bestemming, en 489 euro terug naar jezelf. Die laatste is de change, het wisselgeld. En daar zitten wat problemen aan.

Waarom 489 en niet 490 euro? Die ‘missende’ euro zijn de transactiekosten.

Probleem 1: als het wisselgeld steeds naar hetzelfde adres wordt gestuurd (sommige wallets doen dat), dan zijn de transacties makkelijk aan elkaar te linken: alle transacties met wisselgeld naar hetzelfde adres zijn van dezelfde gebruiker. Zie ook het volgende hoofdstuk.

Probleem 2: zie ronde betalingen in het volgende hoofdstuk.

Oplossing: de betere wallets gaan beter met wisselgeld om, ze labelen het apart in je wallet.

Ronde betalingen

Achtergrond: stel je een transactie voor die 652 301 sat uitgeeft (totale inputs dus), en er zijn twee outputs, één van 500 000 sat en eentje van 152 301 sat.

Probleem: het is vrij duidelijk dat de 152 301 sats het wisselgeld zijn, en de 500 000 sat de betaling. Hier kunnen analysebedrijven conclusies uit trekken, bijvoorbeeld dat dat wisselgeld weer bij jou hoort.

Oplossing: vaak zul je gewoon het bedrag moeten betalen dat er staat en heb je zelf geen keuze. De meeste winkeliers rekenen de eurowaarde om, en dan staat er bijvoorbeeld 0.00441239 bitcoin. Een mooi willekeurig getal.

Maar als je puur met bitcoin bezig bent, bijvoorbeeld overmaakt naar je lightning node, dan ben je snel geneigd een rond getal als 0.00100000 over te maken, overweeg eens om die willekeuriger te maken!

Adreshergebruik

Achtergrond: Een bitcoinadres blijft geldig, maar zou eigenlijk maar één keer gebruikt moeten worden.

Probleem 1: als je een bitcoinadres hebt geplaast, bijvoorbeeld voor donaties, dan kan iedereen zien hoeveel geld je erop hebt ontvangen.

Probleem 2: je geeft geld uit van een bekend adres, al je transacties zijn bekend, ook als/wanneer je bitcoin uitgeeft/verstuurt.

Probleem 3: één koppeling is genoeg: als er maar één transactie op het adres gelinkt wordt aan jouw identiteit, dan is het meteen duidelijk dat het adres (en alle andere transacties dus ook) bij jou horen.

Probleem 4: er zit een potentiëel veiligheidsprobleem: als je bitcoin uitgeeft wordt de public key bekend. Er zijn nog geen quantumcomputers, maar zodra die er wel zijn (geen zorgen, dat duurt nog even), dan is er een klein risico alle betalingen naar deze hergebruikte adresssen.

Oplossing: gebruik je adressen altijd maar één keer. Voor de geavanceerde gebruikers zijn Silent Payments in ontwikkeling, waarmee je een ‘adres’ kan posten dat veilig hergebruikt kan worden.

Walletgedrag-herkenning

Achtergrond: wallets hebben allemaal hun eigen manier om transacties te maken. Door de transacties te analyseren, kan worden bekeken welke wallet er wordt gebruikt.

De verschillen in wallets zitten bijvoorbeeld in:

  • Welke adressen worden ondersteund. Gebruikt iemand alleen (oude) 1-adressen? Dan zal het een oude wallet zijn.
  • Welke scripts worden gebruikt? Als een wallet allemaal multisigs gebruikt, dan weten we dat het er één zal zijn van maar een paar wallets die multisigs gebruikt.
  • Hoe er met inputs en outputs wordt omgegaan. Sommige wallets selecteren meer inputs dan anderen.
  • R-waarden in de sleutels (beetje technisch, maar het gaat daar om het DER-formaat). Bitcoin Core gebruikt alleen lage waarden, als een transactie dan een hoge waarde heeft, weet je zeker dat Bitcoin Core niet gebruikt is.
  • Wat voor fees er worden gekozen, en hoe/of ze worden afgerond, dat verschilt ook per wallet.

Probleem: als mensen weten welke wallet er wordt gebruikt, kunnen ze je specifieker erop aanvallen.

Oplossing: dit is een lastige. Het helpt om bekende wallets te gebruiken, dan ga je “mee in de massa”.

Mystery shopper en dust

Achtergrond: dit gebeurt vooral door opsporingsinstanties en -bedrijven (“aanvallers”) die meer informatie willen krijgen over een partij. Bijvoorbeeld over mij: ik verkoop stickers op bitcoinstickers.shop.

De aanvaller doet een kleine koop, bijvoorbeeld 1 sticker. Ze betalen mij dat kleine bedrag on-chain. Dat bedrag komt dus in mijn wallet.

Alternatief is dat ze een klein bedrag sturen naar een adres van mij dat al bekend was.

Probleem: als ik een transactie ga doen, dan zal mijn wallet (waarschijnlijk) deze kleine bedragen ook meenemen om uit te geven.

Deze (kleine) bedragen komen aan de inputkant van de transacties die ik ga doen. De aanvaller ziet nu dat ‘zijn’ bedrag (dat hij eerder stuurde) wordt gebruikt. Omdat hij weet dat het bedrag van mij was (het is gestuurd naar MIJN adressen), kan hij ook de andere inputs koppelen aan mijn identiteit.

Oplossing: de betere wallets herkennen dust, dus kleine bedragen die ongevraagd zijn gestuurd.

Volgende week laatste privacyspecial: wat doe je als je munten een historie hebben?

Er zijn nog meer (subtiele) dingen die gebeuren om jouw bitcoingedrag te herkennen, maar de belangrijkste hebben we nu zeker gehad. Als je alle ‘oplossingen’ aanhoudt, dan kan je er vrij zeker van zijn dat jouw bitcoin privé blijft.

Volgende week het laatste deel van deze privacyspecial, voor Lightning-gebruikers en met uitgebreidere uitleg voor wat je met munten “met een geschiedenis” kan doen, om ze weer schoon te poetsen.