Bitcoin on juuri nyt ei oikeastaan tuntematon. Vaikka Bitcoin-osoitteet eivät välttämättä liity todellisiin identiteetteihin, ne voivat olla. Salatun vertaisverkon seuranta, julkisen estoketjun analysointi ja asiakkaan tuntemisen (KYC) tai rahanpesun torjunnan (AML) sääntely voivat paljastaa paljon siitä, kuka käyttää Bitcoinia ja mihin.
Tämä ei ole hieno yksityisyyden näkökulmasta. Bitcoinin käyttäjät eivät välttämättä halua maailman tietävän, mihin he kuluttavat rahansa, mitä ansaitsevat tai kuinka paljon he omistavat, kun taas yritykset eivät halua vuotaa tapahtumien yksityiskohtia kilpailijoille – muutamia esimerkkejä.
Lisäksi bitcoinien jäljitettävyys, mahdollisesti “pilaantuminen” ja mahdollisesti arvoltaan vähemmän kuin muut bitcoinit ovat ristiriidassa vaihdettavuuden kanssa. Tämä voi jopa haastaa Bitcoinin arvoesityksen rahana.
Mutta on olemassa mahdollisia ratkaisuja yksityisyyden lisäämiseksi ja vaihdettavuuden parantamiseksi.
Jonkin aikaa ollut ratkaisu on CoinJoin.
Tausta
Ytimessä Bitcoin-protokolla koostuu transaktioista. Kaikki nämä tapahtumat ovat täysin julkisia lohkoketjussa, mikä tarkoittaa, että kuka tahansa voi nähdä, mitkä osoitteet lähettivät bitcoineja mihin osoitteisiin. Jos jotkut näistä osoitteista linkitetään todellisen maailman identiteetteihin, se voi paljastaa kuka on tehnyt kauppaa kenen kanssa – tai mitä varten. Tämä on ristiriidassa yksityisyyden ja – etenkin vaihdettavuuden kanssa.
Lisäksi jokainen tapahtuma kuluttaa yhden tai useampia “syötteitä” viitaten osoitteisiin, joista bitcoinit lähetetään. (Nämä syötteet käytetään “lähtöihin”, viitaten osoitteisiin, joihin bitcoinit lähetetään.) Tämä asettaa uuden haasteen yksityisyydelle ja vaihdettavuudelle, koska kaikki syöttöosoitteet kuuluisivat yleensä samalle käyttäjälle: tapahtuman lähettäjälle. Jos jopa yksi kaikista klusteroiduista syöttöosoitteista voidaan liittää todelliseen identiteettiin, ne kaikki ovat.
CoinJoin – ehdotettu vuonna 2013 mennessä Bitcoin-ydin ja Blockstream kehittäjä Gregory Maxwell – on suunniteltu ratkaisemaan nämä molemmat ongelmat. Se hämmentää bitcoinien polkua ja rikkoo oletuksen, että kaikki syöttöosoitteet kuuluvat samalle käyttäjälle.
Ajatus
CoinJoin-konsepti on melko yksinkertainen.
Pohjimmiltaan CoinJoin antaa useille käyttäjille mahdollisuuden yhdistää useiden tapahtumien kaikki syötteet ja lähdöt yhdeksi suureksi tapahtumaksi. Tämä yksittäinen tapahtuma käyttää bitcoineja eri osoitteista eri osoitteisiin – ja koska mikään lähetysosoitteista ei maksa mitään vastaanotto-osoitteista erikseen; niiden välillä ei ole yhteyttä.
(Tätä voidaan verrata ryhmään ihmisiä, jotka heittävät käteisvaransa yhteen ja käyvät ostoksilla. Vaikka kaikki voisivat varmistaa, ettei kukaan kuluta enemmän kuin pitäisi, ostajat eivät välttämättä kuluta itse tarkkoja laskuja, jotka he alun perin laskivat jaettuun lompakkoon. .)
Bitcoinissa tämä voidaan saavuttaa täysin turvallisesti. Kaikki syötteet vaativat vastaavan omistajan allekirjoituksen, kun taas tapahtuman sisältöä ei voida muuttaa allekirjoituksen lisäämisen jälkeen. Sellaisena CoinJoin-tapahtuman osallistujat yksinkertaisesti ilmoittavat, mitkä panokset ja tuotokset he haluavat sisällyttää tapahtumaan, ja allekirjoittavat aggregaatin vain, jos nämä panokset ja tuotokset sisältyvät oikein. Kun kaikki osallistujat ovat allekirjoittaneet (ja vasta kun he ovat allekirjoittaneet), tapahtuma lähetetään.
CoinJoinin keskeinen piirre: kun tapahtuma on lähetetty ja sisällytetty lohkoketjuun, ei ole mitään keinoa tietää, mitkä bitcoinit menivät minne; edes kaupan vastaanottajat eivät tiedä, mistä osoitteista heille maksettiin.
Lisäksi CoinJoin parantaa yksityisyyttä myös niillä, jotka eivät käytä sitä lainkaan. Koska syötteiden yhdistelmä ei enää välttämättä tarkoita, että kaikki syöttöosoitteet kuuluvat samalle käyttäjälle, klusteroinnista on tullut yleisesti vähemmän tehokas analyysityökalu.
Käytännössä
CoinJoin ei vaadi muutoksia Bitcoin-protokollaan, ja sitä on jo useita. Suurin ero joidenkin siellä olevien versioiden välillä on se, miten CoinJoin-tapahtuma luodaan.
Helpoin tapa luoda CoinJoin-tapahtuma on oma palvelin. Jokainen, joka haluaa käyttää CoinJoinia, muodostaa yhteyden palvelimeen vain ilmoittamaan, mitkä syötteet ja lähdöt tapahtuman tulisi sisältää. Palvelin luo sitten suuren aggregaattitapahtuman ja lähettää sen takaisin kaikille osallistujille allekirjoittamista varten. Tumma lompakko – yksityisyyden suojaan keskittynyt Bitcoin-lompakko, joka näyttää olevan jumissa alfa-vaiheessa – käyttää palvelinpohjaista mallia, samoin kuin suosittu Blockchain verkkolompakko, vaikka sen tehokkuus onkin ollut kyseenalaistettu menneisyydessä.
Palvelinpohjaisen mallin pääongelma on, että palvelinta hallitsevalla on yleensä pääsy yksittäisten osallistujien toimittamiin tietoihin. Sellaisena tämä palvelin esittää yhden epäonnistumispisteen yksityisyyden ja vaihdettavuuden näkökulmasta. On olemassa potentiaalisia ratkaisuja salattujen tapahtumien peittämiseen jopa palvelimelta, mutta tämä on toistaiseksi teoreettista.
On myös hajautettuja CoinJoin-ratkaisuja, jotka rakentavat CoinJoin-tapahtumia vertaisverkkoihin tai ainakin ilman erityistä keskusvälittäjää. Tähän suuntaan on ollut useita yrityksiä, mukaan lukien Coinmux, Coinjumble, CoinJoiner ja entinen DarkWallet-kehittäjä Amir Taaki’s CoinJoin-työkalu. Mutta mikään näistä ei ole laajalti käytetty, joten se ei ole kovin hyödyllinen – “kolikoilla” on järkevää vain, kun on joku liittyä.
CoinJoin-strategian tuoreempi ottelu, jolla pyritään ratkaisemaan tämä ongelma, on Liity markkinoihin: markkinapaikka CoinJoin-liiketoimille. Käyttäjät voivat tarjota paikan CoinJoin-tapahtumassa vastineeksi pienestä maksusta – tai ostaa itse pääsyn CoinJoin-tapahtumaan. JoinMarketin luojat uskoa että kannustimen kolikoiden sekoittamiseen palkkioina pitäisi tuottaa riittävästi likviditeettiä markkinoiden menestymiseksi – kun taas niiden kilpailuluokan pitäisi pitää maksut alhaisina. JoinMarketia käytetäänkin suhteellisen hyvin verrattuna vaihtoehtoihin ja tilaa kirja (kirjoitushetkellä) tarjoaa tuhansia bitcoineja sekoitettavaksi.
Viimeiseksi toinen yksityisyyden suojaan keskittynyt lompakko, Samourai-lompakko, sisältää tällä hetkellä eräänlaisen CoinJoin-jäljitelmän, joka on suunniteltu heittämään kuka tahansa, joka analysoi blockchain-tietoja. Tämä vaihtoehto saa tapahtumat näyttämään CoinJoin-tapahtumilta, vaikka todellisuudessa kaikki panokset ja tuotokset kuuluvat samalle käyttäjälle. (Samourai Wallet aikoo laajentaa sisäänrakennettavien ja lompakon sekoitusvaihtoehtoja myöhemmin tänä vuonna, mikä saattaa myös hyödyntää CoinJoin-toimintoja.)
Haittoja ja kompromisseja
Vaikka CoinJoin voi olla hyödyllinen – se ei ole täydellinen.
Tärkeintä, vaikka CoinJoin tekee hienoa työtä sekoittamalla tuloja ja lähtöjä, tämä ei riitä, jos määrät paljastavat. Jos yksi tulo lähettää 4,9 bitcoinia, toinen tulo lähettää 2,7 bitcoinia ja kolmas tulo 0,8 bitcoineja, kun taas yksi lähtö vastaanottaa 4,9 bitcoineja, toinen saa 2,7 bitcoineja ja kolmas saa 0,8 bitcoineja, niin tulojen liittäminen lähtöihin on helppoa.
Mahdollinen ratkaisu tähän ongelmaan on tietysti Luottamukselliset liiketoimet. Koska Luottamukselliset liiketapahtumat peittävät lähetetyt määrät (mutta eivät syötteitä ja tuotoksia), CoinJoin ja Luottamukselliset tapahtumat ovat mahdollisesti tehokas yhdistelmä.
Toinen riski on Sybil hyökkää. Näennäisesti useat CoinJoin-tapahtuman osallistujat voivat todellakin olla yksi ja sama taho, tarkkailemalla tiettyä osallistujaa.
(Jos yhdeksän kymmenestä tulosta ja lähdöstä kuuluu yhdelle NSA-agentille, joka lähettää bitcoinia itselleen, hän tietäisi, mikä jäljellä oleva lähtö lähetti bitcoineja mihin jäljellä olevaan lähtöön.)
Sybil-hyökkäysten ongelmaan ei ole helppoa ratkaisua, mutta kun aidommat käyttäjät sekoittavat kolikoitaan, on huomattavasti vaikeampaa vetää onnistuneesti.
Mikä vie meidät seuraavaan kohtaan: CoinJoin on edelleen vaivaa. Lähes missään lompakossa ei ole sitä sisäänrakennettuna, ja ne, joita ei käytetä paljon (ja luottavat keskuspalvelimeen.) JoinMarket on todennäköisesti tähän mennessä menestynein toteutus, mutta vaatii silti erityisiä ohjelmistoja ja lisämaksuja (tosin pieniä).
Mutta mielenkiintoinen kehitys horisontissa saattaa vääristää näitä kannustimia: Schnorrin allekirjoitukset. Erillisen todistajan mahdollistama Schnorr-allekirjoitus voisi sallia kaikkien CoinJoin-tapahtuman allekirjoitusten yhdistämisen yhdeksi allekirjoitukseksi. Tämän tehokkuuden pitäisi johtaa alhaisempiin transaktiopalkkioihin panosta kohden ja ehkä kannustaa yksityisimmän ja vaihdettavissa olevan ratkaisun käyttöä.
Kiitos Gregory Maxwell lisätystä palautteesta.