Bitcoin lige nu er ikke rigtig anonym. Mens Bitcoin-adresser ikke nødvendigvis er knyttet til virkelige identiteter, kan de være det. Overvågning af det ukrypterede peer-to-peer-netværk, analyse af den offentlige blockchain og Know Your Customer (KYC) -politik eller Anti-Money Laundering (AML) -regulering kan afsløre meget om, hvem der bruger Bitcoin, og til hvad.

Dette er ikke godt set fra et privatlivsperspektiv. Bitcoin-brugere vil muligvis ikke nødvendigvis have verden til at vide, hvor de bruger deres penge, hvad de tjener, eller hvor meget de ejer, mens virksomheder måske ikke ønsker at lække transaktionsoplysninger til konkurrenterne – for at nævne nogle eksempler.

Derudover er bitcoins, der er sporbare, muligvis “plettet” og potentielt mindre værd end andre bitcoins, i modstrid med fungibilitet. Dette kan endda udfordre Bitcoins værdiproposition som penge.

Men der er mulige løsninger til at øge privatlivets fred og forbedre svaghed.

En løsning, der har eksisteret i et stykke tid, er CoinJoin.

Baggrund

Kernen i Bitcoin-protokollen består af transaktioner. Alle disse transaktioner er helt offentlige på blockchain, hvilket betyder, at alle kan se, hvilke adresser der sendte bitcoins til hvilke adresser. Hvis nogle af disse adresser er knyttet til virkelige verdensidentiteter, kan det afsløre, hvem der handlede med hvem – eller hvad til. Dette er i strid med privatlivets fred og især svaghed.

Derudover bruger hver bestemt transaktion en eller flere “input”, der henviser til adresserne, som bitcoins sendes fra. (Disse input bruges til “output”, med henvisning til adresserne, som bitcoins sendes til.) Dette udgør en anden udfordring for privatlivets fred og svaghed, da alle input-adresser typisk tilhører den samme bruger: afsenderen af ​​transaktionen. Hvis selv en af ​​alle klyngede input-adresser kan linkes til en reel identitet, er de alle.

CoinJoin – foreslog i 2013 af Bitcoin Core og Blockstream udvikler Gregory Maxwell – er designet til at løse begge disse problemer. Det tilslører sporen af ​​bitcoins og bryder antagelsen om, at alle input-adresser tilhører den samme bruger.

Ideen

CoinJoin-konceptet er ret ligetil.

I det væsentlige lader CoinJoin flere brugere kombinere alle input og output fra flere transaktioner til en enkelt, stor transaktion. Denne enkelt transaktion bruger bitcoins fra forskellige adresser til forskellige adresser – og da ingen af ​​afsendelsesadresserne betaler ingen af ​​de modtagende adresser specifikt; der er ingen forbindelse mellem nogen af ​​dem.

(Dette kan sammenlignes med en gruppe mennesker, der kaster deres kontanter sammen og handler. Mens alle kunne sørge for, at ingen bruger mere, end de skulle, ville kunderne ikke nødvendigvis bruge de nøjagtige regninger, de oprindeligt lagde i den delte tegnebog selv .)

I Bitcoin kan dette opnås perfekt sikkert. Alle input kræver en tilsvarende signatur fra deres respektive ejer, mens indholdet af en transaktion ikke kan ændres, når en signatur er tilføjet. Som sådan meddeler deltagerne i en CoinJoin-transaktion blot hvilke input og output, de vil medtage i transaktionen, og underskriver kun aggregatet, hvis disse input og output er korrekt inkluderet. Når alle deltagere har underskrevet (og kun når de har underskrevet), sendes transaktionen.

Et nøglefunktion i CoinJoin: når transaktionen er sendt og inkluderet i blockchain, er der ingen måde at vide, hvilke bitcoins der gik hvor; ikke engang modtagerne af transaktionen ved, fra hvilke adresser de fik betalt.

Derudover forbedrer CoinJoin privatlivets fred, selv for dem der slet ikke bruger det. Da en kombination af input ikke længere betyder, at alle input-adresserne tilhører den samme bruger, er klyngedannelse generelt blevet et mindre kraftfuldt analyseværktøj..

I praksis

CoinJoin kræver ingen ændringer af Bitcoin-protokollen, og der er allerede flere implementeringer af den. Den største forskel mellem nogle af versionerne derude er, hvordan CoinJoin-transaktionen oprettes.

Den nemmeste måde at oprette en CoinJoin-transaktion på er via en dedikeret server. Enhver, der ønsker at bruge CoinJoin, opretter simpelthen forbindelse til serveren for at angive, hvilke input og output transaktionen skal indeholde. Serveren opretter derefter en stor samlet transaktion og sender denne tilbage, så alle deltagere kan underskrive. DarkWallet – den privatlivsfokuserede Bitcoin-tegnebog, der ser ud til at sidde fast i alfafasen – anvender en serverbaseret model, ligesom den populære Blockchain web-tegnebog, selvom dens effektivitet har været afhørt i fortiden.

Det største problem med den serverbaserede model er, at den, der styrer serveren, typisk vil have adgang til de data, der leveres af de enkelte deltagere. Som sådan præsenterer denne server et enkelt fejlpunkt set fra et privatlivs- og svaghedsperspektiv. Der er mulige løsninger til kryptografisk maskering af transaktionsdata, selv fra serveren, men dette er stadig teoretisk for nu.

Der er også decentrale CoinJoin-løsninger, der konstruerer CoinJoin-transaktioner peer-to-peer eller i det mindste uden nogen særlig central formidler. Der har været flere forsøg i denne retning, herunder Coinmux, Coinjumble, CoinJoiner og tidligere DarkWallet-udvikler Amir Taakis CoinJoin-værktøj. Men ingen af ​​disse bruges i vid udstrækning og derfor ikke særlig nyttige – “mønt sammenføjning” giver kun mening, når der er nogen at slutte sig til.

En nyere tilgang til CoinJoin-strategien, der har til hensigt at tackle dette problem er Deltag i markedet: en markedsplads for CoinJoin-transaktioner. Brugere kan tilbyde et sted i en CoinJoin-transaktion mod et mindre gebyr – eller selv købe adgang til en CoinJoin-transaktion. Skaberne af JoinMarket tro på at incitamentet til at blande mønter til gengæld for gebyrer skal generere tilstrækkelig likviditet til at gøre markedet til en succes – mens konkurrenceevnen heri skal holde gebyrerne lave. Faktisk er JoinMarket relativt godt brugt i forhold til alternativer og ordrebog (i skrivende stund) tilbyder tusindvis af bitcoins at blande med.

Endelig en anden privatlivsfokuseret tegnebog, Samourai tegnebog, inkluderer i øjeblikket en type CoinJoin-efterligning, der er designet til at smide den, der analyserer blockchain-data. Denne mulighed får transaktioner til at virke som CoinJoin-transaktioner, mens i realiteten alle input og output tilhører den samme bruger. (Samourai Wallet planlægger at udvide mulighederne for blanding af indbyggede og kryds-tegnebøger senere på året, hvilket muligvis også bruger CoinJoin-funktionalitet.)

Ulemper og kompromiser

Mens CoinJoin kan være nyttigt – det er ikke perfekt.

Vigtigst, mens CoinJoin gør et godt stykke arbejde med at blande input og output, er dette ikke tilstrækkeligt, hvis beløbene afslører. Hvis en input sender 4,9 bitcoins, en anden input sender 2,7 bitcoins og en tredje input sender 0,8 bitcoins, mens en output modtager 4,9 bitcoins, en modtager 2,7 bitcoins og en tredjedel modtager 0,8 bitcoins, så er det simpelt at forbinde input til output.

En mulig løsning på dette problem er selvfølgelig Fortrolige transaktioner. Da fortrolige transaktioner maskerer de sendte beløb (men ikke input og output), er CoinJoin og fortrolige transaktioner en potentielt stærk kombination.

En anden risiko er, at Sybil angreb. Tilsyneladende kan flere deltagere i en CoinJoin-transaktion virkelig være en og samme enhed, der overvåger en bestemt deltager.

(Hvis ni ud af ti input og output tilhører en enkelt NSA-agent, der sender bitcoins til sig selv, ville han vide, hvilken resterende output der sendte bitcoins til hvilken resterende output.)

Der er ingen let løsning på problemet med Sybil-angreb, men efterhånden som flere ægte brugere blander deres mønter, bliver det betydeligt sværere at trække med succes.

Hvilket bringer os til det næste punkt: CoinJoin er stadig et besvær. Næsten ingen tegnebøger har det indbygget, og dem, der ikke bruges meget (og stoler på en central server.) JoinMarket er sandsynligvis den mest succesrige implementering til dato, men kræver stadig særlig software og ekstra gebyrer (dog små).

Men en interessant udvikling i horisonten kan skæve disse incitamenter: Schnorr underskrifter. Aktiveret af Segregated Witness, kunne Schnorr-signaturer muliggøre sammenlægning af alle signaturer i en CoinJoin-transaktion i en enkelt signatur. Denne effektivitet skal resultere i lavere transaktionsgebyrer pr. Input og måske stimulere brugen af ​​den mest private og fungibilitetsvenlige løsning.

Tak til Gregory Maxwell for tilføjet feedback.