Vaikka Satoshi Nakamoton valkoinen paperi viittaa siihen, että yksityisyys oli Bitcoin-protokollan suunnittelutavoitteena, blockchain-analyysi voi usein rikkoa käyttäjien yksityisyyttä. Tämä on ongelma. Bitcoinin käyttäjät eivät välttämättä halua maailman tietävän, mihin he käyttävät rahaa, mitä ansaitsevat tai kuinka paljon he omistavat, kun taas yritykset eivät halua vuotaa tapahtuman yksityiskohtia kilpailijoille – esimerkkinä.
Mutta yksityisyyden palauttamiseksi on olemassa ratkaisuja. Uusi ratkaisu oli ehdotettu on bitcoin-dev-postituslistalla tällä viikolla, Bitcoin ja Lightning -kehittäjä, joka käyttää nimimerkkiä “ZmnSCPxj”. Ehdotetulla ratkaisulla, jota kutsutaan Payswapiksi, on yksinkertainen mutta tehokas temppu sekoittaa lohkoketjuanalyysi kääntämällä maksajan ja maksunsaajan välinen suhde.
Näin se toimii.
Bitcoin-maksujen jäljitettävyys
Tyypillinen bitcoin-tapahtuma on maksu yhdeltä henkilöltä (maksaja) toiselle (maksunsaaja). Oletetaan, että esimerkiksi Alice haluaa maksaa Bob 3 bitcoinille. Jos Alice omistaa palan kolikoita (UTXO), joiden arvo on täsmälleen 3 kolikkoa, ja jätämme maksun huomiotta yksinkertaisuuden vuoksi, hän voisi luoda tapahtuman yhdellä syötteellä (viitaten osoitteeseen, jolla on 3 kolikkoa) ja yhdellä tuotoksella (viitaten Bobin Bitcoin-osoitteeseen) . Kolmen kolikon kappale siirtyisi olennaisesti Alicen osoitteesta Bobin osoitteeseen. Yksinkertainen.
Usein Alicella ei kuitenkaan ole palaa tarkkaa määrää kolikoita, jotka hänen on maksettava Bobille. Esimerkiksi Alicella voi olla vain kahden kolikon paloja. Tässä tapauksessa hän voi silti luoda tapahtuman. Tällä tapahtumalla olisi kaksi tuloa (kaksi palaa 2 kolikkoa, oletettavasti kahdesta eri osoitteesta), ja myös kaksi lähtöä: yksi 3-kolikon arvoinen tuotos, joka on osoitettu Bobin osoitteelle, ja yksi 1-kolikon arvoinen tuotos, jonka hän lähettää takaisin toiselle omat osoitteet muutoksena.
Valitettavasti juuri siksi, että tällainen kauppa on niin tyypillistä, se paljastaisi tietoja blockchain-analyytikoille. He olettavat, että kolmen kolikon pala muodostaa maksun (Bobille) ja että yksi kolikko on muutos (takaisin Aliceen). Loppujen lopuksi, jos maksu olisi vain yksi kolikko, Alice ei olisi tarvinnut sisällyttää kahta syötettä. Tämä antaa blockchain-analyytikoille mahdollisuuden jäljittää maksut blockchainiin ja lopulta mahdollistaa osoitteiden ryhmittelyn ja enemmän yksityisyyttä loukkaavia strategioita.
Anna Payswap
Payswap korvaa olennaisesti maksun Alicelta Bobille kahdella maksulla: yhden Alicelta Bobille ja toisen Bobilta Alicelle. Tämän tekeminen turvallisesti vaatii jonkin verran teknistä monimutkaisuutta – tarkemmin tästä alla – mutta jätämme nyt huomiotta.
Tässä tapauksessa Alice loisi silti tapahtuman, jossa olisi kaksi syötettä: kaksi palaa 2 kolikkoa. Mutta tällä kertaa kauppa sisältäisi vain yhden tuotoksen: Hän lähetti kaikki 4 kolikkoa Bobille. Jo tämä voi sekoittaa blockchain-analyytikot. Koska tyypillisimmät maksutapahtumat sisältävät muutososoitteen, eikä tätä tapahtumaa ole, he voivat (väärin) olettaa, että kyseessä on tapahtuma, jossa joku esimerkiksi siirtää omia varojaan uuteen lompakkoon.
Sillä välin Bob loisi myös kaupan Aliceen. Oletetaan, että Bobilla on 0,6 kolikon paloja. Hän loi tapahtuman, joka sisältää kaksi tuloa (0,6 kolikon palasia) ja kaksi lähtöä: 1 kolikko Alicelle ja 0,2 kolikkoa muutokseksi. Tämä näyttäisi aivan kuin tavallinen tapahtuma (1 kolikko Bobilta Aliceen).
Jos käytetään eri Bitcoin-osoitteita, blockchain-analyytikko ei voi kertoa, että kaksi tässä kuvattua tapahtumaa tapahtuivat samojen kahden ihmisen (Alice ja Bob) välillä. Sen sijaan niiden väärän olettamuksen, jonka he ovat saattaneet tehdä Alicen Bobille tekemästä transaktiosta, heillä voi olla nyt myös väärä oletus Bobin tapahtumasta Alicelle. Kaiken kaikkiaan he saattavat ajatella, että Bob maksoi Alice 1 bitcoin, kun todellisuudessa Alice maksoi Bob 3.
Blockchain-analyytikot olisi väärin olettamuksin johdettu harhaan, mikä hyödyttäisi sekä Alicen että Bobin yksityisyyttä. Jos blockchain-analyytikoiden oletukset murskataan tällaisten temppujen läpi riittävän usein, heidän oletuksistaan tulee yleisesti hyödyttömiä.
Lisätään CoinSwap
Todellisuudessa Payswap-temppu olisi hieman monimutkaisempi.
Yllä olevassa esimerkissä on jäljellä ongelma, joka on ratkaistava. Koska Alice ja Bob eivät luota toisiinsa, eivät kumpikaan ole halukkaita suorittamaan maksua ensin, koska se antaisi toisen katoavan palauttamatta maksua.
Tämä voidaan hoitaa vanhemmalla temppulla, nimeltään Kolikonvaihto. Atomiswapien (vielä vanhempi temppu) perusteella kaksi muuten erillistä liiketointa voidaan asettaa riippuvaisiksi toisistaan; kumpikaan osapuoli ei voinut kieltäytyä palauttamasta maksua.
Jos tiedät, miten CoinSwap ja / tai atomiswapit toimivat, Payswapin idea on todella yksinkertainen. Payswap käyttää epäsuhtaisia määriä sen sijaan, että käyttäisi (lähes) yhtä suuria määriä atomisidoksissa liiketoimissa; ero on maksu. (Jos tämä on sinulle selvää, artikkelin loppuosaa ei tarvitse lukea.)
Hieman tarkemmin, Payswap tuo kaksi ylimääräistä tapahtumaa yhtälöön.
Ensinnäkin sen sijaan, että luodaan tapahtuma, joka lähettää 4 kolikkoa suoraan Bobille, Alice luo tapahtuman, joka lähettää kolikot erittäin yksinkertaiseen älykkääseen sopimukseen. Kolikoista voi lunastaa tämän älykkään sopimuksen kahdella tavalla. Bob voi joko vaatia sitä, jos hän sisältää myös salaisen numeron, jonka Bob itse loi. Tai jos Bob ei lunasta kolikoita, Alice voi vaatia kolikot takaisin jonkin ajan kuluttua.
Toiseksi Bob ei luo tapahtumaa, joka lähettää kolikon suoraan Alicelle, vaan myös tapahtuman, joka lähettää kolikon älykkääseen perussopimukseen. (Ja 0,2 kolikkoa takaisin itselleen muutoksena.) Kolikkoa voidaan jälleen vaatia kahdella tavalla. Joko Alice voi vaatia sitä, jos hän sisältää saman salaisen numeron, jonka Bob loi. Tai Bob voi vaatia sitä jonkin ajan kuluttua. (Hieman enemmän aikaa kuin ensimmäisessä älykkäässä sopimuksessa.)
Molemmat tapahtumat lähetetään Bitcoin-verkkoon, jotta ne sisällytetään lohkoon.
Kun Bob haluaa kerätä maksunsa (4 kolikkoa), hän loi tapahtuman Alicen luomasta älykkäästä sopimuksesta, sisältäen siten luomansa salaisen koodin, vaatien rahaa. Tärkeää on, että tekemällä näin hän paljastaa salaisen koodinsa Bitcoin-lohkoketjussa, jotta Alice näkee sen. Sen avulla Alice voi puolestaan luoda tapahtuman Bobin luomasta älykkäästä sopimuksesta ja vaatia yhden kolikon takaisin osoitteeseensa.
Toisin sanoen: Bob voi lunastaa vain 4 kolikkoa antamalla Alicelle lunastaa yhden kolikon. Joko molemmat liiketoimet tapahtuvat tai eivät.
Jos Bob jostakin syystä ei vaadi maksua, Alicen luoman älykkään perussopimuksen aikaraja päättyy, ja hän voi vaatia 4 kolikkoa takaisin. Hieman myöhemmin Bob voi myös vaatia yhden kolikonsa takaisin. Ei haittaa.
On syytä huomauttaa, että nämä älykkäät sopimukset voidaan luoda hienoilla matemaattisilla temppuilla piilottaakseen salaiset koodit salauksellisissa allekirjoituksissa, jotta estetään lohkoketjun analyytikoiden yhdistämä nämä kaksi tapahtumaa koodin kautta. Yksityiskohdat siitä, miten tämä tehdään, eivät kuitenkaan kuulu tämän artikkelin soveltamisalaan; Jos haluat oppia lisää, katso tämä artikkeli Scriptless Scriptsista.
Loppujen lopuksi, vaikka atomiswapien käyttö lisää jonkin verran monimutkaisuutta, blockchain-analyytikot hämmentyvät samalla tavalla.
Payswap-haittoja
Payswapiin liittyy joitain kompromisseja.
Ilmeisin haittapuoli on, että maksu edellyttäisi neljää tapahtumaa yhden sijasta. Kaksi tapahtumaa tarvitaan, jotta varat saadaan Alicelta Bobille, ja kaksi transaktiota tarvitaan, jotta “muutos” saadaan takaisin Bobista Aliceen. Tämä vaatii enemmän lohkotilaa ja siten enemmän maksuja.
Lisäksi maksu edellyttää, että Alice ja Bob ovat vuorovaikutuksessa. Alice ei voi vain lähettää varoja Bobin osoitteeseen; sen sijaan molempien on oltava yhteydessä Bitcoin-protokollan ulkopuolelle, jotta he asettuvat myös Bobin salaisen numeron tunnisteeseen (hash).
Ratkaisu saattaa siis olla hyödyllisempi salaman yhteydessä. Maksun reititys salamaverkossa perustuu kokonaan salaisten numeroiden vaihtoon, aivan kuten edellisessä esimerkissä luotu Bob, joten ei ole vaikea nähdä, miten sama temppu sovellettaisiin. Lightning Networkissa ylimääräiset tapahtumat eivät kuitenkaan osuisi lohkoketjuun, vaikka maksut edellyttävät kuitenkin vuorovaikutusta.
Itse asiassa ZmnSCPxj keskittyi enimmäkseen Bitcoinin Layer 2 -verkkoon nopeita ja halpoja maksuja varten, ja alun perin Payswap-idea tuli Lightning Network -verkoston yhteydessä, jossa hän yksinkertaisesti viittaa siihen “itsemaksuina”. Mutta lisää tästä ehdotuksesta tulevassa artikkelissa …