Introduktion
Vad är coinblandning?
Säkerheten och anonymiteten för sådana centraliserade tjänster är naturligtvis tveksamma. Användarna har ingen garanti för att deras pengar returneras till dem av mixern eller att deras coin som returneras inte är förorenade på något sätt. En ytterligare aspekt att tänka på när du använder en mixer är att ip- och bitcoin-adresser kan loggas av en tredje part. I slutändan ger användaren upp kontrollen över sina tillgångar i hopp om att få tillbaka olänkade tillgångar.
Ett mer intressant tillvägagångssätt finns i form av CoinJoin-transaktioner som skapar en betydande grad av rimlig förnekelse. Med detta menas att efter en CoinJoin kan inga bevis med säkerhet koppla en användare till sina tidigare transaktioner. Många CoinJoin-lösningar ger ett decentraliserat alternativ till mixers. Även om det kan finnas en samordnare inblandad behöver användaren inte släppa uppsikten över sina tillgångar.
Vad är en CoinJoin?
Bitcoin-transaktioner består av ingångar och utgångar. När en användare vill göra en transaktion tar denne sina UTXO som ingångsdata, specificerar utgångarna och signerar ingångarna. Det är viktigt att notera att varje ingång signeras oberoende, och användare kan ange flera utgångar (som går till olika adresser).
Om vi tittar på en given transaktion som består av fyra ingångar (0,2 BTC vardera) och två utgångar (0,7 BTC och 0,09 BTC) finns det några olika antaganden vi kan göra. Den första är att vi ser en betalning äga rum – avsändaren skickar en utgångar till någon och returnerar en förändring till sig själv. Eftersom de har använt fyra ingångar är de större utgångarna förmodligen för mottagaren. Observera att vi saknar 0,01 BTC från utgångarna, vilket är avgiften som ges till en miner.
Det är också möjligt att avsändaren vill skapa en stor UTXO av mindre sådana, så denne konsoliderar mindre ingångar för att få önskat resultat på 0,7 BTC.
Ett annat antagande vi kan göra är baserat på det faktum att varje ingång signeras oberoende. Denna transaktion kan ha upp till fyra olika parter som signerar ingångar. Och däri ligger principen som gör CoinJoining effektiv.
Hur fungerar CoinJoin?
Tanken är att flera parter ska samordnas för att skapa en transaktion som var och en ger ingångar och önskade utgångar. Eftersom alla ingångar kombineras blir det omöjligt att med säkerhet säga vilken utgång som tillhör vilken användare. Föreställ dig diagrammet nedan:
Här har vi fyra deltagare som vill bryta kopplingen mellan transaktioner. De samordnar sig sinsemellan (eller via en dedikerad samordnare) för att meddela de ingångar och utgångar som de vill inkludera.
Samordnaren tar all information, skapar den till en transaktion och låter varje deltagare signera innan den sänder transaktionen till nätverket. När användarna väl har skrivit under kan transaktionen inte ändras utan att bli ogiltig. Det finns därför ingen risk att samordnaren tar till flykt med tillgångarna.
Men inte ens det kan garanteras. Genom att titta på transaktionen ovan, går det att fastställa att den sker mellan fyra deltagare? Är det här en person som skickar sina pengar till fyra av sina egna adresser? Två personer som gör två separata köp och returnerar 0,2 BTC vardera till sina egna adresser? Fyra personer som skickar till nya deltagare eller tillbaka till sig själva? Vi kan inte vara säkra på detta.
Sekretess genom förnekelse
Just det faktum att CoinJoin-implementationer finns är tillräckligt för att tvivla på metoderna som används för att analysera transaktioner. Du kan dra slutsatsen att en CoinJoin har ägt rum i många fall, men du vet fortfarande inte vem som äger utgångarna. När de växer i popularitet försvagas antagandet att alla ingångar ägs av samma användare – detta är ett enormt steg för sekretess i det bredare ekosystemet.
Sammanfattningsvis
För dem som litar på tredje parts sekretess och metodik är blandningstjänster en enkel lösning. För dem som föredrar ett verifierbart och icke-förvarande alternativ är CoinJoin-alternativen överlägsna. Dessa kan skapas på egen hand av tekniskt skickliga användare eller genom att använda mjukvaruverktyg som tar hand de mer komplexa mekanismerna. Det finns redan en handfull av dessa verktyg som bara fortsätter att växa i popularitet när användare strävar efter mer sekretess.