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.