Vi förklarar coinblandning och CoinJoins
Hem
Artiklar
Vi förklarar coinblandning och CoinJoins

Vi förklarar coinblandning och CoinJoins

Medelnivå
Publicerad Mar 25, 2020Uppdaterad Dec 28, 2022
6m

Introduktion

Bitcoin kallas ofta för digitala kontanter, men detta är en tveksam jämförelse. Om Alice betalar Bob tio kronor i kontanter har Bob ingen aning om var pengarna kommer ifrån. Om han senare ger dessa till Carol, kan hon inte heller dra slutsatsen att Alice en gång hade dessa pengar.
Bitcoin är annorlunda, tack vare dess inneboende offentliga natur. Historiken för ett givet coin (eller mer exakt: en outnyttjad transaktionsutgång eller UTXO) kan enkelt observeras av vem som helst. Det är lite som att skriva transaktionsbeloppet och deltagarnas namn på en sedel varje gång den används. 
Pseudonymiteten för en offentlig adress säkerställer som sagt att användarnas identiteter är svåra att avslöjas. Ändå är bitcoin inte helt privat. Blockkedjeanalyser blir allt mer sofistikerade och kan länka adresser till identiteter mer och mer effektivt. Vid sidan av andra övervakningstekniker kan en engagerad enhet avanonymisera kryptovalutanvändare. För att råda bot på detta har det utvecklats tekniker för att koppla bort transaktioner under åren.


Vad är coinblandning?

I stora drag kan coinblandning hänvisa till vilken aktivitet som helst som involverar villospår av tillgångar, genom att ersätta dem med andra. Men i kryptovalutavärlden avser coinblandning vanligtvis en tjänst som tillhandahålls av en tredje part. Vanligtvis tar tjänsteleverantörerna användarens coin (och en låg avgift) och returnerar detta coin som inte har någon länk till de som skickades. Dessa tjänster är även kända som tumblers eller mixers.

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?

CoinJoin-transaktioner föreslogs ursprungligen av bitcoin-utvecklaren Gregory Maxwell under 2013. I sin tråd ger han en kort översikt över hur dessa transaktioner är uppbyggda och hur stora sekretessvinster som kan uppnås utan några ändringar i protokollet.
I huvudsak innebär en CoinJoin kombinationen av ingångsdata från flera användare till en enda transaktion. Innan vi förklarar hur (och varför) ska vi ta en titt på strukturen för en grundläggande transaktion.

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. 

Transaktionen fungerar som en svart låda för att blanda coin. Kom ihåg att vi egentligen förstör UTXO för att skapa nya. Den enda länken mellan gamla och nya UTXO som vi har är själva transaktionen, men vi kan naturligtvis inte skilja på deltagarna. I bästa fall kan vi säga att en deltagare tillhandahöll en av ingångarna och kanske är den nya ägaren till en resulterande utgång.

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.

I det föregående exemplet säger vi att transaktionen hade en anonymitetsuppsättning av 4 – ägaren till en utgång kan vara vilken som helst av de fyra inblandade deltagarna. Ju större anonymitetsuppsättning, desto mindre sannolikt är det att transaktioner kan kopplas till dess ursprungliga ägare. Lyckligtvis gör de senaste CoinJoin-implementeringarna det enkelt för användarna att tillitslöst sammanfoga sina ingångar med dussintals andra, vilket ger en hög grad av förnekelse. Nyligen genomfördes en transaktion med 100 personer framgångsrikt.


Sammanfattningsvis

Verktyg för att blanda coin är ett viktigt tillskott till arsenalen för alla användare som är måna om deras sekretess. Till skillnad från föreslagna sekretessuppgraderingar (som konfidentiella transaktioner) är de kompatibla med protokollet så som det är idag. 

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.