Bitcoin ei tällä hetkellä ole 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.
Yksi näistä ratkaisuista on “Luottamukselliset liiketoimet”.
Tausta
Toisin kuin useimmat digitaaliset rahoitusinfrastruktuurit, kaikki tyypilliset Bitcoin-tapahtumat tallennetaan julkiseen lohkoketjuun, ja kuka tahansa näkee ne. Tätä vaaditaan tapahtumien validointiin ilman keskitettyä valtuutusta, mutta tekee myös triviaaliksi jäljittää, kuinka monta bitcoinia lähetetään mistä osoitteista mihin osoitteisiin.
Yksityisyyden parantamiseksi on mahdollista piilottaa transaktioiden määrä. Tämän konseptin varhainen versio, jota kutsutaan sitten “homomorfisen arvon omaaviksi bitkoineiksi”, oli ensimmäinen ehdotettu vuonna 2013 hashcash-keksijä ja nykyinen Blockstream presidentti tohtori Adam Back. Ajatus otettiin myöhemmin käyttöön Bitcoin-ydin ja Blockstream-kehittäjät Gregory Maxwell ja Dr. Pieter Wuille sekä Blockstream-matemaatikko Andrew Poelstra. Tämä johti lopulta luottamuksellisten tapahtumien käyttöönottoon Blockstreamin testnet-sivuketjussa, Alfa.
Kuinka se toimii
Luottamuksellisissa tapahtumissa yhdistetään ja hyödynnetään useita salaustemppuja, erityisesti Borromean rengasallekirjoitukset ja Pedersenin sitoutumisjärjestelmät.
Sukeltamatta liian syvälle salaustekniikkaan näitä temppuja käytetään niin, että vain tapahtuman lähettäjä ja vastaanottaja ovat tietoisia tapahtuneesta määrästä. Kaikki muut näkisivät vain, että bitcoinit ovat kaupassa, mutta eivät tiedä kuinka monta.
Fiksu asia on, että vaikka jotkut tai kaikki määrät on naamioitu “katsojille”, nämä katsojat voivat silti käyttää peiteltyjä määriä tietyntyyppisiin laskelmiin. Tarkemmin sanottuna kaikki tapahtuman panokset voidaan laskea yhteen, kaikki tuotokset voidaan laskea yhteen ja kahta summaa voidaan verrata varmistamaan, että ne ovat tasa-arvoisia – kaikki paljastamatta kuitenkaan peiteltyjä määriä tai summia. Sellaisina solmut voivat tarkistaa, ettei yhtään bitcoinia luotu tyhjästä, tietämättä kuinka monta bitcoinia todella lähetettiin.
(Sivuhuomautuksena yksi summista on aina näkyvissä: kaivosmaksu. Sen tarkoituksena on varmistaa, että kaivostyöläiset eivät voi myöntää itselleen liikaa maksuja, eikä sillä ole muita seurauksia yksityisyyden näkökulmasta. Myös muut määrät voidaan tehdä näkyviksi, jos lähettäjä tai vastaanottaja niin haluaa.)
Pehmeä haarukka
Ehkä yllättävää, Luottamukselliset liiketapahtumat olisivat enemmän tai vähemmän yhteensopivia nykyisen Bitcoin-protokollan kanssa. Vaikka yksityiskohdat on täsmennettävä, ratkaisu voidaan ottaa käyttöön a pehmeä haarukka – vaikka se saattaa olla hieman “hakkerointi”.
Näin.
Sen varmistamiseksi, että “vanhat” (päivittämättömät) ja “uudet” (päivitetyt) solmut pysyvät synkronoituna, Luottamuksellisessa tapahtumassa käytetyt bitcoinit on ensin “läpäistävä” “kuka tahansa voi kuluttaa” -osoitteen kautta. Tämä on Bitcoin-osoite, josta kuka tahansa voi käyttää, jopa ilman vastaavaa yksityistä avainta tai allekirjoitusta.
Tai niin näyttää vanhoilta solmuilta.
Uudet solmut tunnistaisivat osoitteen luottamuksellisen tapahtuman ensimmäiseksi vaiheeksi ja hyväksyisivät vain tältä osoitteelta tapahtuvat tapahtumat, jotka sisältävät oikean allekirjoituksen. Niin kauan kuin suurin osa hajautusvoimasta noudattaa näitä sääntöjä, kuka tahansa voi viettää -osoitteen bittiä ei voi varastaa kukaan, joka ei hallitse vastaavaa yksityistä avainta. (Vanhat solmut saattavat ihmetellä, miksi kukaan ei käytä vapaasti saatavilla olevia bitcoineja. Mutta he eivät myöskään pidä mielessä, että kukaan ei tee; heidän näkökulmastaan mitään protokollasääntöjä ei rikota.)
Tässä on mielenkiintoista.
Jos luottamuksellinen tapahtuma tehdään kuka tahansa voi kuluttaa -osoitteesta, sekä vanhat että uudet solmut näkevät kyseisen tapahtuman. Mutta he näkevät jotain erilaista. Uudet solmut tunnistaisivat tapahtuman luottamukselliseksi tapahtumaksi ja esimerkiksi tarkistaisivat, että tyhjästä ilmasta ei ole luotu bitcoineja. Sillä välin vanhoja solmuja huijataan ajattelemaan, että se on nolla-bitcoin-tapahtuma: he uskoisivat, ettei mikään bitcoin jätä kenenkään voi viettää osoitetta ollenkaan.
Tämä logiikka pätee jokaiseen seuraavaan tapahtumaan. Uudet solmut näkisivät uusia tapahtumia ja tietäisivät, että jonkin verran bitcoinia siirretään todennäköisesti osoitteesta osoitteeseen – vaikka heillä ei olisi aavistustakaan kuinka monta. Vanhat solmut näkevät koko ajan “nollabitinointitransaktiot” ja uskovat, että kaikki bitcoinit istuvat edelleen kenenkään voi viettää -osoitteessa. (Vanhat solmut saattavat ihmetellä, miksi ihmiset lähettävät tyhjiä tapahtumia toisilleen. Mutta jälleen kerran he eivät välitä.)
Syy, miksi tämä ei aiheuta tuhoa (erityisesti yhteensopimattomuuden takia) UTXO-sarjat) on se, että luottamuksellisen tapahtuman kautta vastaanotetut bitcoinit voidaan aluksi käyttää vain luottamuksellisena tapahtumana. Ne ovat “lukittuina” kuka tahansa voi viettää -osoitteeseen toistaiseksi, eivätkä ne voi liikkua näkyvästi Bitcoin-lohkoketjun yli.
Voidakseen käyttää näitä bitcoineja normaalissa tapahtumassa uudelleen heidän on ensin “läpäistävä” alkuperäinen kuka tahansa voi käyttää -osoite. Luottamuksellisen tapahtuman vastaanottajan olisi lähetettävä ne takaisin kenelle tahansa voi viettää -osoitteeseen ja aloittaa sieltä kolikoiden siirtäminen uudelleen näkyvissä lohkoketjussa uudelleen.
Kun ne alkavat liikkua jälleen näkyvissä, uudet solmut tarkistavat, ettei kolikoita liikuta liikaa, kun taas vanhat solmut olettavat yksinkertaisesti, että kolikot liikkuvat ensimmäistä kertaa niiden lukitsemisen jälkeen.
Sellaisena kuka tahansa voi viettää osoite toimii tehokkaasti naamiointilaitteena. Kuka tahansa voi viettää -osoitteen läpäisy tekee myöhempien tapahtumien määrät näkymättömiksi kaikille solmuille. Bitcoinit “ilmestyisivät uudelleen” vasta, kun ne ovat palanneet kenelle tahansa voi viettää alkuperäiselle osoitteelle.
Haittoja ja kompromisseja
Valitettavasti luottamukselliset liiketoimet eivät ole hopeanvärisiä yksityiskohtia.
Ilmeisimmin, vaikka luottamuksellisten tapahtumien peite on suuri, katsojat voivat silti nähdä, mikä osoite maksaa minkä osoitteen.
Mutta myös tämän ratkaisemiseksi on potentiaalisia ratkaisuja.
Ensinnäkin on triviaalia luoda vääriä negatiivisia ja maksaa nolla bitcoinia useisiin osoitteisiin hämmentääkseen minne bitcoinit todella menivät. Lisäksi luottamukselliset tapahtumat voivat olla erityisen hyödyllisiä yhdessä CoinJoinin kanssa, joka yhdistää useiden tapahtumien osoitteiden lähettämisen ja vastaanottamisen yhdeksi suureksi tapahtumaksi.
Toinen luottamuksellisten liiketapahtumien mahdollinen heikkous on, että peitetyt määrät peitetään oikeastaan vain kyseiselle tapahtumalle. Tämä voi olla melko turhaa, jos seuraava tapahtuma ei ole luottamuksellinen tapahtuma. Myöhempien tapahtumien tietoja voidaan joskus käyttää taannehtivasti laskemaan, kuinka monta bitcoinia on pitänyt olla mukana luottamuksellisessa tapahtumassa.
(Esimerkiksi: Jos Alice lähettää tuntemattoman määrän bitcoineja Bobille ja Bob lähettää myöhemmin 5 bitcoinia Carolille ja 2 itselleen muutoksena, se tarkoittaa tietysti, että Alice lähetti 7 bitcoinia Bobille.)
Tämä tarkoittaa, että luottamukselliset tapahtumat ovat todella hyödyllisiä vain, jos tällainen käyttö on laajaa. Mutta se tuo meidät kenties vielä isompaan ongelmaan: Luottamukselliset liiketoimet ovat melko resursseja raskaita. Luottamuksellinen tapahtuma on noin 20 kertaa suurempi kuin normaali tapahtuma, vaikka se jopa lisää laskentaa kolmekymmentä kertaa. Kunkin luottamuksellisen tapahtuman kustannukset olisivat sinänsä huomattavasti korkeammat kuin tyypillisissä tapahtumissa, mikä estää yrityksiä tosiasiallisesti käyttäviltä ihmisiltä – vähentää niiden hyödyllisyyttä myös muille.
Tämän lisäksi luottamuksellisten tapahtumien pelkkä koko asettaa ne ristiriitaan joko skaalautuvuuden (koska Bitcoin-verkko pystyy käsittelemään vähemmän tapahtumia) tai hajauttamisen kanssa (koska vähemmän käyttäjiä pystyisi suorittamaan koko solmun ja tarkistamaan kaikki tapahtumat) ), tai molemmat.
Ja viimeisenä mutta ei vähäisimpänä: Ei ole selvää, että kaikki ovat yhtä mieltä siitä, että Bitcoinin tulisi olla yksityisempi tai vaihdettavampi, mikä saattaa edelleen monimutkaista tällaisten mahdollisten pehmeiden haarukoiden käyttöönottoa.
Kiitos Pieter Wuille, Adam Back ja Monero johtava kehittäjä Riccardo Spagni saadakseen tietoa ja palautetta.