Utvecklarna av Samourai Wallet har publicerat den offentliga betaversionen av Whirlpool, en Chaumian CoinJoin-implementering som består av ett ramverk som stöds av olika programvaruverktyg för integritetsförbättring..
Vad är Chaumian CoinJoin?
CoinJoin är en anonymiseringsteknik som först föreslogs av Gregory Maxwell 2013. En ”Chaumian CoinJoin” integrerar chaumblind signaturer – ett schema som ger en kryptografiskt blind version av en mottagningsadress. Som beskrivs av ZeroLink, en ram för bitcoinfungibilitet:
”Användarna ansluter och tillhandahåller ingångar (och byter adress) och en kryptografiskt blindad version av adressen de vill att deras privata mynt ska gå till; servern signerar tokens och returnerar dem. Användarna ansluter anonymt igen, avblindar sina utdata-adresser och returnerar dem till servern. Servern kan se att alla utgångar har signerats av den och att alla utdata måste komma från giltiga deltagare. Senare ansluter människor igen och signerar. ”
Detta ses som ett relativt snabbt och billigt sätt att lägga till anonymitet i CoinJoin-transaktioner. Med Samourai som lägger till den här funktionen i sin plånbok kan det ge ett betydande och lättanpassat lager av integritet för vanliga bitcoinanvändare.
Som detaljerat av dess utvecklare är Whirlpool-ramverket en helt modulär CoinJoin-implementering som har utvecklats genom en “kraftigt modifierad” gaffel i ZeroLink-teorin.
Enligt dess tjänsteman Github Whirlpools programvara med öppen källkod kan “matematiskt koppla bort” ägandet av ingångar (“skicka adresser”) till utgångar (“mottagande adresser”) som ingår i en bitcoin-transaktion. Avskiljningen mellan en viss uppsättning ingångar och deras motsvarande utdata möjliggör större ekonomisk integritet när du gör bitcoin-transaktioner. Med andra ord blir bitcoinöverföringar svåra att spåra eftersom ursprunget (eller avsändaren) av en transaktion och dess mottagare inte kan spåras på grund av avskiljningen.
Whirlpools integritetsfunktioner förbättrar också helheten svaghet av Bitcoin-nätverket. Fungibility avser ett attribut för en token (i detta fall BTC) vars enskilda enheter är utbytbara medan varje enhet inte kan skiljas från de andra. Säkerhetsanalytiker har hävdat att spårbarheten hos bitcoin-transaktioner (överföringar som kan ses genom offentliga blockutforskare) kan minska flaggskeppets kryptovalutas fungibilitet. Detta kan hända om köpmän vägrar att acceptera “smittad” bitcoin, som kan ha använts för att finansiera olaglig verksamhet som narkotikahandel eller penningtvätt..
Det är inte omedelbart klart hur funktionen kommer att samla de nödvändiga deltagarna för att snabbt genomföra CoinJoin-transaktioner. Om du vill aktivera omedelbara betalningar måste dussintals deltagare omedelbart vara tillgängliga. Med den CoinJoin-aktiverade Wasabi Wallet kan det till exempel ta timmar att få de nödvändiga 50 till 100 deltagarna.
Den tillgängliga dokumentationen lämnar också oklart hur Samourai skulle hantera beloppsmatchning – behovet av att länka matchande ingångar och utgångar för att maskera dem ordentligt.
Whirlpool’s Theoretical Anonymity Set
Whirlpool inkluderar implementeringen av en teoretisk anonymitetsuppsättning som har potential att växa exponentiellt “på några minuter” istället för att ta flera timmar. Enkelt uttryckt är teorin att alla sändande och mottagande adresser blandas ihop i en uppsättning vars storlek ökar kontinuerligt. Om det fungerar i praktiken är tanken att denna uppsättning blir större i snabbare takt när du använder Whirlpool och det blir praktiskt taget omöjligt att bestämma avsändaren och mottagarna av bitcoinöverföringar. I sin tekniska dokumentation indikerade Samourai Wallets utvecklare att detta skulle uppnås genom att fokusera på relativt mindre CoinJoin-cykler i motsats till att arbeta med en enda stor cykel, förklarade Samourai Wallets utvecklare. Förmodligen är det enklare att arbeta med flera mindre och enklare CoinJoin-cykler snarare än att fokusera på en enda stor och komplex CoinJoin-cykel.
Samourai-teamet noterade också att Whirlpool’s modulär arkitektur – uppdelning av kod i mindre sektioner som gör att varje kod kan utföra enkla uppgifter – bör möjliggöra att dess ram kan bäddas in i nästan alla typer av utvecklingsmiljöer, inklusive ramverk som används på smartphones och stationära datorer.
Generellt sett är det bästa programmeringsmetod att skriva modulkod, vilket innebär att källkoden bör delas in i logiska funktioner som kan åberopas efter behov för att utföra specifika uppgifter i datorprogram. Till exempel kan ett modulprogram bestå av kodmoduler för olika uppgifter, såsom en modul för att radera transaktioner från minnet och en annan modul för att skriva transaktioner till minne.
Dessutom har Whirlpools programvara med öppen källkod utvecklats för att skapa ett system som kan fungera inom de “begränsningar som en mobil miljö har.” De flesta smartphones har begränsade hårdvaru- och programvaruresurser (jämfört med stationära datorer), så Whirlpool har optimerats för att fungera effektivt, även när man arbetar med dessa typer av begränsningar.
Detta tillvägagångssätt för programvarudesign har hjälpt till att skapa ett robust protokoll som kan implementeras “under de flesta förhållanden”, vilket innebär att protokollet fungerar som avsett på de flesta operativsystem, inklusive Windows-, Linux- och Android-system..
Utvecklad på en “Strong Mathematical Foundation”
Samourais team tillade att en annan viktig designhänsyn för Whirlpool är användbarhet. För detta ändamål “fokuserade [redigerades] på utgifterna” och såg till att de följde bästa praxis för att automatiskt undvika åtgärder som skulle äventyra användarnas integritet. Dessutom erbjuder Whirlpool-ramverket en intuitiv UX som de flesta användare redan borde vara bekväma med.
Som noterats av dess utvecklingsteam är det integritetsfokuserade protokollet baserat på en “stark matematisk grund”. Varje Whirlpool-cykel maximerar slumpmässigheten genom att använda olika matematiska funktioner och tekniker. Dessutom säkerställer Whirlpool-ramverket att användare aldrig cyklar med sig själva.
Protokollet tillåter inte heller deterministiska länkar mellan ingångar och deras tillhörande utgångar. Genom att förhindra att deterministiska länkar bildas blir det praktiskt taget omöjligt att bestämma källan eller ursprunget för pengarna och var de kan ha överförts (dvs. mottagaradresserna som är kopplade till transaktionen).
Whirlpool-cykler har också implementerats på ett sätt som hindrar dem från att cykla med mynt som hittats i en tidigare cykel.
Med hjälp av en “blindad” koordinator-server
Som skrivits ovan använder Whirlpool-ramverket en Samourai-driven, “blindad” koordinator-server för att vidarebefordra meddelanden mellan klienter. Medan samordnarservern kan underlätta kommunikation mellan olika klienter, kan den inte ”avgörande” veta vad som förmedlas genom meddelanden som delas mellan nätverksdeltagare. Det betyder att Samourai-servern inte kan läsa innehållet i meddelandena – en viktig funktion för användare som prioriterar integritet och inte vill att Samourai-servern ska kunna länka in- och utgångar.
Windows, OSX, Linux, Android-klienter
Framför allt har utvecklare av Samourai Wallet byggt flera klienter med öppen källkod som enligt uppgift ger obegränsad tillgång till koordinatorns server.
Det finns för närvarande en klient tillgängligt för Windows-, OS X- och Linux-operativsystemanvändare. Som påpekats av Samourai-teamet består den nyutvecklade programvaran av en elektron / reaktor GUI-skrivbordsklient som är kompatibel med de flesta Linux-operativsystem och den kan också köras på vanliga Windows- och OS X-system. Android-användare kan också använda Whirlpool-ramfunktionerna.
Det bör dock noteras att Samourai Wallet-programvaran för stationära datorer finns i sin offentliga beta och versionen för mobil är för närvarande under utveckling, så båda versionerna kan vara instabila. För utvecklare finns det en REST API som kan användas för att starta ytterligare applikationer ovanpå Whirlpool-ramverket. Det finns också Android- och Java-programvarubibliotek och en CLI-klient (Command Line) som finns i Whirlpool-klientförvaret.