name: Bitcoini privaatsus goal: Mõista ja omandada privaatsuse kaitse põhimõtteid Bitcoini kasutamisel objectives:


Bitcoini privaatsuse kaitsmine

Maailmas, kus finantstehingute konfidentsiaalsus muutub järk-järgult luksuseks, on Bitcoini kasutamisel oluline mõista ja omandada eraelu puutumatuse kaitse põhimõtteid. See koolituskursus annab teile kõik võtmed, nii teoreetilised kui ka praktilised, et seda iseseisvalt saavutada.

Täna on Bitcoini puhul ettevõtted spetsialiseerunud plokiahela analüüsile. Nende põhitegevus seisneb just teie privaatsfääri tungimises, et kahjustada teie tehingute konfidentsiaalsust. Tegelikkuses ei ole Bitcoinis sellist asja nagu "õigus privaatsusele". Seega on teie, kasutaja, ülesanne oma loomulikke õigusi maksma panna ja kaitsta oma tehingute konfidentsiaalsust, sest keegi teine ei tee seda teie eest.

Kursus on kavandatud terviklikuks ja üldiseks. Iga tehnilist mõistet käsitletakse üksikasjalikult ja seda toetavad selgitavate diagrammide abil. Eesmärk on teha teadmised kõigile kättesaadavaks. Seetõttu on BTC204 taskukohane nii algajatele kui ka edasijõudnutele. Kursus pakub lisaväärtust ka kogenumatele bitcoini kasutajatele, kuna süveneme teatud tehnilistesse mõistetesse, mida sageli valesti mõistetakse.

Liitu meiega, et muuta oma Bitcoini kasutamine ja saada teadlikuks kasutajaks, kes suudab mõista konfidentsiaalsuse ja privaatsuse kaitsmisega seotud küsimusi.

Sissejuhatus

Kursuse ülevaade

Tere tulemast kursusele BTC204!

Maailmas, kus finantstehingute konfidentsiaalsus muutub järk-järgult luksuseks, on Bitcoini kasutamisel oluline mõista ja omandada eraelu puutumatuse kaitse põhimõtteid. See koolituskursus annab teile kõik võtmed, nii teoreetilised kui ka praktilised, et seda iseseisvalt saavutada.

Täna on Bitcoini puhul ettevõtted spetsialiseerunud plokiahela analüüsile. Nende põhitegevus seisneb just teie privaatsfääri tungimises, et kahjustada teie tehingute konfidentsiaalsust. Tegelikkuses ei ole Bitcoinis sellist asja nagu "õigus privaatsusele". Seega on teie, kasutaja, ülesanne oma loomulikke õigusi maksma panna ja kaitsta oma tehingute konfidentsiaalsust, sest keegi teine ei tee seda teie eest.

Bitcoin ei ole ainult "Number Go Up" ja säästude väärtuse säilitamine. Oma ainulaadsete omaduste ja ajalooga on see ennekõike vastumajanduse vahend. Tänu sellele hirmsale leiutisele saate oma raha vabalt käsutada, kulutada ja koguda, ilma et keegi saaks teid takistada.

Bitcoin pakub rahumeelset põgenemist riigi ikke alt, võimaldades teil täielikult nautida oma loomulikke õigusi, mida ei saa kehtestatud seadustega vaidlustada. Tänu Satoshi Nakamoto leiutisele on teil võim, et tagada oma eraomandi austamine ja taastada lepinguvabadus.

Bitcoin ei ole aga vaikimisi anonüümne, mis võib kujutada endast ohtu vastumajanduse valdkonnas tegutsevatele inimestele, eriti piirkondades, kus valitseb despootlik võim. Kuid see ei ole ainus oht. Kuna bitcoin on väärtuslik ja mõõdetamatu vara, võib see olla varaste sihtmärgiks. Seega muutub teie privaatsuse kaitsmine ka turvalisuse küsimuseks: see võib aidata teil vältida häkkimist ja füüsilisi rünnakuid.

Nagu me näeme, kuigi protokoll pakub iseenesest teatud konfidentsiaalsuskaitset, on väga oluline kasutada täiendavaid vahendeid selle konfidentsiaalsuse optimeerimiseks ja kaitsmiseks.

Selle koolituskursuse eesmärk on anda põhjalik üldine ülevaade Bitcoini konfidentsiaalsusega seotud küsimustest. Iga tehnilist mõistet käsitletakse üksikasjalikult, mida toetavad selgitavad diagrammid. Eesmärk on teha need teadmised kättesaadavaks kõigile, isegi algajatele ja edasijõudnutele. Kogenumate Bitcoini kasutajate jaoks käsitleme kursuse jooksul ka väga tehnilisi ja mõnikord vähe tuntud mõisteid, et süvendada iga teema mõistmist.

Selle koolituskursuse eesmärk ei ole muuta teid Bitcoini kasutamisel täiesti anonüümseks, vaid pigem anda teile olulised vahendid, et teaksite, kuidas kaitsta oma konfidentsiaalsust vastavalt oma isiklikele eesmärkidele. Teil on vabadus valida esitatud kontseptsioonide ja vahendite hulgast, et töötada välja oma strateegiad, mis on kohandatud teie konkreetsetele eesmärkidele ja vajadustele.

1. jagu: Mõisted ja põhimõisted

Alustuseks vaatame üle Bitcoini toimimise põhiprintsiibid, et seejärel saaksime rahulikult käsitleda konfidentsiaalsusega seotud mõisteid. On oluline omandada mõned põhimõisted, nagu UTXO, aadresside vastuvõtmine ja skriptide koostamine, enne kui saate täielikult mõista mõisteid, mida käsitleme järgmistes osades. Tutvustame ka Bitcoini üldist konfidentsiaalsusmudelit, nagu Satoshi Nakamoto seda ette kujutas, mis võimaldab meil mõista sellega seotud panuseid ja riske.

BTC204

2. jagu: Arusaamine ja kaitse ahelanalüüsi vastu

Teises jaotises vaatleme tehnikaid, mida plokiahela analüüsiga tegelevad ettevõtted kasutavad teie tegevuse jälgimiseks Bitcoinis. Nende meetodite mõistmine on teie eraelu puutumatuse kaitse tugevdamiseks ülioluline. Selle osa eesmärk on uurida ründajate strateegiaid, et paremini mõista riske ja valmistada ette pinnast tehnikatele, mida uurime järgmistes osades. Analüüsime tehingumustreid, sisemisi ja väliseid heuristilisi võtteid ning nende mustrite tõenäolisi tõlgendusi. Lisaks teooriale õpime praktiliste näidete ja harjutuste kaudu, kuidas kasutada ahelate analüüsiks plokkide otsijat.

BTC204

3. jagu: Parimate tavade omandamine eraelu puutumatuse kaitsmiseks

Meie koolituskursuse kolmandas osas läheme asja juurde: praktika! Eesmärk on omandada kõik olulised parimad tavad, mis peaksid saama iga Bitcoini kasutaja jaoks loomulikuks refleksiks. Me käsitleme tühjade aadresside kasutamist, märgistamist, konsolideerimist, terviklike sõlmede kasutamist, samuti KYC- ja omandamismeetodeid. Eesmärgiks on anda teile põhjalik ülevaade lõksudest, mida vältida, et luua kindel alus meie püüdlustes kaitsta privaatsust. Mõnede nende tavade puhul juhatatakse teid konkreetse õpetuse juurde, kuidas neid rakendada.

BTC204

4. jagu: Coinjoin-tehingute mõistmine

Kuidas me saame rääkida Bitcoini privaatsusest, ilma et mainiksime coinjoins'i? Jaotises 4 leiate kõik, mida selle segamismeetodi kohta teada peate. Saate teada, mis on coinjoinid, nende ajalugu ja eesmärgid, samuti erinevad olemasolevad coinjoini tüübid. Lõpuks vaatame kogenumatele kasutajatele, mis on anonsetid ja entroopia ning kuidas neid arvutada.

BTC204

5. jagu: Teiste täiustatud konfidentsiaalsustehnikate probleemide mõistmine

Viiendas jaotises vaatleme kõiki teisi meetodeid, mis on saadaval teie privaatsuse kaitsmiseks Bitcoinis, välja arvatud coinjoin. Aastate jooksul on arendajad näidanud märkimisväärset loovust privaatsusele pühendatud vahendite väljatöötamisel. Vaatleme kõiki neid meetodeid, nagu payjoin, ühistehingud, Coin Swap ja Atomic Swap, kirjeldades üksikasjalikult nende toimimist, eesmärke ja võimalikke nõrkusi.

Samuti vaatleme privaatsust sõlmede võrgu ja tehingute levitamise tasandil. Samuti arutame erinevaid protokolle, mida on aastate jooksul pakutud kasutajate privaatsuse suurendamiseks Bitcoinis, sealhulgas staatiliste aadresside protokollid.

BTC204 Kas olete valmis uurima Bitcoini privaatsuse keerdkäike? Lähme!

Mõisted ja põhimõisted

Bitcoini UTXO mudel

Bitcoin on ennekõike valuuta, kuid kas te tegelikult teate, kuidas BTC-d protokollis esindatud on?

UTXO-d Bitcoinis: mis need on?

Bitcoini protokoll põhineb UTXO-mudelil, mis tähendab "Unspent Transaction Output".

See mudel erineb oluliselt traditsioonilistest pangandussüsteemidest, mis tuginevad finantsvoogude jälgimiseks kontode ja saldode mehhanismile. Pangandussüsteemis säilitatakse individuaalsed saldod identiteediga seotud kontodel. Näiteks kui te ostate pagarilt baguette'i, debiteerib teie pank lihtsalt ostusumma teie kontolt, vähendades teie saldot, samal ajal kui pagari kontole kantakse sama summa, suurendades selle saldot. Selles süsteemis ei ole mingit seost teie kontole laekunud ja sealt lahkunud raha vahel, välja arvatud tehingukirjed.

BTC204

Bitcoin töötab teisiti. Konto mõistet ei ole olemas ja rahaühikuid ei hallata saldode, vaid UTXOde kaudu. UTXO esindab konkreetset bitcoinide kogust, mida ei ole veel kulutatud, moodustades seega "bitcoini tüki", mis võib olla suur või väike. Näiteks võib üks UTXO olla väärtusega 500 BTC või lihtsalt 700 SATS.

**> Satoshi, sageli lühendatult sat, on Bitcoini väikseim ühik, mis on võrreldav fiat-valuutade sentime'iga.

1 BTC = 100 000 000 SATS

Teoreetiliselt võib üks UTXO esindada mis tahes väärtust bitcoinides, alates satist kuni teoreetilise maksimumini, mis on umbes 21 miljonit BTC. Siiski on loogiliselt võimatu omada kõiki 21 miljonit bitcoin'i ning on olemas madalam majanduslik lävi, mida nimetatakse "tolmuks" ja millest allapoole jäävat UTXO-d peetakse majanduslikult ebasoodsaks kulutada.

**> Bitcoinis kunagi loodud suurima UTXO väärtus oli 500 000 BTC. See loodi MtGoxi platvormi poolt 2011. aasta novembris toimunud konsolideerimisoperatsiooni käigus: 29a3efd3ef04f9153d47a990bd7b048a4b2d213daaa5fb8ed670fb85f13bdbcf

UTXOd ja kulutustingimused

UTXOd on Bitcoini vahetusvahendid. Iga tehingu tulemuseks on UTXOde tarbimine sisendina ja uute UTXOde loomine väljundina. Kui tehing on lõpule viidud, loetakse sisendina kasutatud UTXOd "kulutatud" ning uued UTXOd luuakse ja jaotatakse tehingu väljundites märgitud saajatele. Seega kujutab UTXO lihtsalt kulutamata tehingu väljundit ja seega bitcoinide kogust, mis kuulub antud hetkel kasutajale.

BTC204

Kõik UTXOd on tagatud skriptidega, mis määravad kindlaks tingimused, mille alusel neid saab kulutada. UTXO tarbimiseks peab kasutaja tõendama võrgule, et ta vastab UTXOd tagavas skriptis sätestatud tingimustele. Tavaliselt on UTXOd kaitstud avaliku võtmega (või seda avalikku võtit esindava vastuvõtuaadressiga). Selle avaliku võtmega seotud UTXO kulutamiseks peab kasutaja tõendama, et tal on vastav privaatne võti, esitades selle võtmega tehtud digitaalallkirja. Seepärast ütleme, et teie Bitcoini rahakott ei sisalda tegelikult bitcoin'e, vaid hoiab teie privaatvõtmeid, mis omakorda annavad teile juurdepääsu teie UTXOdele ja seega ka bitcoin'idele, mida need esindavad.

BTC204

Kuna Bitcoinis puudub konto mõiste, on rahakoti saldo lihtsalt kõigi UTXOde väärtuste summa, mida ta saab kulutada. Näiteks kui teie Bitcoini rahakott saab kulutada järgmised 4 UTXO-d:

- 2 BTC
- 8 BTC
- 5 BTC
- 2 BTC

Teie portfelli kogusaldo oleks "17 BTC".

BTC204

Bitcoini tehingute struktuur

Tehingu sisendid ja väljundid

Bitcoini tehing on plokiahelas salvestatud toiming, mis annab bitcoinide omandiõiguse ühelt inimeselt teisele üle. Täpsemalt, kuna me oleme UTXO-mudelil ja kontosid ei ole, täidab tehing kulutustingimusi, mis kindlustasid ühe või mitu UTXO-d, tarbib neid ja loob samaväärselt uusi UTXO-d uute kulutustingimustega. Lühidalt öeldes liigutab tehing bitcoin'id rahuldatud skriptist uude skripti, mis on mõeldud nende kindlustamiseks.

BTC204

Iga Bitcoini tehing koosneb seega ühest või mitmest sisendist ja ühest või mitmest väljundist. Sisendid on UTXOd, mida tehing tarbib väljundite loomiseks. Väljundid on uued UTXOd, mida saab kasutada tulevaste tehingute sisenditena.

BTC204

**> Teoreetiliselt võib bitcoini tehingul olla lõpmatu arv sisendeid ja väljundeid. Ainus piirang on maksimaalne plokisuurus.

Iga Bitcoini tehingu sisend viitab eelmisele kasutamata UTXO-le. Et kasutada UTXO-d sisendina, peab selle omanik tõendama, et ta on õigustatud omanik, valideerides seotud skripti, st rahuldades kehtestatud kulutamistingimuse. Üldiselt tähendab see, et tuleb esitada digitaalallkiri, mis on toodetud selle avaliku võtmega, mis algselt tagas selle UTXO. Skript seisneb seega selles, et kontrollitakse, kas allkiri vastab raha saamisel kasutatud avalikule võtmele.

BTC204

Iga väljund määrab omakorda kindlaks ülekantavate bitcoinide summa ja saaja. Viimane määratakse uue skripti abil, mis tavaliselt blokeerib äsja loodud UTXO vastuvõtva aadressi või uue avaliku võtmega.

Selleks, et tehing oleks konsensusreeglite kohaselt kehtiv, peab väljundite kogusumma olema väiksem või võrdne sisendite kogusummaga. Teisisõnu ei tohi tehingu poolt loodud uute UTXOde summa ületada sisenditena tarbitud UTXOde summat. See põhimõte on loogiline: kui teil on ainult 500 000 SATS, ei saa te teha 700 000 SATS ostu.

Vahetamine ja ühendamine Bitcoini tehingus

Bitcoini tehingu toimingut UTXOs võib seega võrrelda kuldmündi ümbertöötlemisega. Tõepoolest, UTXO ei ole jagatav, vaid ainult suletav. See tähendab, et kasutaja ei saa lihtsalt jagada UTXO-d, mis esindab teatud summat bitcoinides, mitmeks väiksemaks UTXO-ks. Ta peab selle tehingu käigus täielikult ära kulutama, et luua üks või mitu uut UTXOd suvalise väärtusega väljundit, mis peavad olema väiksemad või võrdsed algväärtusega.

See mehhanism on sarnane kuldmündi omaga. Oletame, et teil on 2 untsi suurune münt ja te soovite maksta 1 untsi eest, eeldades, et müüja ei saa teile vahetusraha anda. Peaksite oma mündi sulatama ja valama 2 uut, igaüks 1 untsiga.

Bitcoin töötab sarnaselt. Kujutame ette, et Alice'il on UTXO 10 000 SATS ja ta soovib osta 4000 SATS maksva baguette'i. Alice teeb tehingu, mille sisendiks on 1 UTXO väärtusega 10 000 SATS, mille ta tarbib täielikult, ja väljundiks 2 UTXO väärtusega 4 000 SATS ja 6 000 SATS. TÜXO summas 4 000 SATS saadetakse pagarile pagari eest tasumiseks, samas kui TÜXO summas 6 000 SATS jõuab tagasi Alice'ile vahetusena. See UTXO, mis naaseb tehingu algsele väljastajale, on Bitcoini žargoonis tuntud kui "vahetus".

BTC204

Kujutame nüüd ette, et Alice'il ei ole mitte üks UTXO suurusega "10 000 SATS", vaid kaks UTXOd suurusega "3000 SATS". Sellises olukorras ei ole kumbki UTXO eraldi piisav, et määrata saua 4,000 SATS. Seetõttu peab Alice kasutama tehingu sisenditena samaaegselt kahte UTXOd väärtusega 3,000 SATS. Sel viisil jõuab sisendite kogusumma 6000 SATSini, mis võimaldab tal rahuldada pagarile tehtava 4000 SATSi makse. Seda meetodit, mille puhul mitu UTXOd koondatakse tehingu sisenditeks, nimetatakse sageli "ühendamiseks".

BTC204

Tehingutasud

Intuitiivselt võiks arvata, et tehingukulud kujutavad endast ka tehingu väljundit. Kuid tegelikkuses ei ole see nii. Tehingukulud kujutavad endast sisendite ja väljundite kogusumma vahet. See tähendab, et pärast seda, kui osa sisendite väärtusest on kasutatud tehingu soovitud väljundite katmiseks, jääb teatud summa sisenditest kasutamata. See jääksumma moodustab tehingukulud.

Frais = total inputs - total outputs

Võtame näiteks Alice'i, kelle UTXO on 10 000 SATS ja kes soovib osta baguette'i hinnaga 4 000 SATS. Alice loob tehingu, mille sisendiks on tema UTXO 10 000 SATS. Seejärel genereerib ta pagarile pagari eest tasumiseks väljundiks 4 000 SATS. Et julgustada kaevandajaid tema tehingut plokki integreerima, määrab Alice 200 SATSi tasu. Seejärel loob ta teise väljundi, vahetuse, mis tagastatakse talle summas 5,800 SATS.

BTC204

Tasu valemit rakendades näeme, et alaealistele on tõepoolest jäänud 200 SATSi:

Frais = total inputs - total outputs
Frais = 10 000 - (4 000 + 5 800)
Frais = 10 000 - 9 800
Frais = 200

Kui kaevuril õnnestub plokk valideerida, on tal õigus koguda neid tasusid kõigi tema plokis sisalduvate tehingute eest nn coinbase'i tehingu kaudu.

UTXO-de loomine Bitcoini kohta

Kui olete eelmisi lõike tähelepanelikult jälginud, siis teate nüüd, et UTXOsid saab luua ainult teisi olemasolevaid UTXOsid tarbides. Sel viisil moodustavad Bitcoini mündid pideva ahela. Siiski võib teid huvitada, kuidas tekkisid selles ahelas esimesed UTXO-d. See tõstatab sarnase probleemi nagu kana ja muna: kust need algsed UTXO-d pärit on?

Vastus on transaktsioonis coinbase.

Coinbase on teatud tüüpi Bitcoini tehing, mis on iga ploki puhul unikaalne ja on alati esimene neist. See võimaldab kaevandajal, kes on leidnud kehtiva töötõendi, saada oma ploki tasu. See tasu koosneb kahest elemendist: blokipreemia ja tehingutasu, mida on käsitletud eelmises punktis.

Coinbase'i tehing on ainulaadne selle poolest, et see on ainus, mis suudab luua bitcoine ex nihilo, ilma et väljundite genereerimiseks oleks vaja tarbida sisendeid. Neid äsja loodud bitcoin'e võiksime nimetada "algseteks UTXO-deks".

BTC204

Blokisubsideeritud bitcoinid on uued BTC-d, mis on loodud nullist, vastavalt konsensuse reeglites eelnevalt kehtestatud emiteerimisskeemile. Plokkide toetus vähendatakse poole võrra iga 210 000 ploki järel, st umbes iga nelja aasta tagant, protsessis, mida nimetatakse "poolitamiseks". Algselt loodi iga toetusega 50 bitcoin'i, kuid see summa on järk-järgult vähenenud; praegu on see 3,125 bitcoin'i ühe ploki kohta.

Mis puutub tehingutasudesse, siis kuigi need esindavad samuti äsja loodud BTC-d, ei tohi need ületada kõigi ploki tehingute sisendite ja väljundite kogusumma erinevust. Nägime varem, et need tasud esindavad sisendite osa, mida ei kasutata tehingu väljundites. See osa on tehniliselt "kadunud" tehingu käigus ja kaevandajal on õigus see väärtus ühe või mitme uue UTXO kujul uuesti luua. See on väärtuse ülekandmine tehingu väljastaja ja kaevandaja vahel, kes lisab selle plokiahelasse.

**> Coinbase'i tehinguga genereeritud bitcoinid kehtivad 100 ploki pikkuse tähtaja jooksul, mille jooksul kaevandaja ei saa neid kulutada. Selle reegli eesmärk on vältida komplikatsioone, mis on seotud äsja loodud bitcoinide kasutamisega ahelas, mis võivad hiljem vananeda.

UTXO mudeli mõju

Esiteks mõjutab UTXO mudel otseselt Bitcoini tehingutasusid. Kuna iga ploki mahutavus on piiratud, eelistavad kaevandajad tehinguid, mis pakuvad parimaid tasusid võrreldes plokis hõivatud ruumiga. Tõepoolest, mida rohkem UTXOsid sisaldab tehing oma sisendites ja väljundites, seda raskem on see ja nõuab seetõttu kõrgemaid tasusid. See on üks põhjustest, miks me sageli püüame vähendada UTXOde arvu oma portfellis, mis võib mõjutada ka konfidentsiaalsust, teemat, mida käsitleme üksikasjalikult selle kursuse kolmandas osas.

Teiseks, nagu eelnevates punktides mainitud, on Bitcoini mündid sisuliselt UTXOde ahel. Seega loob iga tehing seose ühe varasema UTXO ja ühe tulevase UTXO vahel. UTXOd võimaldavad seega selgesõnaliselt jälgida bitcoinide teekonda alates nende loomisest kuni nende praeguste kulutusteni. Sellist läbipaistvust võib pidada positiivseks, sest see võimaldab igal kasutajal veenduda saadud bitcoinide ehtsuses. Kuid just sellel jälgitavuse ja kontrollitavuse põhimõttel põhineb ka plokiahela analüüs, mille eesmärk on ohustada teie konfidentsiaalsust. Seda praktikat käsitleme põhjalikult kursuse teises osas.

Bitcoini privaatsusmudel

Raha: autentsus, ausus ja topeltkulutused

Üks raha funktsioone on lahendada vajaduste kahekordse kokkulangevuse probleem. Vahetuskaubandusel põhinevas süsteemis on vahetuse lõpuleviimiseks vaja mitte ainult leida indiviid, kes loobub minu vajadusele vastavast kaubast, vaid ka pakkuda talle samaväärse väärtusega kaupa, mis rahuldab tema enda vajadust. Selle tasakaalu leidmine on keeruline ülesanne.

BTC204

Seepärast kasutame raha väärtuse liigutamiseks nii ruumis kui ka ajas.

BTC204

Selleks, et rahasüsteem lahendaks selle probleemi, on oluline, et kaupa või teenust pakkuv pool oleks veendunud, et ta suudab selle summa hiljem ära kulutada. Seega tagab iga ratsionaalne inimene, kes soovib võtta vastu münti, olgu see siis digitaalne või füüsiline, et see vastab kahele põhikriteeriumile:

Kui te kasutate füüsilist valuutat, on see esimene omadus, mida on kõige keerulisem kinnitada. Erinevatel ajaloolistel perioodidel on metallmüntide terviklikkust sageli mõjutanud sellised tavad nagu trimmimine või augustamine. Vana-Roomas oli näiteks tavaline tava, et kodanikud kraapisid kuldmüntide servi, et koguda veidi väärismetalli, säilitades neid samal ajal tulevaste tehingute jaoks. Nii vähendati mündi sisemist väärtust, kuid selle nimiväärtus jäi samaks. See on üks põhjustest, miks mündi serva hiljem sooniti.

Autentsust on samuti raske kontrollida füüsilisel rahalisel andmekandjal. Tänapäeval on võltsimise vastu võitlemise meetodid üha keerulisemad, mis sunnib jaemüüjaid investeerima kulukatesse kontrollsüsteemidesse.

Teisest küljest ei ole füüsiliste valuutade puhul nende olemuse tõttu topeltkulutused probleemiks. Kui ma annan teile 10-eurose pangatähe, siis läheb see pöördumatult minu valdusest teie valdusesse, mis loomulikult välistab igasuguse võimaluse selle rahaühiku mitmekordseks kulutamiseks. Lühidalt öeldes ei saa ma seda 10-eurost rahatähte uuesti kulutada.

BTC204

Digitaalse valuuta puhul on raskused teised. Mündi ehtsuse ja terviklikkuse tagamine on sageli lihtsam. Nagu nägime eelmises punktis, võimaldab Bitcoini UTXO-mudel jälgida mündi päritolu ja seega kontrollida, et see on tõepoolest loodud kaevandaja poolt kooskõlas konsensuse reeglitega.

Teisest küljest on topeltkulutuste vältimise tagamine keerulisem, sest kõik digitaalsed kaubad on sisuliselt teave. Erinevalt füüsilistest kaupadest ei jaotata teavet vahetamisel, vaid see levib mitmekordistamise teel. Näiteks kui ma saadan teile e-kirjaga dokumendi, siis see dubleerub. Te ei saa olla kindel, et ma olen originaaldokumendi kustutanud.

BTC204

Bitcoini topeltkulutuste vältimine

Ainus viis vältida seda digitaalse vara dubleerimist on olla teadlik kõigist süsteemis toimuvatest vahetustest. Sel viisil saame teada, kellele mis kuulub, ja ajakohastada iga isiku osalust vastavalt tehtud tehingutele. See on see, mis juhtub näiteks pangasüsteemis oleva käsikirjalise rahaga. Kui te maksate kaupmehele krediitkaardiga 10 eurot, registreerib pank selle vahetuse ja ajakohastab kontoraamatu.

BTC204

Bitcoini puhul on topeltkulutamine samamoodi takistatud. Me püüame kinnitada, et ei ole toimunud tehingut, mille käigus on kõnealused mündid juba kulutatud. Kui münte ei ole kunagi kasutatud, siis võime olla kindlad, et topeltkulutusi ei toimu. Seda põhimõtet kirjeldas Satoshi Nakamoto valges raamatus kuulsa fraasiga:

**Ainsaks viisiks, kuidas kinnitada tehingu puudumist, on olla teadlik kõigist tehingutest

Kuid erinevalt pangandusmudelist ei taha me Bitcoini puhul usaldada keskset üksust. Seega peavad kõik kasutajad olema võimelised seda topeltkulutuste puudumist kinnitama, ilma et nad peaksid toetuma kolmandale osapoolele. Seega peavad kõik olema teadlikud kõigist Bitcoini tehingutest. Seepärast edastatakse Bitcoini tehingud avalikult kõigis võrgusõlmedes ja salvestatakse plokiahelas selge tekstina.

Just selline teabe avalik levitamine muudab Bitcoini privaatsuse kaitse keeruliseks. Traditsioonilises pangandussüsteemis on teostatud tehingutest teoorias teadlik ainult finantsasutus. Bitcoini puhul seevastu on kõik kasutajad oma sõlmede kaudu kõigist tehingutest informeeritud.

Konfidentsiaalsusmudel: pangandussüsteem vs. Bitcoin

Traditsioonilises süsteemis on teie pangakonto seotud teie identiteediga. Pankur saab teada, milline pangakonto millisele kliendile kuulub ja millised tehingud on sellega seotud. See teabevoog on aga panga ja avalikkuse vahel ära lõigatud. Teisisõnu ei ole võimalik teada saada teisele isikule kuuluva pangakonto saldot ja tehinguid. Ainult pangal on juurdepääs sellele teabele.

BTC204

Näiteks teab teie pankur, et te ostate igal hommikul kohalikult pagarilt baguette'i, kuid teie naaber ei tea sellest tehingust midagi. Sel viisil on teabevoog asjaomastele osapooltele, eelkõige pangale, kättesaadav, kuid jääb kõrvalistele isikutele kättesaamatuks.

BTC204

Eelmises punktis kirjeldatud tehingute avaliku levitamise piirangu tõttu ei saa Bitcoini konfidentsiaalsusmudel järgida pangandussüsteemi mudelit. Kuna Bitcoini puhul ei saa teabevoolu katkestada tehingute ja avalikkuse vahel, toetub privaatsusmudel kasutaja identiteedi ja tehingute enda eraldamisele.

BTC204

Näiteks kui te ostate pagarilt baguette'i, makstes BTC-ga, näeb teie naaber, kellel on oma täielik sõlmpunkt, teie tehingu toimumist, nagu ta näeb ka kõiki teisi tehinguid süsteemis. Kui aga järgitakse konfidentsiaalsuse põhimõtteid, ei tohiks ta seda konkreetset tehingut teie identiteediga seostada.

BTC204

Kuid kuna Bitcoini tehingud on avalikustatud, on siiski võimalik luua nende vahel seoseid, et tuletada teavet asjaosaliste kohta. See tegevus moodustab isegi omaette eriala, mida nimetatakse "plokiahela analüüsiks". Kursuse järgmises osas kutsun teid üles uurima plokiahela analüüsi põhialuseid, et saaksite aru, kuidas teie bitcoin'e jälgitakse, ja saaksite end nende eest paremini kaitsta.

Arusaamine ja kaitse ahelanalüüsi vastu

Mis on Bitcoini ahela analüüs?

Määratlus ja toimimine

Plokiahela analüüs on bitcoinide liikumise jälgimine plokiahelas. Üldiselt põhineb ahelaanalüüs varasemate tehingute näidiste omaduste vaatlusel. Seejärel seisneb see samade tunnuste tuvastamises tehingus, mida tahetakse analüüsida, ja nende põhjal usutavate tõlgenduste tuletamises. Seda probleemilahenduse meetodit, mis põhineb praktilisel lähenemisel piisavalt hea lahenduse leidmiseks, nimetatakse "heuristikaks".

Tavainimese keeles on ahelanalüüsil kolm peamist etappi:

  1. Blokiahelat jälgides ;

  2. Tuntud tunnuste tuvastamine ;

  3. **Eelduste mahaarvamine **

BTC204

Blockchaini analüüsi saab teha igaüks. Kõik, mida vajate, on juurdepääs plokiahela avalikule teabele täieliku sõlme kaudu, et jälgida tehingute liikumist ja teha hüpoteese. On olemas ka tasuta tööriistad, mis hõlbustavad seda analüüsi, näiteks OXT.me, mida uurime üksikasjalikult käesoleva osa kahes viimases peatükis. Peamine oht konfidentsiaalsusele tuleneb siiski stringianalüüsile spetsialiseerunud ettevõtetest. Need ettevõtted on viinud plokiahela analüüsi tööstuslikule tasemele ja müüvad oma teenuseid finantsasutustele ja valitsustele. Nendest ettevõtetest on Chainalysis kindlasti kõige tuntum.

Ahelaanalüüsi eesmärgid

Üks plokiahela analüüsi eesmärk on grupeerida erinevaid tegevusi Bitcoinis, et teha kindlaks nende teostanud kasutaja unikaalsus. Seejärel on võimalik püüda siduda see tegevuste kogum tegeliku identiteediga.

BTC204

Mõelge tagasi eelmisele peatükile. Selgitasin, miks Bitcoini privaatsusmudel algselt põhines kasutaja identiteedi ja tehingute eraldamisel. Seetõttu oleks ahvatlev arvata, et plokiahela analüüs on kasutu, sest isegi kui meil õnnestub ahelas toiminguid koondada, ei saa me neid seostada tegeliku identiteediga.

Teoreetiliselt on see väide õige. Selle kursuse esimeses osas nägime, et UTXO tingimuste kehtestamiseks kasutatakse krüptograafilisi võtmepaare. Sisuliselt ei avalda need võtmepaarid mingit teavet nende omanike identiteedi kohta. Seega, isegi kui meil õnnestub rühmitada erinevate võtmepaaridega seotud tegevusi, ei ütle see meile midagi nende tegevuste taga oleva üksuse kohta.

BTC204

Praktiline tegelikkus on aga palju keerulisem. On olemas hulk käitumisviise, mis võivad siduda reaalse identiteedi ja ahelas toimuva tegevuse. Analüüsis nimetatakse seda sisenemispunktiks ja neid on väga palju.

Kõige tavalisem on KYC (Know Your Customer). Kui te võtate oma bitcoinid reguleeritud platvormilt välja ühele oma isiklikule vastuvõtuaadressile, siis on mõned inimesed võimelised teie identiteeti selle aadressiga seostama. Laiemalt võib sisenemiskohaks olla igasugune suhtlus teie tegeliku elu ja Bitcoini tehingu vahel. Näiteks kui te avaldate vastuvõtuaadressi oma suhtlusvõrgustikes, võib see olla sisenemispunktiks analüüsiks. Kui te maksate oma pagarile bitcoinidega, saab ta seostada teie nägu (osa teie identiteedist) Bitcoini aadressiga.

Need sisenemiskohad on Bitcoini kasutamisel praktiliselt vältimatud. Kuigi me võime püüda nende ulatust piirata, on need alati olemas. Seetõttu on väga oluline kombineerida meetodeid, mille eesmärk on teie privaatsuse säilitamine. Kuigi teie tegeliku identiteedi ja tehingute vahelise eraldatuse säilitamine on huvitav lähenemine, jääb see täna ebapiisavaks. Tõepoolest, kui kõik teie ahelasisesed tegevused saab rühmitada, siis võib isegi kõige väiksem sisenemiskoht ohustada teie kehtestatud ühtset konfidentsiaalsuskihti.

BTC204

Kaitsmine ahelanalüüsi vastu

Seega peame Bitcoini kasutamisel hakkama saama ka plokiahela analüüsiga. Seda tehes saame minimeerida meie tegevuse koondamist ja piirata sisenemispunkti mõju meie privaatsusele.

BTC204

Mis oleks parem viis plokiahela analüüsile vastu astuda, kui õppida tundma selles kasutatavaid meetodeid? Kui soovite teada, kuidas parandada oma privaatsust Bitcoinis, peate neid meetodeid mõistma. See annab teile parema arusaamise sellistest tehnikatest nagu coinjoin või payjoin (tehnikaid vaatame kursuse lõpuosades) ja vähendab vigu, mida võite teha.

https://planb.network/tutorials/privacy/on-chain/coinjoin-samourai-wallet-e566803d-ab3f-4d98-9136-5462009262ef

https://planb.network/tutorials/privacy/on-chain/payjoin-848b6a23-deb2-4c5f-a27e-93e2f842140f

Siinkohal võib tuua analoogia krüptograafia ja krüptoanalüüsiga. Hea krüptograaf on eelkõige hea krüptoanalüütik. Uue krüpteerimisalgoritmi väljatöötamiseks on vaja teada, milliste rünnakutega see silmitsi seisab, ja uurida ka seda, miks eelmised algoritmid on murdunud. Sama põhimõte kehtib ka Bitcoini privaatsuse kohta. Plokiahela analüüsimeetodite mõistmine on nende eest kaitsmise võti. Seepärast olen sellesse koolituskursusesse lisanud terve peatüki ahelate analüüsi kohta.

Ahelate analüüsi meetodid

Oluline on mõista, et stringianalüüs ei ole täpne teadus. See tugineb varasematest vaatlustest või loogilistest tõlgendustest tuletatud heuristikale. Need reeglid võimaldavad meil saada üsna usaldusväärseid tulemusi, kuid mitte kunagi absoluutse täpsusega. Teisisõnu, ahelaanalüüs sisaldab alati mingi tõenäosuse mõõdet tehtud järeldustes. Näiteks võib olla võimalik erineva kindlusega hinnata, et kaks aadressi kuuluvad samale üksusele, kuid täielik kindlus on alati kättesaamatu.

Kogu ahelanalüüsi mõte seisneb just erinevate heuristikate koondamises, et minimeerida veaohtu. Teatud mõttes on see tõendite kogumine, mis toob meid tegelikkusele lähemale.

Need kuulsad heuristikud võib rühmitada erinevatesse kategooriatesse, mida kirjeldame üksikasjalikult allpool:

Satoshi Nakamoto ja ahela analüüs

Kaks esimest ahelaanalüüsi heuristikat avastas Satoshi Nakamoto ise. Ta räägib neist Bitcoini valge raamatu 10. osas. Need on :

BTC204

Allikas: S. Nakamoto, "Bitcoin: Peer-to-Peer Electronic Cash System", https://bitcoin.org/bitcoin.pdf, 2009.

Millised need on, näeme järgmistes peatükkides, kuid juba praegu on huvitav märkida, et need kaks heuristikat säilitavad ahelate analüüsis tänaseni esikoha.

Tehingumustrid

Tehingumuster on lihtsalt tüüpilise tehingu üldine mudel või struktuur, mida võib leida plokiahelas ja mille tõenäoline tõlgendus on teada. Mustrite uurimisel keskendume ühele tehingule ja analüüsime seda kõrgel tasemel.

Teisisõnu, me vaatame ainult UTXOde arvu sisendites ja UTXOde arvu väljundites, ilma et me peatuksime tehingu täpsemate üksikasjade või keskkonna juures. Täheldatud mustri põhjal saame tõlgendada tehingu olemust. Seejärel otsime selle struktuuri omadusi ja tuletame tõlgenduse.

BTC204

Selles jaotises vaatleme koos peamisi tehingumudeleid, millega ahelanalüüsis kokku puututakse, ja iga mudeli puhul annan teile selle struktuuri tõenäolise tõlgenduse ning konkreetse näite.

Ühekordne saadetis (või ühekordne makse)

Alustame väga levinud mustriga, sest see on see, mis ilmneb enamiku bitcoin-maksete puhul. Lihtsat maksemudelit iseloomustab ühe või mitme UTXO tarbimine sisendina ja 2 UTXO tootmine väljundina. See mudel näeb seega välja selline:

BTC204

Kui me märkame seda tehingustruktuuri plokiahelas, saame juba teha tõlgenduse. Nagu nimigi ütleb, näitab see mudel, et tegemist on saatmis- või maksetehinguga. Kasutaja on tarbinud oma UTXO sisendina, et rahuldada väljundina makse UTXO ja vahetus UTXO (samale kasutajale tagastatud raha).

Seega teame, et vaadeldav kasutaja ei oma tõenäoliselt enam ühte kahest väljundi UTXOst (makse UTXO), kuid teine UTXO (vahetus UTXO) on endiselt tema valduses.

Hetkel ei saa me täpsustada, milline väljund esindab millist UTXO-d, sest see ei ole musteruuringu eesmärk. Me jõuame selleni, tuginedes heuristikale, mida uurime järgmistes lõikudes. Praeguses etapis piirdub meie eesmärk kõnealuse tehingu olemuse tuvastamisega, mis antud juhul on lihtne saatmine.

Näiteks siin on Bitcoini tehing, mis võtab vastu lihtsa saatmise mustri:

b6cc79f45fd2d7669ff94db5cb14c45f1f879ea0ba4c6e3d16ad53a18c34b769
BTC204

Source : Mempool.space

Pärast seda esimest näidet peaks teil olema parem arusaam sellest, mida tähendab "tehingumudeli" uurimine. Me uurime tehingut, keskendudes ainult selle struktuurile, võtmata arvesse selle keskkonda või tehingu konkreetseid üksikasju. Selles esimeses etapis vaatleme ainult suurt pilti.

Nüüd, kui te mõistate, mis on muster, liigume edasi teiste olemasolevate mudelite juurde.

Pühkimine

Seda teist mudelit iseloomustab ühe UTXO tarbimine sisendina ja ühe UTXO tootmine väljundina.

BTC204

Selle mudeli tõlgendus on see, et me oleme eneseväljenduses. Kasutaja on oma bitcoinid üle kandnud iseendale, teisele talle kuuluvale aadressile. Kuna tehingul puudub vahetus, on väga ebatõenäoline, et me oleme makse juures. Tõepoolest, kui makse tehakse, on peaaegu võimatu, et maksjal oleks UTXO, mis vastab täpselt müüja poolt nõutavale summale, millele lisandub tehingutasu. Üldiselt on maksja seega kohustatud tootma vahetustulemust.

Siis teame, et see UTXO on tõenäoliselt ikka veel vaatluse all oleva kasutaja valduses. Kui me teame ahelanalüüsi kontekstis, et tehingu sisendina kasutatud UTXO kuulub Alice'ile, võime eeldada, et ka väljundina kasutatud UTXO kuulub talle. Hiljem muutub huvitavaks leida tehingusiseseid heuristikuid, mis võiksid seda eeldust kinnitada (neid heuristikuid vaatleme peatükis 3.3).

Siin on näiteks Bitcoini tehing, mis võtab kasutusele pühkimismustri:

35f1072a0fda5ae106efb4fda871ab40e1f8023c6c47f396441ad4b995ea693d
BTC204

Source : Mempool.space

Kuid olge ettevaatlik, et sedalaadi muster võib paljastada ka enda ülekande krüptoraha vahetusplatvormi kontole. Just teadaolevate aadresside uurimine ja tehingu kontekst ütlevad meile, kas tegemist on tõmbega isevarustavasse rahakotti või väljamaksega platvormile. Vahetusplatvormide aadressid on tõepoolest sageli kergesti tuvastatavad.

Võtame uuesti Alice'i näite: kui skaneerimine viib aadressile, mis on tuntud platvormile (näiteks Binance'ile), võib see tähendada, et bitcoinid on Alice'i otsesest valdusest välja viidud, tõenäoliselt kavatsusega neid müüa või hoiustada sellel platvormil. Teisalt, kui sihtaadress on tundmatu, on mõistlik eeldada, et tegemist on lihtsalt teise rahakotiga, mis kuulub endiselt Alice'ile. Kuid seda tüüpi uuring kuulub pigem heuristika kui mustrite kategooriasse.

Konsolideerimine

Seda mudelit iseloomustab mitme UTXO tarbimine sisendil ja ühe UTXO tootmine väljundil.

BTC204

Selle mustri tõlgendus on see, et me oleme konsolideerumise ees. See on Bitcoini kasutajate seas levinud tava, mille eesmärk on mitme UTXO ühendamine, et oodata võimalikku tehingutasude tõusu. Tehes selle operatsiooni ajal, mil tasud on madalad, on võimalik säästa tulevaste tasude pealt. Sellest praktikast räägime lähemalt peatükis 4.3.

Me võime järeldada, et selle tehingumudeli taga olev kasutaja valdas tõenäoliselt kõiki UTXOsid sisendis ja valdab endiselt UTXOd väljundis. Seega on tegemist tõenäoliselt automaatse ülekandega.

Sarnaselt pühkimisele võib ka seda tüüpi muster paljastada enda ülekandmist vahetusplatvormi kontole. See on teadaolevate aadresside uurimine ja tehingu kontekst, mis ütleb meile, kas tegemist on konsolideerimisega eneseportfellile või väljavõtmisega platvormile.

Näiteks siin on Bitcoini tehing, mis võtab vastu konsolideerimismustri:

77c16914211e237a9bd51a7ce0b1a7368631caed515fe51b081d220590589e94
BTC204

Source : Mempool.space

Ahelanalüüsis võib see mudel paljastada palju teavet. Näiteks kui me teame, et üks sisenditest kuulub Alice'ile, võime eeldada, et ka kõik teised sisendid ja selle tehingu väljund kuuluvad talle. See eeldus võimaldab seejärel minna tagasi eelmiste tehingute ahelas, et leida ja analüüsida teisi tehinguid, mis tõenäoliselt on seotud Alice'iga.

BTC204

Grupeeritud kulud

Seda mudelit iseloomustab mõne UTXO tarbimine sisendina (sageli ainult üks) ja paljude UTXOde tootmine väljundina.

BTC204

Selle mudeli tõlgendus on, et me oleme rühmitatud kulutuste olemasolul. See on tava, mis tõenäoliselt näitab väga suurt majandustegevust, näiteks vahetusplatvormi. Grupeeritud kulutused võimaldavad neil üksustel kulusid kokku hoida, ühendades oma kulutused ühte tehingusse.

Sellest mudelist võime järeldada, et UTXO sisendis pärineb suure majandustegevusega ettevõttest ja et UTXO toodangus hajub. Paljud neist kuuluvad ettevõtte klientidele, kes on platvormilt bitcoine välja võtnud. Teised võivad minna partnerettevõtetele. Lõpuks on kindlasti üks või mitu vahetust, mis lähevad tagasi emiteerivale ettevõttele.

Siin on näiteks Bitcoini tehing, mis võtab vastu komplekteeritud kulutuste mustri (eeldatavasti on tegemist Bybit platvormi poolt väljastatud tehinguga):

8a7288758b6e5d550897beedd13c70bcbaba8709af01a7dbcc1f574b89176b43
BTC204

Source : Mempool.space

Protokolliga seotud tehingud

Tehingumustrite hulgast saame tuvastada ka need, mis näitavad konkreetse protokolli kasutamist. Näiteks Whirlpool coinjoins (mida käsitletakse 5. osas) on kergesti tuvastatav struktuur, mis eristab neid teistest tavalisematest tehingutest.

BTC204

Selle mustri analüüs viitab sellele, et tõenäoliselt on tegemist koostööga. Samuti on võimalik täheldada koosliitumist. Kui see viimane hüpotees osutub õigeks, siis võib väljumiste arv anda meile ligikaudse hinnangu ühisettevõtmises osalejate arvu kohta.

Siin on näiteks Bitcoini tehing, mis võtab kasutusele coinjoin'i ühistehingu mustri:

00601af905bede31086d9b1b79ee8399bd60c97e9c5bba197bdebeee028b9bea
BTC204

Source : Mempool.space

On palju teisi protokolle, millel on oma spetsiifilised struktuurid. Näiteks on olemas Wabisabi tehingud, Stamps tehingud ja Runes tehingud.

Tänu nendele tehingumustritele saame me juba tõlgendada teatavat teavet konkreetse tehingu kohta. Kuid tehingu struktuur ei ole ainus teabeallikas, mida saab analüüsida. Me võime uurida ka selle üksikasju. Neid sisemisi detaile nimetan ma hea meelega "sisemisteks heuristikateks" ja me vaatleme neid järgmises peatükis.

Sisemine heuristika

Sisemine heuristika on konkreetne omadus, mille me tuvastame tehingus endas, ilma et peaksime uurima selle keskkonda, ja mis võimaldab meil teha järeldusi. Erinevalt mustritest, mis keskenduvad tehingu üldisele struktuurile kõrgel tasemel, põhineb sisemine heuristika ekstraheeritavate andmete kogumil. See hõlmab järgmist:

Üldiselt võimaldab selline heuristika tuvastada konkreetse tehingu vahetust. Seda tehes saame seejärel jätkata üksuse jälgimist mitme erineva tehingu jooksul. Tõepoolest, kui me tuvastame UTXO, mis kuulub kasutajale, keda me tahame jälgida, on väga oluline kindlaks teha, kui ta teeb tehingu, milline väljund on üle antud teisele kasutajale ja milline väljund kujutab endast vahetust, mis seega jääb tema valdusse.

BTC204

Lubage mul veel kord meelde tuletada, et need heuristikud ei ole absoluutselt täpsed. Üksikult võttes võimaldavad nad meil ainult tuvastada tõenäolisi stsenaariume. Just mitme heuristiku kogunemine aitab vähendada ebakindlust, ilma et seda kunagi täielikult kõrvaldada.

Sisemine sarnasus

See heuristika hõlmab sama tehingu sisendite ja väljundite sarnasuste uurimist. Kui sisendite ja ainult ühe tehingu väljundite puhul on täheldatud sama tunnus, siis on tõenäoline, et see väljund moodustab vahetuse.

Kõige ilmsem omadus on vastuvõtva aadressi korduvkasutamine samas tehingus.

BTC204

See heuristika jätab vähe ruumi kahtlustele. Kui tema isiklikku võtit ei ole häkitud, näitab sama vastuvõtuaadress tingimata ühe kasutaja tegevust. Sellest tulenev tõlgendus on, et tehinguvahetus on väljund sama aadressiga kui sisend. Seejärel saame jätkata üksikisiku jälgimist sellest vahetusest.

Siin on näiteks üks tehing, mille puhul seda heuristikat võib tõenäoliselt rakendada:

54364146665bfc453a55eae4bfb8fdf7c721d02cb96aadc480c8b16bdeb8d6d0
BTC204

Source : Mempool.space

Need sisendite ja väljundite sarnasused ei piirdu aadressi taaskasutamisega. Igasugust sarnasust skriptide kasutamisel saab kasutada heuristikat. Näiteks võime mõnikord täheldada sama versioonimist sisendi ja ühe tehingu väljundi vahel.

BTC204

Sellel diagrammil näeme, et sisend nr 0 avab P2WPKH skripti (SegWit V0 alates bc1q). Väljund nr 0 kasutab sama tüüpi skripti. Väljund nr 1 seevastu kasutab P2TR-skripti (SegWit V1, mis algab numbriga bc1p). Selle tunnuse tõlgendus seisneb selles, et tõenäoliselt on vahetusaadressiks aadress, millel on sama versiooning kui sisendil. Seega kuuluks see alati samale kasutajale.

Siin on üks tehing, mille puhul seda heuristikat võib tõenäoliselt rakendada:

db07516288771ce5d0a06b275962ec4af1b74500739f168e5800cbcb0e9dd578
BTC204

Source : Mempool.space

Viimase puhul näeme, et sisend nr 0 ja väljund nr 1 kasutavad P2WPKH skripte (SegWit V0), samas kui väljund nr 0 kasutab teistsugust P2PKH skripti (Legacy).

  1. aastate alguses oli see skriptide versioonil põhinev heuristika suhteliselt vähekasulik, kuna skriptide tüübid olid piiratud. Aja jooksul ja järjestikuste Bitcoini uuendustega on siiski kasutusele võetud üha rohkem erinevaid skripttüüpe. Seetõttu muutub see heuristika üha asjakohasemaks, kuna skripti tüüpide laiema valiku korral jagunevad kasutajad väiksemateks gruppideks, mis suurendab selle sisemise versioonide taaskasutamise heuristika rakendamise võimalusi. Sel põhjusel on üksnes konfidentsiaalsuse seisukohalt soovitatav valida kõige levinum skriptitüüp. Näiteks, kui ma neid ridu kirjutan, kasutatakse Taproot-skripte (bc1p) harvemini kui SegWit V0-skripte (bc1q). Kuigi esimesed pakuvad teatud spetsiifilistes kontekstides majanduslikke ja konfidentsiaalsuse eeliseid, võib traditsioonilisemate ühe allkirja kasutusalade puhul olla mõistlik jääda konfidentsiaalsuse huvides vanema standardi juurde, kuni uus standard on laiemalt kasutusele võetud.

Ümmargused maksed

Teine sisemine heuristika, mis aitab meil vahetust tuvastada, on ümmarguse numbri heuristika. Üldiselt võib öelda, et kui lihtsa maksemustri (1 sisend ja 2 väljundit) puhul kulutab üks väljunditest ümmarguse summa, siis on tegemist maksega.

BTC204

Kui üks väljund kujutab endast makset, siis teine väljund kujutab endast vahetust. Seega võib tõlgendada, et tõenäoliselt on sisendkasutajal alati käes väljund, mis on identifitseeritud vahetuseks.

Tuleb rõhutada, et see heuristika ei ole alati kohaldatav, sest enamik makseid tehakse ikka veel usaldusühikutes. Tõepoolest, kui jaemüüja Prantsusmaal aktsepteerib bitcoin'e, ei näita ta tavaliselt stabiilset hinda satsides. Selle asemel valib ta eurodes väljendatud hinna ja bitcoinides makstava summa ümberarvestuse. Seega ei tohiks tehingu lõpus olla ümardatud numbreid.

Analüütik võib siiski proovida seda ümberarvestust teha, võttes arvesse tehingu võrgus edastamise ajal kehtinud vahetuskurssi. Võtame näiteks tehingu, mille sisendiks on "97,552 sats" ja kaks väljundit, millest üks on "31,085 sats" ja teine "64,152 sats". Esmapilgul ei tundu, et see tehing oleks seotud ümmarguste summadega. Kui aga kohaldada 64,339 euro suurust vahetuskurssi tehingu toimumise ajal, saame eurodeks ümberarvestuse järgmiselt:

Kui see tehing on konverteeritud fiat-valuutaks, saab seda kasutada ümmarguse summa maksmise heuristikat. Tõenäoliselt läks 20 euro suurune väljund kaupmehele või vähemalt vahetas omanikku. Järelduse kohaselt on 41,27 euro suurune väljund tõenäoliselt jäänud algse kasutaja valdusesse.

BTC204

Kui ühel päeval muutub bitcoin meie börsidel eelistatud arvestusühikuks, võib see heuristika muutuda analüüsiks veelgi kasulikumaks.

Siin on näiteks üks tehing, mille puhul seda heuristikat võib tõenäoliselt rakendada:

2bcb42fab7fba17ac1b176060e7d7d7730a7b807d470815f5034d52e96d2828a
BTC204

Source : Mempool.space

Suurim toodang

Kui me tuvastame piisavalt suure vahe 2 tehingu väljundi vahel lihtsa maksemudeli puhul, saame hinnata, et suurim väljund on tõenäoliselt välisvaluuta.

BTC204

See suurim väljundheuristik on kindlasti kõige ebatäpsem kõigist. Iseenesest on see üsna nõrk. Siiski saab seda omadust kombineerida teiste heuristikatega, et vähendada meie tõlgenduse ebakindlust.

Näiteks kui me vaatleme tehingut, mille puhul on tegemist ümmarguse ja suurema maksega, vähendab ümmarguse makse heuristika ja suurema makse heuristika koos rakendamine meie ebakindlust.

Siin on näiteks üks tehing, mille puhul seda heuristikat võib tõenäoliselt rakendada:

b79d8f8e4756d34bbb26c659ab88314c220834c7a8b781c047a3916b56d14dcf
BTC204

Source : Mempool.space

Väline heuristika

Välise heuristika uurimine tähendab teatud elementide sarnasuste, mustrite ja omaduste analüüsimist, mis ei ole tehingu enda jaoks spetsiifilised. Teisisõnu, kui varem piirdusime sisemise heuristikaga tehingule omaste elementide ärakasutamisega, siis nüüd laiendame oma analüüsivälja tänu välisele heuristikale ka tehingukeskkonnale.

Aadressi korduvkasutamine

See on üks bitcoin'ide tuntumaid heuristikuid. Aadressi korduvkasutamine võimaldab luua seose erinevate tehingute ja erinevate UTXOde vahel. See toimub siis, kui Bitcoini vastuvõtuaadressi kasutatakse mitu korda.

Seega on võimalik kasutada aadressi korduvkasutamist sama tehingu sees sisemise heuristikana, et tuvastada vahetust (nagu nägime eelmises peatükis). Kuid aadressi korduvkasutust saab kasutada ka välise heuristikana, et tuvastada üksuse unikaalsus mitme tehingu taga.

Aadressi korduvkasutust tõlgendatakse nii, et kõik sellel aadressil blokeeritud UTXOd kuuluvad (või on kuulunud) samale üksusele. See heuristika jätab vähe ruumi ebakindlusele. Kui see on tuvastatud, vastab saadud tõlgendus tõenäoliselt tegelikkusele. Seetõttu võimaldab see rühmitada erinevaid ahelas toimuvaid tegevusi.

BTC204

Nagu 3. osa sissejuhatuses selgitatud, avastas selle heuristika Satoshi Nakamoto ise. Valges raamatus mainib ta lahendust, mis aitab kasutajatel vältida selle genereerimist, milleks on lihtsalt tühja aadressi kasutamine iga uue tehingu puhul:

"_Täiendava tulemüürina võiks iga tehingu jaoks kasutada uut võtmepaari, et need ei oleks seotud ühise omanikuga."

BTC204

Allikas: S. Nakamoto, "Bitcoin: Peer-to-Peer Electronic Cash System", https://bitcoin.org/bitcoin.pdf, 2009.

Siin on näiteks aadress, mida kasutatakse korduvalt mitmes tehingus:

bc1qqtmeu0eyvem9a85l3sghuhral8tk0ar7m4a0a0
BTC204

Allikas : Mempool.space

Skripti sarnasus ja rahakoti jäljendid

Lisaks aadresside korduvkasutamisele on palju muid heuristilisi võimalusi, mis võimaldavad siduda tegevusi sama portfelli või aadressiklastriga.

Esiteks võib analüütik otsida sarnasusi skriptide kasutamises. Näiteks võib teatud vähemuste skripte, nagu multisig, olla lihtsam märgata kui SegWit V0 skripte. Mida suurem on grupp, milles me peidus oleme, seda raskem on meid märgata. See on üks põhjus, miks heade Coinjoin-protokollide puhul kasutavad kõik osalejad täpselt sama tüüpi skripte.

Üldisemalt võib analüütik keskenduda ka portfelli iseloomulikele sõrmejälgedele. Need on kasutusspetsiifilised protsessid, mida saab tuvastada, et kasutada neid jälgimisheuristikana. Teisisõnu, kui me täheldame jälgitavale üksusele omistatud tehingute puhul samade sisemiste tunnuste kuhjumist, võime püüda tuvastada neid samu tunnuseid ka teiste tehingute puhul.

Näiteks suudame tuvastada, et jälgitav kasutaja saadab süstemaatiliselt oma muutusi P2TR-aadressidele (bc1p...). Kui see protsess kordub, saame seda kasutada heuristikana ülejäänud analüüsis. Me võime kasutada ka muid sõrmejälgi, näiteks UTXOde järjekorda, muudatuse kohta väljundites, RBF (Replace-by-Fee) signalisatsiooni või versiooni numbrit, nSequence välja ja nLockTime välja.

BTC204

Nagu @LaurentMT märgib Space Kek #19 (prantsuskeelne podcast), on portfelli sõrmejälgede kasulikkus ahelaanalüüsis aja jooksul oluliselt suurenenud. Tõepoolest, skriptitüüpide kasvav arv ja nende uute funktsioonide üha progressiivsem kasutuselevõtt portfooliotarkvara poolt rõhutavad erinevusi. Mõnel juhul on isegi võimalik tuvastada täpselt tarkvara, mida jälgitav üksus kasutab. Seetõttu on oluline mõista, et portfellijälgede uurimine on eriti oluline hiljutiste tehingute puhul, mitte aga 2010. aastate alguses algatatud tehingute puhul.

Kokkuvõttes võib jalajälg olla mis tahes konkreetne tegevus, mida rahakott automaatselt või kasutaja käsitsi teeb, mida me saame leida teistest tehingutest, et aidata meid analüüsis.

Ühise sisendi omandiõiguse heuristika (Common Input Ownership Heuristic, CIOH)

Common Input Ownership Heuristic (CIOH) on heuristika, mis väidab, et kui tehingul on mitu sisendit, pärinevad need tõenäoliselt kõik ühelt üksuselt. Järelikult on nende omandiõigus ühine.

BTC204

CIOH-i kohaldamiseks jälgime kõigepealt mitme sisendiga tehingut. See võib olla 2 sisendit või 30 sisendit. Kui see tunnus on tuvastatud, kontrollime, kas tehing sobib teadaolevasse tehingumudelisse. Näiteks kui on 5 sisendit, millel on ligikaudu sama summa, ja 5 väljundit, millel on täpselt sama summa, siis teame, et tegemist on mündiühenduse struktuuriga. Me ei saa rakendada CIOHi.

BTC204

Teisest küljest, kui tehing ei sobi ühtegi teadaolevasse ühistehingu mudelisse, siis võime tõlgendada, et kõik sisendid pärinevad tõenäoliselt samalt üksuselt. See võib olla väga kasulik juba teadaoleva klastri laiendamiseks või jälgede jätkamiseks.

BTC204

CIOH avastas Satoshi Nakamoto. Ta räägib sellest valge raamatu 10. osas:

"[...] seostamine on vältimatu mitme kirjega tehingute puhul, mis ilmselgelt näitavad, et nende kirjed olid ühe ja sama omaniku käes. Oht on see, et kui võtme omanik paljastub, võivad lingid paljastada teised tehingud, mis kuulusid samale omanikule."

BTC204

Eriti põnev on märkida, et Satoshi Nakamoto oli juba enne Bitcoini ametlikku käivitamist tuvastanud kasutajate jaoks kaks peamist privaatsuse haavatavust, nimelt CIOH ja aadressi taaskasutamine. Selline ettenägelikkus on üsna tähelepanuväärne, sest need kaks heuristikat on ka praegu plokiahela analüüsis kõige kasulikumad.

Näitena on siin üks tehing, mille puhul me saame tõenäoliselt kohaldada CIOHi:

20618e63b6eed056263fa52a2282c8897ab2ee71604c7faccfe748e1a202d712
BTC204

Source : Mempool.space

Ahelavälised andmed

Loomulikult ei piirdu ahelate analüüs ainult ahelate andmetega. Analüüsi täpsustamiseks võib kasutada ka mis tahes andmeid, mis pärinevad varasemast analüüsist või on kättesaadavad Internetis.

Näiteks kui me täheldame, et jälgitavad tehingud edastatakse süstemaatiliselt samast Bitcoini sõlme ja meil õnnestub tuvastada selle IP-aadress, siis võime tuvastada teisi sama üksuse tehinguid ning määrata kindlaks osa emitendi identiteedist. Kuigi see praktika ei ole kergesti saavutatav, kuna see nõuab paljude sõlmede toimimist, võivad seda kasutada mõned plokiahela analüüsile spetsialiseerunud ettevõtted.

Analüütikul on ka võimalus tugineda varem avaldatud analüüsidele või oma varasematele analüüsidele. Võib-olla leiame tulemuse, mis viitab juba tuvastatud aadresside klastrile. Mõnikord on võimalik tugineda ka väljunditele, mis osutavad vahetusplatvormile, sest nende ettevõtete aadressid on üldiselt teada.

Samamoodi saab teha analüüsi kõrvaldamise teel. Näiteks kui kahe väljundiga tehingu analüüsimisel on üks neist seotud juba teadaoleva, kuid meie poolt jälgitavast üksusest erineva aadressiklastriga, siis võime tõlgendada, et teine väljund esindab tõenäoliselt vahetust.

Kanalite analüüs hõlmab ka veidi üldisemat OSINT (Open Source Intelligence) komponenti, mis hõlmab internetiotsinguid. Seetõttu soovitame mitte avaldada otse sotsiaalvõrgustikes või veebisaidil pseudonüümseid või mitte pseudonüümseid aadresse.

BTC204

Ajalised mudelid

Me mõtleme sellele vähem, kuid teatud inimkäitumised on äratuntavad onchain. Võib-olla kõige kasulikum analüüsis on teie unemustrid! Jah, kui sa magad, siis sa ei edasta Bitcoini tehinguid. Kuid üldiselt magate te enam-vähem samal ajal. Seepärast ongi plokiahela analüüsis levinud praktika kasutada ajalist analüüsi. Lihtsalt öeldes on see loendus, millal konkreetse üksuse tehinguid Bitcoini võrku edastatakse. Neid ajalisi mustreid analüüsides saame tuletada hulgaliselt teavet.

Kõigepealt võib ajaline analüüs mõnikord tuvastada jälgitava üksuse olemuse olemuse. Kui me täheldame, et tehinguid edastatakse järjepidevalt 24 tunni jooksul, siis reedab see suurt majandustegevust. Nende tehingute taga olev üksus on tõenäoliselt ettevõte, mis võib olla rahvusvaheline ja millel on võib-olla automatiseeritud sisemised menetlused.

Näiteks ma tundsin selle mustri ära paar kuud tagasi, kui analüüsisin tehingut, mille puhul oli ekslikult eraldatud 19 bitcoin'i tasu. Lihtne ajaline analüüs võimaldas mul oletada, et tegemist on automatiseeritud teenusega ja seega tõenäoliselt suure üksusega, näiteks vahetusplatvormiga.

Mõni päev hiljem selgus, et raha kuulus Paxose vahetusplatvormi kaudu PayPalile.

Vastupidi, kui me näeme, et ajaline muster on pigem jaotunud 16 konkreetse tunni peale, siis võime hinnata, et tegemist on üksiku kasutajaga või ehk kohaliku ettevõttega, sõltuvalt vahetatud mahtudest.

Lisaks vaadeldava üksuse olemusele võib ajaline muster tänu ajavöönditele öelda meile ka kasutaja ligikaudse asukoha. Sel viisil saame sobitada teisi tehinguid ja kasutada nende ajatemplina täiendavat heuristikat, mida saab meie analüüsi lisada.

Näiteks eespool mainitud mitmekordselt kasutataval aadressil näeme, et nii sissetulevad kui ka väljaminevad tehingud on koondunud 13-tunnisele ajavahemikule.

bc1qqtmeu0eyvem9a85l3sghuhral8tk0ar7m4a0a0
BTC204

Allikas : OXT.me

See vahemik vastab tõenäoliselt Euroopale, Aafrikale või Lähis-Idale. Seega võime eeldada, et nende tehingute taga olev kasutaja elab nendes piirkondades.

Erinevalt sellest viis selline ajaanalüüs ka hüpoteesini, et Satoshi Nakamoto ei tegutsenud Jaapanist, vaid USA-st: The Time Zones of Satoshi Nakamoto

Selle rakendamine praktikas koos plokkide uurijaga

Selles viimases peatükis rakendame seni õpitud mõisteid praktikas. Näitan teile näiteid reaalsetest Bitcoini tehingutest ja teil tuleb minu poolt küsitud teave välja võtta.

Ideaaljuhul oleks nende ülesannete täitmiseks soovitav kasutada professionaalset ahelaanalüüsi vahendit. Kuid pärast Samourai rahakoti loojate arreteerimist ei ole ainus tasuta analüüsivahend OXT.me enam kättesaadav. Seetõttu valime nende harjutuste jaoks klassikalise plokkide uurimise tööriista. Soovitan kasutada Mempool.space selle paljude funktsioonide ja ahelate analüüsitööriistade valiku tõttu, kuid võite valida ka mõne teise exploreri, näiteks Bitcoin Explorer.

Alustuseks tutvustan teile harjutusi. Kasutage nende täitmiseks oma plokkide uurijat ja kirjutage oma vastused paberilehele. Seejärel annan teile selle peatüki lõpus vastused, et saaksite oma tulemusi kontrollida ja parandada.

Nendeks tehinguteks valitud tehingud on valitud puhtalt nende omaduste alusel mõnevõrra juhuslikult. Käesolev peatükk on mõeldud üksnes õppe- ja informatiivsetel eesmärkidel. Soovin selgeks teha, et ma ei toeta ega julgusta nende vahendite kasutamist pahatahtlikel eesmärkidel. Eesmärgiks on õpetada teid, kuidas kaitsta end stringianalüüsi eest, mitte teostada analüüsi teiste inimeste privaatse teabe paljastamiseks.

Harjutus 1

Analüüsitava tehingu identifikaator :

3769d3b124e47ef4ffb5b52d11df64b0a3f0b82bb10fd6b98c0fd5111789bef7

Kuidas nimetatakse selle tehingu mudelit ja milliseid usutavaid tõlgendusi saab teha, kui uurida ainult selle mudelit, st tehingu struktuuri?

Harjutus 2

Analüüsitava tehingu identifikaator :

baa228f6859ca63e6b8eea24ffad7e871713749d693ebd85343859173b8d5c20

Kuidas nimetatakse selle tehingu mudelit ja milliseid usutavaid tõlgendusi saab teha, kui uurida ainult selle mudelit, st tehingu struktuuri?

Harjutus 3

Analüüsitava tehingu identifikaator :

3a9eb9ccc3517cc25d1860924c66109262a4b68f4ed2d847f079b084da0cd32b

Milline on selle tehingu mudel?

Pärast selle mudeli tuvastamist, kasutades tehingu sisemist heuristikat, millist väljundit see vahetus tõenäoliselt esindab?

Harjutus 4

Analüüsitava tehingu identifikaator :

35f0b31c05503ebfdf7311df47f68a048e992e5cf4c97ec34aa2833cc0122a12

Milline on selle tehingu mudel?

Pärast selle mudeli tuvastamist, kasutades tehingu sisemist heuristikat, millist väljundit see vahetus tõenäoliselt esindab?

Harjutus 5

Kujutame ette, et Loïc on postitanud ühe oma Bitcoini vastuvõtu aadressi sotsiaalvõrgustikus Twitter :

BTC204
bc1qja0hycrv7g9ww00jcqanhfpqmzx7luqalum3vu

Milliseid Bitcoini tehinguid saab selle teabe põhjal ja kasutades ainult aadressi taaskasutamise heuristikat seostada Loïci identiteediga?

Ilmselt ei ole ma selle vastuvõtu aadressi tegelik omanik ja ma ei postitanud seda sotsiaalvõrgustikesse. See on aadress, mille võtsin juhuslikult blockchainist

Harjutus 6

Pärast 5. harjutust suutsite tänu aadressi taaskasutamise heuristikale tuvastada mitu Bitcoini tehingut, milles Loïc näib olevat seotud. Tavaliselt oleksite tuvastatud tehingute hulgas pidanud märkama selle tehingu:

2d9575553c99578268ffba49a1b2adc3b85a29926728bd0280703a04d051eace

See tehing on esimene, millega saadetakse raha Loïci aadressile. Mis te arvate, kust Loïci poolt selle tehingu kaudu saadud bitcoinid pärinevad?

Harjutus 7

Pärast 5. harjutust olete tänu aadressi taaskasutamise heuristikale suutnud tuvastada mitu Bitcoini tehingut, milles Loïc näib olevat seotud. Nüüd soovite teada saada, kust Loïc pärit on. Tehke leitud tehingute põhjal ajaanalüüs, et leida ajavöönd, mida Loïc kõige tõenäolisemalt kasutas. Selle ajavööndi põhjal määrake asukoht, kus Loïc näib elavat (riik, osariik/piirkond, linn...).

BTC204

Harjutus 8

Siin on Bitcoini tehing, mida uurida:

bb346dae645d09d32ed6eca1391d2ee97c57e11b4c31ae4325bcffdec40afd4f

Kui vaadata ainult seda tehingut, siis millist teavet saame tõlgendada?

Harjutuslahendused

Harjutus 1:

Selle tehingu mudel on lihtne maksemudel. Kui me uurime ainult selle struktuuri, saame tõlgendada, et üks väljund kujutab endast vahetust ja teine väljund tegelikku makset. Seega teame, et vaadeldav kasutaja ei oma tõenäoliselt enam ühte kahest UTXO-st väljundis (makse), kuid omab endiselt teist UTXO-d (vahetus).

Harjutus 2:

Selle tehingu puhul on tegemist rühmitatud kulutuste mudeliga. See mudel näitab tõenäoliselt laiaulatuslikku majandustegevust, näiteks vahetusplatvormi. Me võime järeldada, et sisend UTXO pärineb suure majandustegevusega ettevõttest ja et väljund UTXO on hajutatud. Osa neist kuulub ettevõtte klientidele, kes on oma bitcoinid välja võtnud isehoidvatesse rahakottidesse. Teised võivad minna partnerettevõtetele. Lõpuks on kahtlemata ka mõned vahetused, mis lähevad tagasi emiteerivale ettevõttele.

Harjutus 3:

Selle tehingu mudel on lihtne makse. Seetõttu võime kohaldada tehingu suhtes sisemist heuristikat, et püüda tuvastada vahetust.

Olen isiklikult tuvastanud vähemalt kaks sisemist heuristikat, mis toetavad sama hüpoteesi:

Kõige ilmsem heuristika on sama tüüpi skriptide korduvkasutamine. Tõepoolest, väljund 0 on P2SH, mis on äratuntav selle vastuvõtuaadressi järgi, mis algab numbriga 3 :

3Lcdauq6eqCWwQ3UzgNb4cu9bs88sz3mKD

Samas kui väljund "1" on "P2WPKH", mis on identifitseeritav selle aadressi järgi, mis algab "bc1q" :

bc1qya6sw6sta0mfr698n9jpd3j3nrkltdtwvelywa

UTXO, mida kasutatakse selle tehingu sisendina, kasutab samuti skripti P2WPKH:

bc1qyfuytw8pcvg5vx37kkgwjspg73rpt56l5mx89k

Seega võime eeldada, et väljund 0 vastab maksele ja väljund 1 on tehinguvahetus, mis tähendab, et väljund 1 kuulub alati sisendkasutajale.

Selle hüpoteesi toetamiseks või ümberlükkamiseks võime otsida teisi heuristilisi tunnuseid, mis kas kinnitavad meie mõtlemist või vähendavad tõenäosust, et meie hüpotees on õige.

Ma olen tuvastanud vähemalt ühe teise heuristliku näitaja. See on suurim väljundheuristika. Väljund "0" mõõdab "123,689 sats", samas kui väljund "1" mõõdab "505,839 sats". Seega on nende kahe väljundi vahel märkimisväärne erinevus. Suurima väljundi heuristika näitab, et suurim väljund on tõenäoliselt välisvaluuta. See heuristika tugevdab veelgi meie esialgset hüpoteesi.

Seetõttu tundub tõenäoline, et UTXO sisendiks andnud kasutajal on endiselt käes väljund "1", mis näib kehastavat tehingu vahetust.

Harjutus 4:

Selle tehingu mudel on lihtne makse. Seetõttu võime kohaldada tehingu suhtes sisemist heuristikat, et püüda tuvastada vahetust.

Olen isiklikult tuvastanud vähemalt kaks sisemist heuristikat, mis toetavad sama hüpoteesi:

Kõige ilmsem heuristika on sama tüüpi skriptide korduvkasutamine. Tõepoolest, väljund 0 on P2SH, mis on äratuntav selle vastuvõtuaadressi järgi, mis algab numbriga 3 :

3FSH5Mnq6S5FyQoKR9Yjakk3X4KCGxeaD4

Samas kui väljund "1" on "P2WPKH", mis on identifitseeritav selle aadressi järgi, mis algab "bc1q" :

bc1qvdywdcfsyavt4v8uxmmrdt6meu4vgeg439n7sg

UTXO, mida kasutatakse selle tehingu sisendina, kasutab samuti skripti P2WPKH:

bc1qku3f2y294h3ks5eusv63dslcua2xnlzxx0k6kp

Seega võime eeldada, et väljund 0 vastab maksele ja väljund 1 on tehinguvahetus, mis tähendab, et väljund 1 kuulub alati sisendkasutajale.

Selle hüpoteesi toetamiseks või ümberlükkamiseks võime otsida teisi heuristilisi tunnuseid, mis kas kinnitavad meie mõtlemist või vähendavad tõenäosust, et meie hüpotees on õige.

Ma olen tuvastanud vähemalt ühe teise heuristliku näitaja. See on ümmarguse summa väljund. Väljund 0 mõõdab 70,000 sats, samas kui väljund 1 mõõdab 22,962 sats. Seega on meil täiesti ümmargune väljund BTC arvestusühikus. Ümmarguse väljundi heuristika näitab, et ümmarguse summaga UTXO on kõige tõenäolisemalt see, mis on makse, ja et kõrvaldamise teel esindab teine summa vahetust. See heuristika tugevdab veelgi meie esialgset hüpoteesi.

Selle näite puhul võib aga veel üks heuristika meie esialgse hüpoteesi kahtluse alla seada. Tõepoolest, väljund "0" on suurem kui väljund "1". Tuginedes heuristikale, et suurim väljund on tavaliselt välisvaluuta, võiksime järeldada, et väljund 0 on välisvaluuta. See vastuhüpotees tundub siiski ebatõenäoline, kuna kaks muud heuristikat tunduvad oluliselt veenvamad kui suurima toodangu heuristika. Järelikult tundub mõistlik säilitada meie esialgne hüpotees vaatamata sellele ilmsele vastuolule.

Seetõttu tundub tõenäoline, et UTXO sisendiks andnud kasutajal on endiselt käes väljund "1", mis näib kehastavat tehingu vahetust.

Harjutus 5:

Näeme, et Loïci identiteediga saab seostada 8 tehingut. Neist 4 on seotud bitcoinide vastuvõtmisega:

2d9575553c99578268ffba49a1b2adc3b85a29926728bd0280703a04d051eace
8b70bd322e6118b8a002dbdb731d16b59c4a729c2379af376ae230cf8cdde0dd
d5864ea93e7a8db9d3fb113651d2131567e284e868021e114a67c3f5fb616ac4
bc4dcf2200c88ac1f976b8c9018ce70f9007e949435841fc5681fd33308dd762

Ülejäänud 4 puudutavad bitcoini saadetisi:

8b52fe3c2cf8bef60828399d1c776c0e9e99e7aaeeff721fff70f4b68145d540
c12499e9a865b9e920012e39b4b9867ea821e44c047d022ebb5c9113f2910ed6
a6dbebebca119af3d05c0196b76f80fdbf78f20368ebef1b7fd3476d0814517d
3aeb7ce02c35eaecccc0a97a771d92c3e65e86bedff42a8185edd12ce89d89cc

Harjutus 6:

Kui me vaatame selle tehingu mudelit, siis on selge, et tegemist on komplekssete kuludega. Tõepoolest, tehingul on üks sisend ja 51 väljundit, mis näitab suurt majandustegevust. Seega võime oletada, et Loïc on võtnud bitcoine välja vahetusplatvormilt.

Seda hüpoteesi kinnitavad mitmed tegurid. Esiteks on UTXO sisendi turvamiseks kasutatud skript tüüp P2SH 2/3 multisig skript, mis viitab vahetusplatvormidele iseloomulikule kõrgetasemelisele turvalisusele:

OP_PUSHNUM_2
OP_PUSHBYTES_33 03eae02975918af86577e1d8a257773118fd6ceaf43f1a543a4a04a410e9af4a59
OP_PUSHBYTES_33 03ba37b6c04aaf7099edc389e22eeb5eae643ce0ab89ac5afa4fb934f575f24b4e
OP_PUSHBYTES_33 03d95ef2dc0749859929f3ed4aa5668c7a95baa47133d3abec25896411321d2d2d
OP_PUSHNUM_3
OP_CHECKMULTISIG

Veelgi enam, uuritud aadressi 3PUv9tQMSDCEPSMsYSopA5wDW86pwRFbNF kasutatakse uuesti üle 220 000 erineva tehingu puhul, mis on sageli iseloomulik vahetusplatvormidele, mis üldiselt ei hooli nende konfidentsiaalsusest.

Selle aadressi suhtes kohaldatud ajaline heuristika näitab samuti tehingute regulaarset ülekandmist peaaegu iga päev kolme kuu jooksul, pikema aja jooksul üle 24 tunni, mis viitab vahetusplatvormi pidevale tegevusele.

Lõpuks, selle üksuse poolt käideldavad mahud on kolossaalsed. See aadress sai ja saatis 2022. aasta detsembrist kuni 2023. aasta märtsini 222 262 tehinguga 44 BTC. Need suured mahud kinnitavad veelgi vahetusplatvormi tegevuse tõenäolist olemust.

Harjutus 7:

Analüüsides tehingu kinnitamise aega, saab tuvastada järgmised UTC-ajad:

05:43
20:51
18:12
17:16
04:28
23:38
07:45
21:55

Nende ajakavade analüüs näitab, et UTC-7 ja UTC-8 on enamiku ajakavade puhul kooskõlas praeguse inimtegevuse vahemikuga (vahemikus 08:00-23:00):

05:43 UTC > 22:43 UTC-7
20:51 UTC > 13:51 UTC-7
18:12 UTC > 11:12 UTC-7
17:16 UTC > 10:16 UTC-7
04:28 UTC > 21:28 UTC-7
23:38 UTC > 16:38 UTC-7
07:45 UTC > 00:45 UTC-7
21:55 UTC > 14:55 UTC-7
05:43 UTC > 21:43 UTC-8
20:51 UTC > 12:51 UTC-8
18:12 UTC > 10:12 UTC-8
17:16 UTC > 09:16 UTC-8
04:28 UTC > 20:28 UTC-8
23:38 UTC > 15:38 UTC-8
07:45 UTC > 23:45 UTC-8
21:55 UTC > 13:55 UTC-8
BTC204

UTC-7 ajavöönd on eriti oluline suvel, kuna see hõlmab selliseid riike ja piirkondi nagu :

Selle teabe põhjal võib oletada, et Loïc elab tõenäoliselt Ameerika Ühendriikide läänerannikul või Kanadas.

Harjutus 8:

Selle tehingu analüüs näitab 5 sisendit ja ühte väljundit, mis viitab konsolideerimisele. Rakendades CIOH heuristikat, võime eeldada, et kõik sisendtarbed UTXOd kuuluvad ühele üksusele ja et ka väljundtarbed UTXO kuulub sellele üksusele. Tundub, et kasutaja otsustas koondada mitu talle kuuluvat UTXO-d, et moodustada väljundis üks UTXO, eesmärgiga konsolideerida oma osad. Seda sammu ajendas tõenäoliselt soov kasutada ära tolleaegseid madalaid tehingukulusid, et vähendada tulevasi kulusid.


Selle 3. osa kirjutamiseks ahelanalüüsi kohta kasutasin järgmisi ressursse:

Tahaksin tänada nende autoreid, arendajaid ja tootjaid. Tänan ka korrektoreid, kes parandasid hoolikalt artiklit, millel see 3. osa põhineb, ja andsid mulle oma asjatundlikke nõuandeid :

Parimate tavade omandamine eraelu puutumatuse kaitsmiseks

Aadressi korduvkasutamine

Olles uurinud meetodeid, mis võivad teie Bitcoini konfidentsiaalsust rikkuda, vaatleme nüüd selles kolmandas osas parimaid tavasid, mida enda kaitsmiseks vastu võtta. Selle osa eesmärk ei ole uurida konfidentsiaalsuse parandamise meetodeid - seda teemat käsitletakse hiljem -, vaid pigem mõista, kuidas Bitcoiniga õigesti suhelda, et säilitada selle loomulikul teel pakutav konfidentsiaalsus, ilma et peaks kasutama lisatehnikaid.

Ilmselt räägime selle kolmanda osa alguses aadressi korduvkasutamisest. See nähtus on peamine oht kasutajate konfidentsiaalsusele. See peatükk on kindlasti kogu kursuse kõige olulisem.

Mis on vastuvõtuaadress?

Bitcoini vastuvõtuaadress on string või identifikaator, mida kasutatakse bitcoinide vastuvõtmiseks rahakotis.

Tehniliselt ei "võta" Bitcoini vastuvõtuaadress bitcoin'i sõna otseses mõttes vastu, vaid pigem määratleb tingimused, mille alusel bitcoin'e saab kulutada. Konkreetselt öeldes, kui teile saadetakse makse, loob saatja tehing teile väljundina uue UTXO, mille ta on tarbinud UTXO-dest, mida ta on sisendina tarbinud. Sellele väljundile kinnitab ta skripti, mis määrab, kuidas seda UTXO-d saab hiljem kulutada. See skript on tuntud kui "SkriptPubKey" või "Locking Script". Teie vastuvõtuaadress või täpsemalt selle kasutamiskoormus on integreeritud sellesse skripti. Maaliku keeles öeldes ütleb see skript põhimõtteliselt:

"Uue UTXO kulutamiseks peate andma digitaalallkirja, kasutades selle vastuvõtuaadressiga seotud privaatvõtit." BTC204

Bitcoini aadressid on eri tüüpi, sõltuvalt kasutatavast skriptimudelist. Esimesed mudelid, mida tuntakse kui "Legacy*", hõlmavad P2PKH (Pay-to-PubKey-Hash) ja P2SH (Pay-to-Script-Hash) aadresse. P2PKH-aadressid algavad alati numbriga 1 ja P2SH-aadressid numbriga 3. Kuigi need vormingud on endiselt turvalised, on need nüüdseks vananenud, kuna nendega kaasnevad suuremad tehingukulud ja nad pakuvad vähem konfidentsiaalsust kui uued standardid.

SegWit V0 (P2WPKH ja P2WSH) ja Taproot / SegWit V1 (P2TR) aadressid esindavad kaasaegseid formaate. SegWit-aadressid algavad sõnaga bc1q ja 2021. aastal kasutusele võetud Taproot-aadressid algavad sõnaga bc1p.

Näiteks siin on Taprooti vastuvõtu aadress:

bc1ps5gd2ys8kllz9alpmcwxqegn7kl3elrpnnlegwkm3xpq2h8da07spxwtf5

See, kuidas ScriptPubKey konstrueeritakse, sõltub kasutatavast standardist:

| ScriptPubKey | Script malli

| ---------------- | ----------------------------------------------------------- |

| P2PKH | OP_DUP OP_HASH160 <pubKeyHash> OP_EQUALVERIFY OP_CHECKSIG |

| P2SH | OP_HASH160 <scriptHash> OP_EQUAL |

| P2WPKH | 0 <pubKeyHash> |

| P2WSH | 0 <<witnessScriptHash> |

| P2SH - P2WPKH | OP_HASH160 <redeemScriptHash> OP_EQUAL |

| P2SH - P2WSH | OP_HASH160 <redeemScriptHash> OP_EQUAL |

| P2TR | 1 <pubKey> |

Vastuvõtuaadresside konstrueerimine sõltub ka valitud skripti mudelist:

BTC204

Teie portfoolio tarkvaras kuvatavad aadressid sisaldavad ka HRP (Human-Readable Part), tavaliselt bc post-SegWit aadresside puhul, eraldusmärk 1 ja versiooninumber q SegWit V0 puhul ja p Taproot/SegWit V1 puhul. Samuti lisatakse kontrollsumma, et tagada aadressi terviklikkus ja kehtivus edastamise ajal.

Lõpuks pannakse aadressid standardvormingusse:

Siin on bech32 ja bech32m formaatide (SegWit ja Taproot) liitmismaatriks baasist 10:

| + | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |

| --- | --- | --- | --- | --- | --- | --- | --- | --- |

| 0 | q | p | z | r | y | 9 | x | 8 |

| 8 | g | f | 2 | t | v | d | w | 0 |

| 16 | s | 3 | j | n | 5 | 4 | k | h |

| 24 | c | e | 6 | m | u | a | 7 | l |

Mis on aadressi korduvkasutamine?

Aadressi korduvkasutamine on sama vastuvõtuaadressi kasutamine mitme erineva UTXO blokeerimiseks.

Nagu nägime eelmises jaotises, on igal UTXO-l oma ScriptPubKey, mis lukustab selle ja peab olema täidetud, et UTXO-d saaks kasutada uue tehingu sisendina. Just sellesse ScriptPubKey'sse on integreeritud kasuliku koormuse aadressid.

Kui erinevad ScriptPubKeys sisaldavad sama vastuvõtuaadressi, nimetatakse seda aadressi korduvkasutamiseks. Praktikas tähendab see, et kasutaja on korduvalt andnud sama aadressi saatjatele, et saada bitcoine mitme makse kaudu. Ja just see praktika on teie privaatsuse jaoks katastroofiline.

Miks on aadressi korduvkasutamine probleemiks?

Kuna plokiahel on avalik, on lihtne näha, millised aadressid lukustavad milliseid UTXOsid ja kui palju bitcoine. Kui sama aadressi kasutatakse mitme tehingu puhul, on võimalik järeldada, et kõik selle aadressiga seotud bitcoinid kuuluvad ühele ja samale isikule. Selline praktika ohustab kasutajate privaatsust, võimaldades erinevate tehingute vahel luua deterministlikke seoseid ja bitcoinide jälgitavust plokiahelas. Satoshi Nakamoto ise rõhutas seda probleemi juba Bitcoini valges raamatus:

Täiendava tulemüürina võiks iga tehingu puhul kasutada uut võtmepaari, et hoida neid ühise omanikuga sidumata BTC204

Allikas: S. Nakamoto, "Bitcoin: Peer-to-Peer Electronic Cash System", https://bitcoin.org/bitcoin.pdf, 2009.

Satoshi kavatses selle lausega luua täiendava tulemüüri juhul, kui kasutaja identiteedi ja Bitcoini võtmepaari vahel tekib seos, et kogu tema tegevus ei oleks avalikult seotud tema identiteediga. Tänapäeval, kui plokiahelat analüüsivate ettevõtete ja KYC-eeskirjade levikuga, ei ole unikaalsete aadresside kasutamine enam "täiendav tulemüür", vaid hädavajalik tava kõigile, kes soovivad säilitada minimaalset privaatsust.

Kui te kasutate aadressi uuesti, loob te peaaegu vaieldamatu seose kõigi selle aadressiga seotud tehingute vahel. Kuigi see ei ohusta otseselt teie rahalisi vahendeid, sest elliptilise kõveraga krüptograafia tagab teie privaatvõtmete turvalisuse, muudab see teie tegevuse jälgimise lihtsamaks. Tõepoolest, igaüks, kellel on sõlme, saab jälgida aadresside tehinguid ja saldosid, ohustades täielikult teie anonüümsust.

BTC204

Selle punkti illustreerimiseks võtame näiteks Bobi, kasutaja, kes ostab regulaarselt bitcoine väikestes kogustes DCA-s ja saadab need alati samale aadressile. Kahe aasta pärast on sellel aadressil märkimisväärne kogus bitcoine. Kui Bob kasutab seda aadressi, et teha makse kohalikule kaupmehele, saab viimane näha kõiki sellega seotud vahendeid ja järeldada Bobi varandust. See võib kaasa tuua isiklikke turvariske, näiteks varguse või väljapressimise katse. Kui Bob oleks kasutanud iga perioodilise ostu vastuvõtmiseks tühja aadressi, oleks ta avaldanud kaupmehele tunduvalt vähem teavet.

Stringianalüüsis on 2 tüüpi aadressi korduvkasutust:

Esimene on see, kui aadressi kasutatakse uuesti mitmes erinevas Bitcoini tehingus. Sellest rääkisime varem: see heuristika järeldab, et kõik selle aadressi kaudu läbitud UTXOd kuuluvad ühele isikule.

Sisemine aadressi korduvkasutamine ei toimu siis, kui korduvkasutamine toimub mitme tehingu vahel, vaid siis, kui see toimub ühe tehingu sees. Tõepoolest, kui sama aadressi, mida kasutatakse sisendi lukustamiseks, kasutatakse ka tehingu väljundina, siis võime järeldada, et see väljund kuulub endiselt samale kasutajale (vahetusele) ja et teine väljund kujutab endast tegelikku makset. See teine heuristika võimaldab raha jälgimist mitme tehingu vältel.

BTC204

Aadressi korduvkasutamine on Bitcoini tõeline nuhtlus. OXT.me veebisaidi (praegu kättesaamatu) andmetel oli aadresside taaskasutamise üldine määr Bitcoinis 2022. aastal umbes 52%:

BTC204

See määr on tohutu, kuid see pärineb valdavalt pigem vahetusplatvormidelt kui üksikutelt kasutajatelt.

Kuidas vältida aadressi korduvkasutust?

Aadressi korduvkasutamise vältimine on üsna lihtne: Kasutage lihtsalt uut, tühja aadressi kõigi uute maksete tegemiseks oma rahakotti.

Tänu BIP32-le on kaasaegsed portfellid nüüd deterministlikud ja hierarhilised. See tähendab, et kasutaja saab luua suure hulga aadresse ühest algteabest: seemnest. Selle üheainsa teabe salvestamisega on võimalik taastada kõik portfellis olevad isiklikud võtmed, võimaldades juurdepääsu vastavate aadressidega tagatud rahalistele vahenditele.

BTC204

Seepärast pakutakse iga kord, kui vajutate rahakoti tarkvaras nuppu "saada", kasutamata vastuvõtuaadressi. Pärast bitcoinide vastuvõtmist sellele aadressile pakub tarkvara automaatselt uut aadressi.

PS: Hiljuti teatasid mõned rahakoti tarkvara programmid oma kavatsusest lõpetada tühjade aadresside genereerimine, kuna kardavad, et ametiasutused peavad seda rahapesuks. Kui teie tarkvara on üks neist, soovitan tungivalt, et te vahetaksite selle kohe välja, sest see ei ole kasutajale vastuvõetav. Kui teil on maksete vastuvõtmiseks vaja staatilist identifikaatorit, näiteks annetuste vastuvõtmiseks, ei ole soovitatav kasutada klassikalist Bitcoini aadressi, sest on oht, et seda võidakse uuesti kasutada. Selle asemel kasutage Lightning-aadressi või valige staatiline ahelasisene makse identifikaator, näiteks BIP47 või Silent Payments. Neid protokolle selgitatakse üksikasjalikult selle koolituskursuse 6. osas.

Osade märgistamine ja kontrollimine

Nagu me avastasime stringianalüüsi käsitlevas osas, on olemas hulk heuristikat ja mustreid, mida saab kasutada tehingu kohta teabe tuletamiseks. Kasutajana on oluline olla neist tehnikatest teadlik, et end nende eest paremini kaitsta.

See eeldab oma rahakoti ranget haldamist isehalduses, mis tähendab, et peate teadma oma UTXOde päritolu ning valima hoolikalt, milliseid UTXOsid maksete tegemisel tarbida. Selline tõhus rahakoti haldamine tugineb heade Bitcoini rahakottide kahele olulisele omadusele: märgistamine ja mündikontroll.

Selles peatükis vaatleme neid funktsioone ja vaatame, kuidas saate neid arukalt kasutada, lisamata liiga suurt töökoormust, et optimeerida oma privaatsust Bitcoinis.

Mis on märgistamine?

Märgistamine on praktika, mille käigus määratakse Bitcoini rahakotis konkreetsele UTXO-le märkus või silt. Neid märkusi salvestatakse lokaalselt rahakoti tarkvara poolt ja neid ei edastata kunagi Bitcoini võrgu kaudu. Märgistamine on seega isiklik haldusvahend.

Näiteks, kui mul on UTXO P2P-ostustelt Bisqis koos Charlesiga, võiksin selle märgistada "Non-KYC Bisq Charles".

Märgistamine on hea tava, mis aitab meeles pidada UTXO päritolu või sihtkohta, mis hõlbustab seega vahendite haldamist ja eraelu puutumatuse optimeerimist. Tõepoolest, teie Bitcoini rahakott kindlustab kindlasti mitu UTXO-d. Kui nende UTXOde allikad on erinevad, ei pruugi te tulevikus neid UTXOsid ühendada, sest muidu võiksite paljastada nende ühise omandiõiguse. Kui märgistate kõik oma osad korralikult, võite olla kindel, et mäletate, kust need pärinevad, kui teil on vaja neid kasutada, isegi kui see toimub aastate pärast.

Mis on nurgakontroll?

Aktiivne märgistuse kasutamine muutub veelgi huvitavamaks, kui see on ühendatud portfelli tarkvara mündikontrolli võimalusega.

Mündikontroll on hea Bitcoini rahakoti tarkvara funktsioon, mis võimaldab teil käsitsi valida konkreetseid UTXOsid, mida kasutada sisendina tehingu lõpuleviimiseks. Tegelikult peate väljundmakse rahuldamiseks tarbima vastutasuks sisendiks UTXO. Mitmel põhjusel, mida vaatleme hiljem, võite soovida täpselt valida, milliseid osi tarbida sisendina, et rahuldada antud makse. Just seda võimaldab teil teha mündikontroll. Analoogia mõttes on see funktsioon sarnane sellega, kui valite oma rahakotist konkreetse mündi, kui maksate oma baguette'i eest.

BTC204

Mündikontrolliga portfelli tarkvara kasutamine koos UTXO märgistusega võimaldab kasutajatel nii eristada kui ka täpselt valida UTXOd oma tehingute jaoks.

Kuidas märgistate oma UTXO-d?

UTXOde märgistamiseks ei ole olemas ühtset meetodit. See on teie otsustada, milline on teie portfelli jaoks kergesti arusaadav märgistamissüsteem. Igal juhul pidage meeles, et hea märgistamine on märgistamine, millest te saate aru, kui seda vajate. Kui teie Bitcoini rahakott on mõeldud eelkõige säästmiseks, ei pruugi sildid teile aastakümneid kasulikud olla. Seega veenduge, et need on selged, täpsed ja põhjalikud.

On oluline, et teie lähedased saaksid hõlpsasti tuvastada raha päritolu, kui nad ühel päeval vajavad juurdepääsu teie portfellile. See aitab neid nii konfidentsiaalsuse kui ka juriidilistel eesmärkidel, kui neil on vaja põhjendada vahendite päritolu mõnele asutusele.

Kõige olulisem on märkida etiketil UTXO allikas. Te peaksite lihtsalt märkima, kuidas münt teie rahakotti sattus. Kas see on vahetusplatvormil tehtud ostu tulemus? Kliendilt saadud arve maksmisest? Peer-to-peer-vahetusest? Või kujutab see endast mingi kulu vahetamist? Näiteks võite täpsustada:

BTC204

Selleks, et täpsustada oma UTXO juhtimist ja järgida fondide eraldamise strateegiaid oma portfellis, võiksite oma märgiseid rikastada täiendava näitajaga, mis kajastab neid eraldamisi. Kui teie portfellis on kaks liiki UTXOsid, mida te ei soovi segada, võiksite lisada märgistesse tähise, et neid rühmi selgelt eristada. Need eraldusmärgised sõltuvad teie enda kriteeriumidest, näiteks eristate KYCi hõlmava omandamisprotsessi tulemusel tekkinud UTXOsid või ametialaseid ja isiklikke fonde. Võttes aluseks eespool nimetatud märgistuse näited, võiks see olla järgmine:

BTC204

Samuti on soovitav jäädvustada osa märgistus tehingute käigus. Näiteks UTXO no-KYC konsolideerimisel märgistage saadud UTXO mitte ainult kui "konsolideerimine", vaid konkreetselt kui "konsolideerimine no-KYC", et oleks selge, kust mündid pärinevad.

Lõpuks ei ole kuupäeva märkimine sildile kohustuslik. Enamik rahakoti tarkvara kuvab juba tehingu kuupäeva ja seda teavet on alati võimalik leida plokkide otsingumootorist tänu selle TXID-le.

Kuidas valida õiged osad?

Tehingu sooritamisel saate mündi kontrolli abil konkreetselt valida, milliseid UTXOsid kasutada sisendina, et rahuldada makse väljundit. Sellel valikul on kaks aspekti:

Esimese punkti illustreerimiseks võtame konkreetse näite. Oletame, et ostate pagarilt baguette'i bitcoin'idega. Te kasutate ühte või mitut UTXOd, mis on teie käes sisendina, et katta vähemalt baguette'i hind väljundites, samuti tehingutasud. Teie pagar võib seejärel potentsiaalselt seostada teie nägu või mis tahes muud talle teadaolevat osa teie identiteedist sisendina kasutatud müntidega. Teades selle seose olemasolu, võite makse sooritamisel eelistada konkreetse UTXO valimist, mitte mõne teise.

BTC204

Näiteks kui üks teie UTXO on pärit vahetusplatvormilt ja te eelistate, et pagar ei teaks teie kontost sellel platvormil, siis väldite selle UTXO kasutamist maksmiseks. Kui teil on suure väärtusega UTXO, mis paljastab märkimisväärse hulga bitcoine, võite samuti otsustada seda mitte kasutada, et pagar ei saaks teada teie BTC-varandusest.

Selle esimese punkti puhul kasutatava UTXO valimine on seega isiklik otsus, mida mõjutab see, mida olete valmis avaldama või mitte. Sildid, mida te oma UTXOdele nende saamisel annate, aitavad teil valida need, mis pärast kulutamist paljastavad ainult sellist teavet, mida te olete nõus saajale avaldama.

Lisaks teabe potentsiaalsele avaldamisele vastuvõtjale mõjutab sisendite valik ka seda, mida avaldate kõigile plokiahela vaatlejatele. Kasutades oma tehingu sisenditena mitut UTXO-d, paljastate te tõepoolest, et need kuuluvad CIOH-heuristiku (Common Input Ownership Heuristic_) kohaselt ühele ja samale üksusele.

BTC204

Osade valimisel peate seega olema teadlik, et tehing, mida te kavatsete edastada, loob seose kõigi kasutatavate UTXOde vahel. See seos võib teie isikliku privaatsuse seisukohast olla problemaatiline, eriti kui UTXOd pärinevad erinevatest allikatest.

BTC204

Võtame näiteks minu KYC-vaba UTXO Bisqist; ma tahan vältida selle kombineerimist UTXOga näiteks reguleeritud vahetusplatvormilt, mis teab minu identiteeti. Kui ma kunagi kasutan neid 2 UTXOd sama tehingu sisendina, saab reguleeritud platvorm tõepoolest seostada minu identiteedi Bisqist ostetud UTXOga, mis ei olnud eelnevalt minu identiteediga seotud.

BTC204

Lõpuks, kui valite, milliseid UTXOsid tehingu sisendina kasutada, on kõige olulisem vältida mitme UTXO kasutamise võimalust. Kui saate, valige maksimaalselt üks mündi, mis on piisavalt suur, et rahuldada teie makse. Nii väldite täielikult CIOHiga seotud riske. Kui aga maksmiseks ei piisa ühest UTXO-st ja teil on vaja tarbida mitut, veenduge, et need on pärit sarnastest allikatest, et vähendada soovimatute seoste riski. Pidage ka meeles, et saaja võib seostada teie kohta käivat teavet kasutatud müntide ajalooga sisendites.

Automaatse osa valiku mõistmine

Eelmistes punktides käsitleti tehingu jaoks kasutatavate UTXOde käsitsi valimist. Aga mis juhtub siis, kui rahakoti tarkvara teeb selle valiku automaatselt? Kasutatavate müntide kindlaksmääramiseks on olemas mitu meetodit ja UTXOde valimine moodustab Bitcoini kohta tõelise uurimisvaldkonna. Selle automaatse protsessi peamine eesmärk on sageli vähendada kasutaja jaoks tehingukulusid.

UTXO valikumeetodid nagu FIFO (First In First Out) ja LIFO (Last In First Out) on ühed lihtsaimad, kuid ka kõige vähem tõhusad. FIFO puhul kasutatakse kõigepealt portfelli vanimaid osi. See lähenemisviis on üldiselt ebatõhus nii tehingukulude minimeerimiseks kui ka konfidentsiaalsuse säilitamiseks, välja arvatud juhtudel, kui kasutatakse suhtelisi ajamäärasid, mida tuleb regulaarselt uuendada. Seevastu LIFO puhul eelistatakse kõige uuemate UTXOde kasutamist. Mõlemad meetodid on küll lihtsad, kuid osutuvad sageli ebatõhusaks.

Täiustatud meetod on Knapsack Solver. Seda kasutati Bitcoin Core'i rahakotis kuni versioonini 0.17. See seisneb iteratiivses ja juhuslikus UTXOde valimises rahakotist, nende liitmises alamkogumite kaupa ja selle lahenduse säilitamises, mis vähendab tehingu kaalu võimalikult palju, et vähendada kasutaja kulusid.

Branch-and-Bound (BNB), mida sageli kutsutakse selle leiutaja järgi "Murchi algoritmiks", on alates versioonist 0.17 Bitcoin Core'is asendanud Knapsack Solver. Selle arenenuma meetodi eesmärk on leida UTXOde kogum, mis vastab täpselt summale, mis on vajalik tehingu väljundite rahuldamiseks. BNB eesmärk on minimeerida nii vahetussummat kui ka tasusid, vähendades nn raiskamise kriteeriumi, mis võtab arvesse nii vahetuse koheseid kulusid kui ka eeldatavaid tulevasi kulusid. See meetod on tuletatud Ailsa Landi ja Alison Harcourti 1960. aastal välja töötatud Branch-and-Bound originaalkontseptsioonist ja pakub täpsemat tasude optimeerimist kui Knapsack Solver.

Kõik need automaatsed UTXO valikumeetodid võivad olla tõhusad tehingukulude vähendamisel, kuid sageli ei ole need tõhusad kasutaja konfidentsiaalsuse säilitamisel. Need algoritmid võivad tõepoolest ühendada mitu UTXOd sisendiks, paljastades seega nende UTXOde ühise omaduse CIOHi tõttu. Ilmselgelt ei saa need meetodid võtta arvesse UTXOdele kinnitatud märgiseid, mis on siiski otsustava tähtsusega, et teadlikult valida, milliseid osi tehingu saajale avaldada. Praegu on ainus võimalus optimeerida konfidentsiaalsust müntide valimisel käsitsi.

UTXO märgistamise õpetus

Kui soovid teada saada, kuidas oma UTXOsid märgistada, oleme teinud põhjaliku õpetuse peamise Bitcoini rahakoti tarkvara kohta:

https://planb.network/tutorials/privacy/on-chain/utxo-labelling-d997f80f-8a96-45b5-8a4e-a3e1b7788c52

KYC ja võtmete tuvastamine

KYC tähendab "tunne oma klienti". See on regulatiivne menetlus, mida teatavad Bitcoini sektoris tegutsevad ettevõtted rakendavad. Selle menetluse eesmärk on kontrollida ja registreerida oma klientide identiteeti, mille eesmärk on võidelda rahapesu ja terrorismi rahastamise vastu.

Praktikas tähendab KYC mitmesuguste isikuandmete kogumist kliendilt, mis võivad sõltuvalt jurisdiktsioonist erineda, kuid üldjuhul hõlmavad isikut tõendavat dokumenti, fotot ja aadressitõendit. Seejärel kontrollitakse ja säilitatakse need andmed edaspidiseks kasutamiseks.

See menetlus on muutunud kohustuslikuks enamikus lääneriikides kõigi reguleeritud vahetusplatvormide jaoks. See tähendab, et igaüks, kes soovib nende platvormide kaudu riigi valuutat bitcoini vastu vahetada, peab täitma KYC nõudeid.

See menetlus ei ole kasutajate privaatsust ja turvalisust ohustamata. Käesolevas peatükis uurime neid riske üksikasjalikult ja analüüsime KYC- ja identifitseerimisprotsesside konkreetseid mõjusid Bitcoini kasutajate eraelu puutumatusele.

Järelevalveahela jälgimise hõlbustamine

Esimene risk, mis on seotud KYCiga, on see, et see pakub eelisjuurdepääsu plokiahela analüüsile. Nagu nägime eelmises punktis, saavad analüütikud klasterdada ja jälgida tegevust plokiahelas, kasutades tehingumustreid ja heuristikat. Kui neil on õnnestunud klasterdada kasutaja tegevused plokiahelas, tuleb neil vaid leida üks sisenemispunkt kõigi tema tehingute ja võtmete hulgast, et täielikult ohustada tema konfidentsiaalsust.

BTC204

Kui teete KYC-i, annate kvaliteetse sisenemispunkti plokiahela analüüsiks, kuna seostate oma bitcoinide väljavõtmisel vahetusplatvormilt kasutatud vastuvõtuaadressid oma täieliku, kontrollitud identiteediga. Teoreetiliselt on see teave teada ainult ettevõttele, kellele te selle andsite, kuid nagu allpool näeme, on andmete lekkimise oht reaalne. Veelgi enam, ainuüksi asjaolu, et ettevõte seda teavet omab, võib olla problemaatiline, isegi kui nad seda ei jaga.

Seega, kui te ei võta muid meetmeid, et piirata oma tegevuse koondamist plokiahelas, võib igaüks, kes teab seda KYC-sisestuspunkti, potentsiaalselt siduda kogu teie tegevuse Bitcoinis teie identiteediga. Selle ettevõtte seisukohast kaotab teie Bitcoini kasutamine igasuguse konfidentsiaalsuse.

BTC204

Et seda võrdluse abil illustreerida, on see nii, nagu oleks teie pankur Pangas X mitte ainult juurdepääs kõikidele teie tehingutele Pangas X, vaid saaks jälgida ka teie tehinguid Pangas Y ja kõiki teie sularahatehinguid.

Tuletage meelde selle koolituse esimest osa: Bitcoini konfidentsiaalsusmudel, nagu Satoshi Nakamoto seda kavandas, põhineb kasutaja identiteedi ja tema võtmepaaride eraldamisel. Kuigi see konfidentsiaalsuse kiht ei ole tänapäeval enam piisav, on siiski mõistlik piirata selle lagunemist nii palju kui võimalik.

Kokkupuude riikliku järelevalvega

Teine suur probleem KYCi puhul on see, et see näitab riigile, et olete mingil ajal bitcoini omanikuks olnud. Kui te ostate bitcoin'e reguleeritud toimija kaudu, saab riik sellest omamisest teada. Praegu võib see tunduda triviaalne, kuid on oluline meeles pidada, et teie riigi poliitiline ja majanduslik tulevik ei ole teie käes.

Esiteks võib riik kiiresti võtta autoritaarse hoiaku. Ajalugu on täis näiteid, kus poliitika on järsult muutunud. Täna võivad Bitcoini kasutajad Euroopas kirjutada artikleid Bitcoini kohta, osaleda konverentsidel ja hallata oma rahakotti ise. Kuid kes teab, mida toob homne päev? Kui Bitcoinist saab äkki avalik vaenlane number üks, võib sellega seostamine valitsuse toimikutes osutuda problemaatiliseks.

Siis võib riik tõsise majanduskriisi korral kaaluda kodanike valduses olevate bitcoinide konfiskeerimist. Võib-olla hakatakse homme bitcoin'i omanikke pidama kriisikasuvõtjateks ja nende kapitalikasumit maksustatakse fiatvaluuta devalveerimise tõttu ülemäära kõrgelt.

Te võite arvata, et see ei ole probleem, sest teie bitcoinid on segatud ja seega jälgimatud. Kuid jälgitavus ei ole siinkohal probleemiks. Tegelik probleem on see, et riik teab, et te olete bitcoinide omanik. Ainuüksi sellest teabest võib piisata, et teid süüdi mõista või vastutusele võtta. Sa võid püüda väita, et oled oma bitcoinid ära kulutanud, kuid see peaks kajastuma sinu maksudeklaratsioonis ja sa jääksid kinni. Võiksite ka öelda, et kaotasite oma võtmed laevaõnnetuses, kuid kas te tõesti arvate, et peale Twitteri nalja piisab sellest, et teid õigeks mõista?

Seega on oluline arvestada riskiga, et riik teab, et te olete BTC omanikuks olnud, ükskõik kui väike see risk täna ka ei tunduks.

Teine probleem, mida KYC tekitab riikliku järelevalve seisukohalt, on reguleeritud platvormide kohustuslik aruandlus. Kuigi ma ei ole kursis teiste jurisdiktsioonide regulatsioonidega, on Prantsusmaal Prestataires de Services sur Actifs Numériques (PSAN) kohustatud teatama finantsjärelevalveasutustele igast rahaliste vahendite liikumisest, mida nad peavad kahtlaseks.

Prantsusmaal teatasid 2023. aastal PSANid 1449 kahtlastest tegudest. Praegu on enamik neist tegudest seotud kuritegevusega. Siiski paluvad ametiasutused ka reguleeritud platvormidel teatada kõigist kahtlastest Bitcoini tehingutest üksnes nende struktuuri alusel. Kui te teostate ühistehingu või isegi lihtsalt veidi ebatüüpilise mustriga tehingu ja see tehing toimub mitte kaugel teie bitcoinide väljavõtmisest nendelt platvormidelt, võite leida end ametiasutustele teatatuna. Isegi kui ei ole tegemist kuritahtliku tegevusega ja te kasutate oma õigusi õiguspäraselt, võib selline teatamine viia suurenenud kontrollide ja järelevalvega, mida te oleksite ilma KYC-ta vältinud.

Isikuandmete lekke oht

Teine probleem KYCi puhul on see, et see nõuab kõigi teie isikuandmete salvestamist eraettevõtte serverites.

Hiljutised sündmused on meile meelde tuletanud, et keegi ei ole finants- või IT-katkestuste eest kaitstud. Aastal 2022 kannatasid Celsiuse kliendid tagajärgede all. Pärast ettevõtte pankrotti avalikustasid Ameerika kohtud haldusmenetluse käigus võlausaldajate nimed ja nende varade suuruse.

Veidi rohkem kui kaks aastat tagasi oli tegemist krüptoraha küberturvalisuse lipulaevaga, mille klientide isikuandmed varastati. Kuigi see intsident ei olnud otseselt seotud bitcoinide ostmisega, jääb selline risk ka vahetusplatvormidele. Isikuandmetega on seega kindel risk.

On tõsi, et me usaldame juba praegu paljud oma isikuandmed eraettevõtetele. Kuid siin on oht kahekordne, sest need andmed mitte ainult ei identifitseeri teid, vaid on seotud ka Bitcoini tegevusega. Tõepoolest, kui häkker saab juurdepääsu vahetusplatvormi kliendiandmetele, võib ta põhjendatult eeldada, et need kliendid omavad Bitcoine. Seda riski suurendab asjaolu, et Bitcoin, nagu iga muu väärtuslik vara, äratab varaste tähelepanu.

Andmete lekkimise korral võite parimal juhul olla sihtotstarbeliste andmepüügikatsete sihtmärgiks. Halvemal juhul võite sattuda oma kodu füüsilise ohu keskmesse.

Lisaks Bitcoiniga seotud konkreetsetele riskidele on olemas ka ohud, mis on seotud isikut tõendavate dokumentide edastamisega. Nimelt on andmete lekkimise korral võimalik sattuda identiteedivarguse ohvriks. Seega ei piirdu panused ainult tehingute konfidentsiaalsuse kaitsmisega, vaid puudutavad ka iga üksikisiku isiklikku turvalisust.

Mõned eelarvamused KYCi kohta

Oluline on lahti mõtestada mõned eelarvamused KYCi kohta, millega me sageli Twitteris või bitcoin'idega suhtlemisel kokku puutume.

Esiteks on ebatäpne arvata, et KYC-i kaudu omandatud bitcoinide privaatsuse kaitsmine on mõttetu. Bitcoini privaatsusvahendid ja -meetodid on erinevad ja teenivad erinevaid eesmärke. Näiteks KYC-i kaudu omandatud Bitcoinide puhul ei ole coinjoin-tehingute kasutamine halb mõte. Loomulikult peate olema ettevaatlik reguleeritud vahetusplatvormide puhul, et vältida oma konto külmutamist või keelustamist, kuid rangelt tehnilisest vaatenurgast ei ole need tavad ühildamatud. Coinjoinil on müntide ajaloo purustamine, mis aitab teil seega ära hoida teatud KYC-ga seotud ahelanalüüsi riske. Kuigi see ei kõrvalda kõiki riske, on see siiski märkimisväärne eelis.

BTC204

Bitcoini konfidentsiaalsust ei tohiks vaadelda binaarselt, eristades "anonüümseid" bitcoine ja teisi, mis ei ole seda. KYC-i kaudu omandatud bitcoinide omamine ei tähenda, et kõik on kadunud; vastupidi, konfidentsiaalsusvahendite kasutamine võib osutuda isegi kasulikumaks.

Seevastu bitcoini omandamine mitte-KYC-meetodi kaudu ei taga täiuslikku konfidentsiaalsust ega vabasta teid vajadusest võtta muid kaitsemeetmeid. Kui te omate bitcoin'e, mis ei ole KYC, kuid kasutate vastuvõtuaadresse mitu korda, võidakse teie tehinguid jälgida ja koondada. Väikseimgi side Bitcoini välise maailmaga võib ohustada teie ainukest konfidentsiaalsuskihti. Seega on oluline pidada kõiki Bitcoini privaatsust suurendavaid vahendeid ja meetodeid üksteist täiendavaks. Iga tehnika tegeleb konkreetse riskiga ja võib lisada täiendava kaitsekihi. Seega ei tähenda KYC-i mittekasutava Bitcoini omamine, et te ei pea võtma muid ettevaatusabinõusid.

Kas KYCi saab tühistada?

Minult küsitakse mõnikord, kas pärast KYCi sooritamist on võimalik "tagasi minna", ja nagu eelnevatest punktidest võite ette kujutada, on vastus nüansirikas. Kõige lihtsam viis KYCiga seotud riskide vältimiseks on mitte kasutada seda bitcoinide omandamisel. Vaatleme seda teemat põhjalikumalt järgmises peatükis. Kui aga KYC on juba läbi viidud ja bitcoinid ostetud, siis kas on võimalusi, kuidas sellega seotud riske leevendada?

Kui tegemist on teie tehingute jälgimise riskiga, on lahenduseks coinjoin'i kasutamine. Vaatame seda meetodit üksikasjalikult hiljem kursuse jooksul, kuid te peaksite teadma, et coinjoin võimaldab teil katkestada mündi ajalugu ja vältida selle jälgimist minevikust-olevikust ja olevikust-olevikust. Isegi reguleeritud platvormi kaudu saadud BTC puhul saab selle tehnikaga vältida nende jälgitavust.

Coinjoin ei kõrvalda siiski teist KYC-ga seotud riski: asjaolu, et riiki võidakse teavitada teie bitcoinide omamisest. Isegi kui teie mündid ei ole enam jälgitavad, võib riigil sõltuvalt jurisdiktsioonist olla juurdepääs teie krüptovarade ülekandmise deklaratsioonidele. Kuna see risk ei ole tehniline, vaid administratiivne, ei ole selle kõrvaldamiseks mingeid Bitcoin-spetsiifilisi lahendusi, välja arvatud see, et KYC-ile üldse mitte avatud olla. Ainus seaduslik lähenemisviis selle riski vähendamiseks on müüa reguleeritud platvormidel oma reguleeritud platvormide kaudu omandatud bitcoinid ja osta need seejärel KYC-vabalt tagasi. Müües ja deklareerides ülekande, peaksid ametiasutused nägema, et te ei ole enam nende omanik.

Mis puutub isikuandmete ja isikut tõendavate dokumentide lekkimise ohtu, siis see on Bitcoini väline oht ja selle vältimiseks ei ole tehnilist lahendust. Kui teie andmed on kord avalikustatud, on operatsiooni raske tagasi võtta. Võite proovida oma konto platvormil sulgeda, kuid see ei garanteeri teie KYC-andmete kustutamist, eriti kui identiteedi kontrollimine on sisse ostetud. Teie andmete täieliku kustutamise kontrollimine on võimatu. Seetõttu ei ole võimalik seda riski täielikult ära hoida ja tagada, et seda enam ei eksisteeriks.

Erinevus KYC ja võtme identifitseerimise vahel

Mõnikord kalduvad mõned bitcoin'i kasutajad laiendama terminit "KYC" mis tahes BTC-vahetusele, mis hõlmab ülekannet või krediitkaardimakseid, kuna need vahendid võivad samuti paljastada makse päritolu, täpselt nagu KYC. KYCi ei tohiks siiski segi ajada võtme tuvastamisega. Isiklikult pean tunnistama, et minu arusaam sellest teemast on aja jooksul muutunud.

KYC viitab konkreetselt regulatiivsele menetlusele, mida teatavad ettevõtted rakendavad oma klientide isikusamasuse kontrollimiseks ja registreerimiseks. See on binaarne asi: bitcoinide omandamisel kas teete KYC-i või mitte. Kuid võtme tuvastamine, mis puudutab seost kasutaja identiteedi ühe tahu ja ahelas toimuva tegevuse vahel, ei ole nii binaarne, vaid kujutab endast pigem kontinuumi. Bitcoini omandamise või ülekandmise kontekstis on selline identifitseerimine tõepoolest alati erineval määral võimalik.

Näiteks kui ostate bitcoin'e Šveitsis reguleeritud platvormilt, ei ole KYC nõutav. Siiski võidakse teie võtmed tuvastada, kuna ostu sooritati teie pangakonto kaudu. Siinkohal võivad KYC-ga seotud kaks esimest riski - ahela jälgimise hõlbustamine ja kokkupuude riikliku järelevalvega - ilmneda ka KYC-ita vahetuses. Kui Šveitsi üksus teatab teie riigi ametiasutustele kahtlastest tehingutest, võivad nad teie isiku tuvastamiseks lihtsalt kontrollida ostuks kasutatud pangakontot. Seega on ilma KYC-ta ostmine reguleeritud platvormidel võtme tuvastamise riskiskaalal üsna kõrge.

BTC204

Reguleeritud platvormide vältimine ja P2P omandamismeetodite valimine ei kõrvalda siiski täielikult võtmete tuvastamise riski, vaid üksnes vähendab seda. Võtame näiteks ostu Bisqi või mõne muu P2P-platvormi kaudu. Oma vastaspoolele maksmiseks kasutate tõenäoliselt oma pangakontot. Kui ametiasutused küsitlevad isikut, kellega olete kaubelnud, ja küsivad teie nime, oleme taas riskide 1 ja 2 juures. Kuigi need riskid on palju väiksemad kui KYC-ta ostmisel platvormilt ja isegi väiksemad kui KYC-ga ostmisel, on need siiski vähesel määral olemas.

BTC204

Lõpuks, isegi kui te omandate oma bitcoinid füüsilise rahavahetuse kaudu, ei ole te täiesti anonüümne. Isik, kellega vahetasite, on näinud teie nägu, mis on osa teie identiteedist. Kuigi selle näite puhul on see minimaalne, on siiski võimalus võtme tuvastamiseks.

BTC204

Kokkuvõtteks, kui bitcoinid vahetatakse teiste varade vastu, olgu see siis ostmine riigi valuutas või müük reaalse kauba vastu, on alati olemas mingi võtme identifitseerimise vorm. Sõltuvalt valitud vahetamismeetodist võib see identifitseerimine olla erineva intensiivsusega. Oluline on mitte segi ajada seda identifitseerimist KYCiga, mis on täpselt määratletud regulatiivne protsess. Küll aga on olemas seos KYCi ja identifitseerimisspektri vahel, sest KYC on spektri kõrgemas otsas, kuna see hõlbustab süstemaatiliselt kasutajate võtmete tuvastamist ametiasutuste poolt.

Müügi- ja omandamismeetodid

Pärast eelmise peatüki lugemist võite küsida, kuidas saate osta või müüa bitcoine, ilma et peaksite läbima isikusamasuse kontrollimise protseduuri, et vältida KYC-ga seotud riske. Bitcoiniga kauplemiseks on mitu võimalust.

P2P sularahavahetused

Nagu me nägime, on konfidentsiaalsuse seisukohalt parim meetod endiselt P2P (person-to-person) vahetus koos sularahaarveldusega. See meetod võimaldab teil minimeerida maha jäävaid jälgi ja vähendab oluliselt võtme tuvastamise võimalust, olenemata sellest, kas te ostate või müüte.

BTC204

Sellest hoolimata on isikliku julgeoleku riskid. Peamine oht seisneb selles, et vahetuse ajal saab vastaspool teada, et teil on suur summa raha kas sularahas või bitcoinides. See teave võib äratada pahatahtlike isikute tähelepanu. Tõepoolest, üldiselt on soovitav olla oma bitcoinide valduste suhtes diskreetne. Seda nõuannet võiks kohaldada ka sularaha suhtes. Isiklikult vahetades on aga paratamatu avaldada, et te omate bitcoin'e, ja see võib äratada ebasoovitavat tähelepanu.

BTC204

Selle riski piiramiseks soovitan teil eelistada sularahatehinguid usaldusväärsete isikutega, näiteks pereliikmete või lähedaste sõpradega. Alternatiivina võiksite kaaluda ka [kohalikel Bitcoini kohtumistel] (https://btcmap.org/communities/map) kauplemist, kui olete paar korda seal osalenud. See võimaldab teil teisi osalejaid paremini tundma õppida ja mitte olla füüsiliselt vahetades üksi. Siiski on oluline tunnistada, et P2P-sularahavahetusega kaasnevad olemuslikult riskid teie isiklikule turvalisusele, mida ei ole olemas, kui ostate reguleeritud platvormi ja pangakonto kaudu.

Veelgi enam, sõltuvalt sellest, kus te elate, võib suurte rahasummade transportimine ja säilitamine olla riskantne, olenemata sellest, kas tegemist on bitcoini või sularahaga.

Sularaha vahetamine võib politsei- või muude kontrollide korral kujutada endast ka õiguslikke riske. Kuigi enamikus riikides ei ole piiranguid sularahasumma suhtes, mida võite kaasas kanda, võivad liigsed summad tekitada kahtlusi. Seega olge ettevaatlik, eriti kui peate reisima pikemaid vahemaid, ja vältige liiga paljude suurte tehingute tegemist korraga, et mitte põhjendada suurte summade omamist.

Lõpuks on P2P-ostude teine puudus see, et hind on sageli kõrgem kui reguleeritud platvormidel. Müüjad võtavad sageli hinnalisandit, mis ulatub 1%-st kuni mõnikord üle 10%. Sellel hinnavaheel on mitu põhjust. Esiteks on see P2P-müüjate seas levinud tava, mis on aja jooksul välja kujunenud. Teiseks on müüjatel tehinguga seotud tasud, et saata raha ostjale. Samuti on P2P-müügi puhul suurem varguse oht võrreldes platvormitehingutega, mis õigustab võetud riski hüvitamist. Lõpuks võib lisakulu olla seotud nõudluse ja vahetuse kvaliteediga konfidentsiaalsuse osas. Ostjana on konfidentsiaalsuse suurendamise hind, mis kajastub müüja poolt kohaldatavas hinnalisas. Mõned bitcoin'i kasutajad usuvad ka, et P2P kaudu ostetud BTC hinnalisand peegeldab selle tegelikku hinda, ja väidavad, et reguleeritud platvormidel kehtivad madalamad hinnad tulenevad teie isikuandmete konfidentsiaalsuse kompromissist.

BTC204

P2P-vahetused vahendusplatvormi kaudu

Isikliku turvalisuse seisukohalt on vähem riskantne alternatiiv P2P-vahetuste tegemine ainult internetis, kasutades elektroonilisi makseviise, nagu PayPal, pangaülekanded või Revolut.

BTC204

Selline lähenemine väldib paljusid sularahatehingutega seotud riske. Samas on internetipõhise vahetuse puhul suurem oht, et vastaspool ei suuda täita oma kohustusi. Tõepoolest, kui te füüsilise vahetuse puhul annate raha üle müüjale, kes ei saada teile bitcoine vastutasuks, saate teda kohe vastutusele võtta, sest ta seisab teie ees. Internetis seevastu on sageli võimatu leida kedagi, kes on sinult varastanud.

BTC204

Selle riski vähendamiseks on võimalik kasutada P2P-vahetuseks spetsialiseeritud platvorme. Need platvormid kasutavad konfliktide lahendamise mehhanisme, et kaitsta kahjustatud kasutajaid. Tavaliselt pakuvad nad eskrovisüsteemi, kus bitcoine hoitakse seni, kuni müüja on kinnitanud makse fiat-valuutas.

BTC204

Isikliku turvalisuse seisukohalt on see ostumeetod oluliselt turvalisem kui füüsiline sularaha vahetamine. Kuid nagu eespool mainitud, jätavad veebipõhised P2P-vahetused rohkem jälgi kui füüsiline vahetus, mis võib kahjustada Bitcoini privaatsust. Kasutades veebipõhist fiat-makseviisi, näiteks pangas, paljastate rohkem teavet, mis võib hõlbustada võtme tuvastamist.

BTC204

Taas kord ei soovitaks ma neil platvormidel teha liiga palju suuri tehinguid ühe tehinguga. Jagades oma tehingud osadeks, hajutate vastaspoole varguse riski.

Taas üks P2P-ostude puudus on see, et hind on sageli kõrgem kui reguleeritud platvormidel täheldatud hind. Müüjad võtavad sageli hinnalisandit, mis ulatub 1%-st kuni mõnikord üle 10%. Sellisel hinnavaheel on mitu põhjust. Esiteks on see P2P-müüjate seas levinud tava, mis on aja jooksul välja kujunenud. Teiseks on müüjatel tehinguga seotud tasud, et saata raha ostjale. Samuti on P2P-müügi puhul suurem varguse oht võrreldes platvormitehingutega, mis õigustab võetud riski hüvitamist. Lõpuks võib lisakulu olla seotud nõudluse ja vahetuse kvaliteediga konfidentsiaalsuse osas. Ostjana on konfidentsiaalsuse suurendamise hind, mis kajastub müüja poolt kohaldatavas hinnalisas. Mõned bitcoin'i kasutajad usuvad ka, et P2P kaudu ostetud BTC hinnalisand peegeldab selle tegelikku hinda, ja väidavad, et reguleeritud platvormidel kehtivad madalamad hinnad tulenevad teie isikuandmete konfidentsiaalsuse kompromissist.

BTC204

Mis puutub lahendustesse, siis mina isiklikult olen alati kasutanud Bisq ja olen sellega väga rahul. Nende süsteem on järeleproovitud ja tundub usaldusväärne. Siiski on Bisq saadaval ainult PC-l ja selle kasutajaliides võib olla algajatele liiga keeruline. Teine puudus on see, et Bisq töötab ainult onchain-tehingutega, mis võib muutuda kulukaks ajal, mil Bitcoini tehingutasud on kõrged.

-> Vaata meie Bisqi õpetust.

https://planb.network/tutorials/exchange/peer-to-peer/bisq-fe244bfa-dcc4-4522-8ec7-92223373ed04

Lihtsama variandi jaoks võite proovida [Peach] (https://peachbitcoin.com/), mobiilirakendust, mis ühendab ostjad ja müüjad sisseehitatud konfliktide lahendamise süsteemiga. Protsess on intuitiivsem kui Bisqi oma.

-> Vaata meie õpetust "Virsik".

https://planb.network/tutorials/exchange/peer-to-peer/peach-c6143241-d900-4047-9b73-1caba5e1f874

Teine online-variant on HodlHodl, mis on hästi tuntud platvorm, mis pakub head likviidsust, kuigi ma ei ole seda isiklikult testinud.

-> Vaata meie HodlHodli õpetust.

https://planb.network/tutorials/exchange/peer-to-peer/hodlhodl-d7344cd5-6b18-40f5-8e78-2574a93a3879

Lightning Networkil põhinevate lahenduste jaoks proovige RoboSats ja LNP2PBot. RoboSats on kättesaadav veebisaidi kaudu ja seda on suhteliselt lihtne kasutada. LNP2PBot on ebatüüpilisem, sest see töötab Telegrami sõnumivahetussüsteemi kaudu.

-> Vaata meie RoboSatsi õpetust.

-> Vaata meie LNP2PBot õpetust.

https://planb.network/tutorials/exchange/peer-to-peer/robosats-b60e4f7c-533a-4295-9f6d-5368152e8c06

https://planb.network/tutorials/exchange/peer-to-peer/lnp2pbot-v2-e6bcb210-610b-487d-970c-7cce85273e3c

BTC204

Reguleeritud platvormid ilma KYC-ta

Sõltuvalt riigist, kus te elate, võib teil olla juurdepääs reguleeritud platvormidele, mis ei nõua bitcoinide ostmiseks või müümiseks KYC-menetlust. Näiteks Šveitsis saate kasutada selliseid platvorme nagu Relai ja MtPelerin.

-> Vaata meie õpetust Relai.

https://planb.network/tutorials/exchange/centralized/relai-v2-30a9671d-e407-459d-9203-4c3eae15b30e

Nagu nägime eelmises peatükis, säästab seda tüüpi platvorm teid KYC-menetlustega seotud riskidest, kuid need kujutavad endast suuremat riski võtmete tuvastamisel. Bitcoini konfidentsiaalsuse seisukohast pakuvad need platvormid seega paremat kaitset kui KYC-ga ostumeetodid, kuid nad jäävad vähem atraktiivseks kui P2P-vahetused.

Isikliku turvalisuse seisukohast on nende platvormide kasutamine siiski palju vähem riskantne kui P2P-vahetusportaalide kasutamine. Samuti on neid sageli lihtsam kasutada kui P2P-platvorme.

Sularahaautomaadid

Teine võimalus bitcoinide ostmiseks või müümiseks ilma KYC-ta on krüptoraha sularahaautomaadid. Minul isiklikult ei ole kunagi olnud võimalust seda lahendust katsetada, kuna minu riigis ei ole neid olemas. Kuid see meetod võib olla väga huvitav, sõltuvalt sellest, kus te elate.

BTC204

Probleem sularahaautomaatidega on see, et mõnes riigis on need kas keelatud või teistes rangelt reguleeritud. Kui sularahaautomaat nõuab isikusamasuse kontrollimise menetlust, siis on see avatud samadele riskidele, mis on omane KYC-reguleeritud platvormidele. Teisest küljest, kui sularahaautomaat lubab väikeste summade puhul teha tehinguid ilma isikusamasuse kontrollimiseta, siis võib selle kasutamine pakkuda konfidentsiaalsuse taset, mis on võrreldav P2P-sularahavahetusega, vältides samas enamikku selle tüüpi vahetusega seotud riskidest.

Pangaautomaatide peamine puudus on nende sageli kõrged valuutavahetustasud, mis ulatuvad mõnest protsendist kuni mõnikord 15% vahetatavast summast.

Kinkekaardid

Lõpetuseks tahtsin teile tutvustada ka lahendust, mis sobib hästi neile, kes soovivad oma bitcoin'eid kasutada igapäevaselt ostude tegemiseks, mitte müüa neid fiat-valuutade vastu.

Parim viis BTC kulutamiseks on muidugi kasutada Bitcoini või Lightning Networki otse kauba või teenuse ostmiseks. Paljudes riikides on siiski veel piiratud arv kaupmehi, kes aktsepteerivad Bitcoini. Praktiline alternatiiv on kasutada kinkekaarte.

Mitmed platvormid, mis ei nõua KYC-menetlusi, pakuvad võimalust vahetada bitcoin'e kinkekaartide vastu, mida saab kasutada suuremates jaemüügiettevõtetes. Nende hulka kuuluvad CoinsBee, The Bitcoin Company ja Bitrefill. Need platvormid muudavad bitcoinide igapäevase kasutamise palju lihtsamaks, andes teile juurdepääsu paljudele toodetele ja teenustele, ilma et peaksite neid fiat-valuutaks konverteerima.

https://planb.network/tutorials/exchange/centralized/bitrefill-8c588412-1bfc-465b-9bca-e647a647fbc1

BTC204

Muud omandamismeetodid

Muud viisid bitcoinide omandamiseks, kaitstes samal ajal oma privaatsust, on muidugi ka kaevandamine. Sati kaevandamise alustamiseks ei pea te oma identiteeti paljastama; leidke lihtsalt kehtiv töötõend ja esitage see võrku. Kui otsustate koondkaevandamise kasuks, nõuavad mõned koondid mingisugust identifitseerimist, näiteks KYC, teised aga mitte.

Teine meetod on töötada bitcoinide vastu. See omandamisviis võib olla huvitav, kuid nõutav identifitseerimise tase varieerub oluliselt sõltuvalt asjaoludest.

*Selle peatüki kirjutamiseks kasutasin @pivi___ poolt Plan ₿ Network'is antud BTC205 koolituskursust (hetkel ainult prantsuse keeles)

Konsolideerimine, UTXO juhtimine ja CIOH

Üks keerulisemaid aspekte isevalitseja portfelli juhtimisel on konsolideerimine. Kas peaksite konsolideerima? Milleks on mõtet? Millist UTXO suurust tuleks järgida? Millised on kompromissid konfidentsiaalsuse osas? Seda vaatleme selles jaotises.

Mis on konsolideerimine?

Bitcoin toimib nagu oksjoniturg, kus kaevurid eelistavad madalaimaid tasusid pakkuvaid tehinguid. Igal plokil on siiski maksimaalne kaal, mis piirab tehingute arvu, mida saab lisada. Kuna plokki toodetakse keskmiselt iga 10 minuti järel, on igas plokis olemasolev ruum piiratud ressurss.

Kaevandajad, kelle tegevus tekitab märkimisväärseid kulusid elektri, põhivara ja hoolduse osas, püüavad loomulikult maksimeerida oma kasumlikkust. Seetõttu kipuvad nad eelistama tehinguid, mis toovad võrreldes nende kaaluga kõige suuremaid tasusid.

Kõik Bitcoini tehingud ei ole sama kaaluga. Need, millel on rohkem sisendeid ja väljundeid, kaaluvad rohkem. Näiteks kujutame ette 2 tehingut:

BTC204

Selles näites, kuigi tehing B pakub suuremat kogutasu, eelistavad kaevandajad tehingut A, kuna see pakub paremat tasu ja kaalu suhet. Siin on iga tehingu arvutused, väljendatud satsides virtuaalse baidi kohta (sat/vB):

TXA : 1994 / 141 = 14 sats/vB
TXB : 2640 / 220 = 12 sats / vB

See tähendab, et iga kaaluühiku kohta pakub tehing A rohkem kulusid kui tehing B, kuigi tehing B pakub absoluutarvudes rohkem kulusid.

BTC204

Seetõttu on kasutaja jaoks alati huvitavam tarbida oma tehingutes võimalikult vähe sisendit. Siiski tuleb tarbida piisavalt palju, et rahuldada väljundmakse. Portfelli haldamisel on vaja piisavalt suuri UTXOsid.

Konsolideerimise põhimõte seisneb just selles, et kasutada ära perioodid, mil Bitcoini tasud on madalad, et ühendada oma väiksemad UTXOd üheks suuremaks. Sel viisil, kui tasud Bitcoinis tõusevad, saate teha tehinguid minimaalsete sisenditega ja seega kulutada absoluutarvudes vähem tasusid. Eesmärk on seega ennetada kõrgete tasude perioodidel tehtavaid kohustuslikke tehinguid.

BTC204

Lisaks tehingukulude kokkuhoiule aitab UTXOde konsolideerimine vältida "tolmu" tekkimist. Tolm" viitab UTXOdele, mille väärtus satsides on nii madal, et see ei ole piisav, et katta nende kulutamiseks vajalikke tehingukulusid. See muudab nende UTXOde kasutamise majanduslikult ebamõistlikuks nii kaua, kui tehingukulud on kõrged. Oma UTXOde ennetava koondamisega takistate nende tolmuks muutumist, tagades, et kõik teie rahalised vahendid jäävad kasutuskõlblikuks.

Milline on teie UTXOde minimaalne suurus?

Minult küsitakse mõnikord, milline on UTXO soovitatav miinimumväärtus. Kahjuks ei ole universaalset vastust, sest see sõltub teie eelistustest ja tasuturu tingimustest. Siin on siiski valem, mis võib aidata teil määrata teie vajadustele sobiva piirmäära:

\frac {P \times F}T = M

Kus:

Oletame, et te kavatsete katta tasud standardse SegWit-tehingu eest, millel on 1 sisend ja 2 väljundit, kaaludes 141 vB. Kui te maandate kuni 800 sats/vB ja olete valmis kulutama maksimaalselt kuni 12% UTXO väärtusest tasudeks, siis oleks arvutus järgmine:

\frac{141 \times 800}{0.12} = 940\ 000

Selle näite puhul oleks seega mõistlik hoida UTXOde minimaalne väärtus oma portfellis 940 000 sati.

Konsolideerimine ja CIOH

Üks kõige laialdasemalt kasutatav heuristika plokiahela analüüsis on CIOH (Common Input Ownership Heuristic), mis eeldab, et kõik Bitcoini tehingu sisendid kuuluvad samale üksusele. Konsolideerimise põhimõte seisnebki selles, et sisendina tarbitakse mitu UTXOd ja väljundina luuakse üks UTXO. Konsolideerimine võimaldab seega kohaldada ICOH-d.

BTC204

Praktikas tähendab see, et väline vaatleja võib järeldada, et kõik konsolideeritud UTXOd kuuluvad tõenäoliselt samale isikule ja et ka genereeritud unikaalne väljund kuulub talle. Selline olukord võib ohustada teie konfidentsiaalsust, kui te seostate erinevaid tehingulugusid. Oletame näiteks, et ma konsolideerin 3 UTXOd, mis on saadud P2P kaudu, ühe UTXOga, mis on saadud KYCi nõudva platvormi kaudu :

BTC204

Seda tehes saab iga üksus, kellel on juurdepääs vahetusplatvormi andmetele, sealhulgas potentsiaalselt valitsusasutused, tuvastada, et ma oman muudes kogustes BTC-d. Varem ei olnud need UTXOd otseselt minu identiteediga seotud; nüüd on see nii. Veelgi enam, see paljastab kõikidele allikatele, et mul on teatud kogus bitcoine.

TÜKide haldamisel satuvad majanduslikud kaalutlused, mis ajendavad konsolideerimist kulude vähendamiseks, vastuollu hea privaatsustavaga, mis soovitab mitte kunagi TÜKe ühendada. Seega sõltub valik ökonoomsuse ja konfidentsiaalsuse vahel iga kasutaja prioriteetidest.

Kui saate vältida konsolideerimist, säilitades samal ajal märkimisväärse UTXO, on see ideaalne. Selleks optimeerige oma omandamismeetodeid. Kui ostate oma bitcoine DCA-s, püüdke oma ühekordseid oste võimalikult palju hajutada, et konsolideerida väärtus vähemate UTXO-de peale. Lihtsam on hallata 1000 euro suurust ühekordset ostu iga kahe kuu tagant, kui 120 euro suurust ostu iga nädal. See minimeerib loodud UTXOde arvu ja lihtsustab teie portfelli haldamist, säilitades samal ajal teie konfidentsiaalsuse.

Kui teil on vaja oma bitcoine konsolideerida, eelistage kõigepealt samast allikast pärit UTXOde konsolideerimist. Näiteks 10 UTXO ühendamine ühelt platvormilt mõjutab teie konfidentsiaalsust vähem kui 5 UTXO ühendamine platvormilt A ja 5 UTXO platvormilt B. Kui erinevate allikate konsolideerimine on vältimatu, püüdke neid eraldada vastavalt nende omadustele. Näiteks koondage KYC kaudu saadud UTXOd ühte tehingusse ja P2P kaudu saadud UTXOd teise tehingusse.

Igal juhul ärge unustage, et igasugune konsolideerimine toob paratamatult kaasa konfidentsiaalsuse kaotuse. Seega hinnake hoolikalt selle toimingu vajadust ja võimalikku mõju teie privaatsusele, võttes arvesse CIOH-i.

Muud parimad tavad

Vaatame veel mõningaid parimaid tavasid Bitcoini privaatsuse optimeerimiseks.

Täielik sõlm

Oma bitcoinide omamine iseenda eestkostes on suurepärane, kuid omaenda täieliku sõlme kasutamine on veelgi parem! Siin on selgitatud, miks oma sõlme omamine on Bitcoini täiesti suveräänseks kasutamiseks ülioluline:

Lisaks nendele eelistele parandab täieliku sõlme kasutamine ka teie tehingute edastamise konfidentsiaalsust. Kui te väljastate tehingu, luuakse ja allkirjastatakse see kõigepealt teie rahakoti kaudu. Selle edastamiseks Bitcoini võrgus peab seda teadma vähemalt üks sõlm. Kasutades oma sõlme, on teil otsene kontroll selle levitamise üle, mis tugevdab teie konfidentsiaalsust ja piirab andmete lekkimise ohtu.

BTC204

Kui teil ei ole oma Bitcoini sõlme, olete sunnitud kasutama kolmanda osapoole sõlme, näiteks seda, mida pakub teie rahakoti tarkvara pakkuja. Lisaks tehingute edastamisele vajab teie rahakott juurdepääsu mitmesugusele teabele, näiteks pooleliolevatele tehingutele, teie aadressidega seotud saldodele ja teie tehingute kinnituste arvule. Kõigile nendele andmetele juurdepääsuks peate tegema päringu sõlme.

BTC204

Peamine risk, kui te ei kasuta oma Bitcoini sõlme, on see, et kolmanda osapoole sõlme operaator võib jälgida teie tegevust plokiahelas või isegi jagada seda teavet teiste üksustega. Selle riski piiramiseks on vahepealne lahendus kasutada rahakoti tarkvara, mis maskeerib teie ühendused Tori kaudu. See võib vähendada teie andmete paljastamist. Optimaalne lahendus on siiski oma Bitcoini sõlme omamine ja selle kasutamine oma tehingute edastamiseks. Loomulikult peate olema ettevaatlik, et teie sõlme kaudu ei lekiks mingit teavet, kuid see on teine teema, mida vaatleme hilisemates osades.

Lisaks teie privaatsuse ilmselgele eelisele tagab teie enda tervikliku sõlme olemasolu ka andmete tõepärasuse plokiahelas, kaitseb teid tsensuuri eest ja võimaldab teil aktiivselt osaleda Bitcoini juhtimises. Kasutades oma sõlme, panustate oma majandusliku kaalu valitud ahelasse, mis on oluline kogukonnas toimuvate konfliktide ajal, nagu näiteks aastatel 2015-2017 toimunud plokisõja ajal. Kahvli korral võib kolmanda osapoole sõlme kasutamine viia selleni, et toetate ahelat, mida te ei soovi eelistada, sest sõlme operaator teeb teie eest valiku.

Nagu näete, on konfidentsiaalsuse ja individuaalse suveräänsuse huvides hädavajalik käivitada ja kasutada oma täielikku sõlme!

Petturlikud analüüsiheuristikud

Laiemalt on oluline mõista heuristikat, millest rääkisime eelmises punktis, et neid paremini vältida või petta. Mitmete parimate tavade omaksvõtmine võib olla kasulik, isegi kui need ei ole hädavajalikud. Need pakuvad täiendavat kaitsekihti, mis võib Bitcoini kasutamisel olla oluline konfidentsiaalsuse säilitamisel.

Esimene nõuanne, mida ma võiksin anda, on sulanduda kõige tihedamasse rahvamassi. Bitcoini puhul tähendab see kõige laialdasemalt kasutatavate skripti mallide kasutamist. Näiteks P2WSH-skriptid, mida kasutatakse sageli SegWit V0 multisig-konfiguratsioonide jaoks, on väga haruldased. Need ei võimalda teil varjuda suures anonüümsuse komplektis. Sama kehtib ka vanemate mudelite, näiteks P2PKH või P2SH kohta. Kuigi need on UTXO komplektis laialdaselt esindatud, kasutatakse neid üha vähem uute tehingute puhul.

Üldiselt on targem valida kõige uuem skriptimisstandard, tingimusel, et see on piisavalt omaks võetud. Seega, kui 2022. aastal oleksin soovitanud mitte kasutada P2TR-i (Taproot) selle vähese vastuvõtmise tõttu, siis 2024. aastal soovitaksin valida selle asemel seda tüüpi skripti või selle puudumisel SegWit V0 skripti, kuna P2TR-i kasutavate tehingute arv hakkab moodustama väga märkimisväärse osa.

BTC204

Allikas : txstats.com

Teine nõuanne konfidentsiaalsuse säilitamiseks on püüda mööda minna tehingu sisemisest heuristikast. Näiteks makse tegemisel võite püüda vältida ümmarguse summaga väljundi loomist, sest see võib anda märku, et teine väljund kujutab endast välisvaluutat. Kui teil on vaja saata sõbrale 100 k sati, kaaluge selle heuristika vältimiseks veidi suurema summa ülekandmist. Samamoodi püüdke mitte luua välisvaluuta väljundeid, mis on tehtud makse suhtes ebaproportsionaalselt suured, sest see võib samuti näidata, milline väljund kujutab endast välisvaluutat.

BTC204

Lõpuks, kui teete regulaarselt Bitcoin-tehinguid, veenduge, et te ei edasta neid alati samal ajal. Hajutades oma tehingute edastamist üle päeva ja nädala, väldite võimalust, et välised vaatlejad saaksid tuvastada ajavööndipõhise ajalise mustri, mis võiks nende analüüsi tugevdada.

Lisaks kõigile nendele headele tavadele, mida tuleb igapäevaselt rakendada, on veelgi tõhusamaid meetodeid, kuidas oma bitcoinide jälgitavust täielikult rikkuda. Nende hulka kuuluvad muidugi coinjoin-tehingud, mida vaatleme põhjalikult järgmises jaotises.

Coinjoin-tehingute mõistmine

Mis on coinjoin-tehing?

Olles uurinud privaatsuse kaitse põhialuseid, vaatleme nüüd keerukamaid tehnikaid, mille eesmärk on kaitsta aktiivselt oma konfidentsiaalsust, eelkõige bitcoin'i ajaloo lahtiseletamise kaudu. Järgmises osas vaatleme terve hulga väikseid tehnikaid, kuid kõigepealt tahaksin teile rääkida coinjoinist.

Coinjoini peetakse sageli kõige tõhusamaks meetodiks Bitcoini kasutajate privaatsuse kaitsmisel. Kuid mis on täpselt coinjoin-tehing? Uurime seda välja.

Coinjoin'i põhiprintsiibid

Coinjoin on meetod bitcoini jälgimise lõhkumiseks plokiahelas. Selle aluseks on koostöötehing, millel on eriline samanimeline struktuur: coinjoin-tehing.

Nagu me nägime selle kursuse esimestes osades, on Bitcoini tehingud kõigile kasutajatele teada nende sõlme kaudu. Seetõttu on lihtne kontrollida iga mündi elektroonilise allkirja ahelat ja jälgida selle ajalugu. See tähendab, et kõik kasutajad saavad proovida analüüsida teiste kasutajate tehinguid. Selle tulemusena on anonüümsus tehingu tasandil võimatu. Anonüümsus säilib aga individuaalse identifitseerimise tasandil. Erinevalt tavapärasest pangandussüsteemist, kus iga konto on seotud isikliku identiteediga, on Bitcoinis raha seotud krüptograafiliste võtmepaaridega (või skriptidega), mis pakub kasutajatele krüptograafiliste identifikaatorite taga pseudonüümsust.

BTC204

Bitcoini konfidentsiaalsust õõnestab see, kui välised vaatlejad saavad seostada konkreetseid UTXOsid tuvastatud kasutajatega. Kui see seos on loodud, on võimalik jälgida nende tehinguid ja analüüsida nende Bitcoini ajalugu. Coinjoin on just UTXOde jälgitavuse murdmiseks välja töötatud tehnika, et pakkuda Bitcoini kasutajatele teatavat konfidentsiaalsuse taset tehingu tasandil.

Coinjoins tugevdab Bitcoini kasutajate konfidentsiaalsust, muutes ahela analüüsi keerulisemaks väliste vaatlejate jaoks. Nende struktuur võimaldab ühendada mitu eri kasutajate münti üheks tehinguks, mis hägustab piire ja muudab sisend- ja väljundaadresside vaheliste seoste kindlaksmääramise keeruliseks.

Oluline on mõista, et coinjoin-tehingu eesmärk on murda mündi ajalugu. See tehnika ei anna püsivat anonüümsust ega blokeeri lõplikult bitcoini jälgimist, vastupidiselt sellele, mida te võiksite arvata. Coinjoin'i eesmärk on murda ajalugu ainult hetkel, mil coinjoin-tehing tehakse. Enne ja pärast seda toimingut on mündi suhtes siiski endiselt samad riskid konfidentsiaalsuse osas.

BTC204

Kuidas toimivad ühisliited?

Coinjoin'i põhimõte põhineb koostööl: mitu kasutajat, kes soovivad oma bitcoine segada, annavad samasse tehingusse sisendiks identsed summad. Seejärel jaotatakse need summad igale kasutajale võrdse väärtusega väljunditena ümber.

BTC204

Tehingu lõpus muutub võimatuks konkreetse väljundi seostamine sisendina tuntud kasutajaga. Sisendite ja väljundite vahel puudub otsene seos, mis katkestab kasutajate ja nende UTXOde vahelise seose, samuti iga osa ajaloo.

BTC204

Võtame Alice'i näite. Ta soovib saata oma õele Eve'ile sünnipäevaks umbes 100 000 sati. Alice ei taha aga, et Eve saaks jälgida tema tehingulugu, sest ta ei taha avaldada, kui palju bitcoine tal on või kuidas ta need sai. Selleks otsustab Alice murda oma UTXO ajaloo coinjoin-tehinguga. Ta korraldab koos Bobi, Charlesi, Davidi ja Frankiga ühise tehingu:

BTC204 BTC204 BTC204 BTC204

Käesoleval juhul on Alice kasutanud coinjoin-tehnikat, et suurendada konfidentsiaalsust seoses tagasiulatuva analüüsiga. Tegelikult kaitseb Alice end Eve'i võimaliku analüüsi eest, kes alustaks konkreetsest tehingust ja töötaks tagasi läbi UTXO ajaloo. Sellist kaitset praegusest minevikku ulatuva analüüsi eest nimetatakse tagasiulatuvaks anonüümseks. Vaatleme seda mõistet üksikasjalikumalt käesoleva osa viimastes peatükkides.

Samas pakub coinjoin ka võimalust tugevdada konfidentsiaalsust minevikust tänasesse analüüsi, mida nimetatakse prospektiivseks anonsetiks. Tuleme tagasi meie näite juurde, kus Alice saatis Eve'ile 98 000 sati tema sünnipäevaks, kuid rollid on vahetatud. Kujutame nüüd ette, et see on Eve, kes muretseb oma privaatsuse pärast. Tõepoolest, Alice'il võib tekkida kiusatus jälgida münti, mille ta Eve'ile saatis, et sellest teavet välja võtta. Eve võib selle UTXO, mille ta just sai, hästi konsolideerida kõigi oma teiste UTXOdega, mis võib Alice'ile paljastada, kui palju bitcoin'e tal oma rahakotis on. Selle vältimiseks võib Eve murda ka selle mündi ajaloo, mille ta just sai:

BTC204 BTC204 BTC204

Esimeses näites nägime, kuidas coinjoin võib kaitsta ruumi privaatsust seoses selle minevikuga, ja teises näites, kuidas see võib kindlustada ruumi ajalugu ka seoses selle tulevikuga. Seepärast mainisin, et coinjoin'i tuleks vaadelda kui ühekordset sündmust, mis segmenteerib osa ajalugu mõlemas suunas:

BTC204

Mikser, koosliitmine, segisti... Mis vahe on?

Coinjoneid kirjeldatakse mõnikord kui "miksereid", terminit, mille mõned bitcoin'id tagasi lükkavad, kuna kardavad, et seda võidakse segi ajada custodial mixers'iga. Usun siiski, et see kartus on põhjendamatu, sest matemaatilises kontekstis kehastab coinjoin just segamise mõistet.

Üldises matemaatikas tähendab segunemine dünaamilise süsteemi omadust, mille puhul teatava aja möödudes võivad teoreetiliselt kõik algruumi osad seguneda mis tahes muu osaga. Segunemine tähendab, et osakese asukoht või süsteemi olek areneb nii, et selle tulevane jaotus ei sõltu selle algjaotusest, saavutades seega seisundi, kus algse seisundi omadused on ühtlaselt jaotunud kogu süsteemi ruumis. Just see juhtub bitcoin'idega seotud mündiühenduses. Seega on minu arvates coinjoin tõepoolest mündi segamise meetod.

BTC204

Teisest küljest on oluline eristada coinjoin'i ja shufflers'i. Shuffler on teenus, kuhu kasutajad saadavad oma bitcoine segamiseks. Need teenused olid 2010. aastatel populaarsed, kuid nende kasutamine on vähenenud kahe peamise puuduse tõttu võrreldes coinjoiniga:

BTC204

Tänapäeva kasutajad eelistavad seega coinjoin'i, kuna see võimaldab neil säilitada täieliku kontrolli oma raha üle kogu protsessi vältel. Coinjoinis osalejatel ei ole ohtu, et teised osapooled nende bitcoinid varastavad. Vaatame järgmises peatükis, kuidas see kõik võimalik on.

Zerolink ja chaumian coinjoins

Mündiühendusest tulenev privaatsus on teenitud grupi suurusega, kuhu meie tükk on peidetud. See tähendab, et tuleb leida võimalikult palju osalejaid. On täiesti võimalik luua coinjoin käsitsi, ise leitud kasutajatega, kuid see on keeruline protsess ja sellega ei võida suuri anonüüme.

Seetõttu on Bitcoini kohta välja töötatud coinjoin-koordinaatorid. Nende roll on panna erinevad kasutajad omavahel kontakti ja edastada ühistehingu lõpuleviimiseks vajalikku teavet.

BTC204

Kuid kuidas saame tagada, et koordinaatoril ei ole kunagi kasutajate bitcoinid käes, ja vaatamata sellele, et ta on inimene, kes ehitab coinjoin-tehingut, kuidas saame tagada, et ta ei saa kasutajate sisendeid ja väljundeid ühendada, mis võib kujutada endast konfidentsiaalsuse leket?

Chaumi pimedad allkirjad

Kaasaegsed coinjoin rakendused kasutavad David Chaumi pimesi allkirju, et vältida teabe lekkimist. Vaatame lühidalt, kuidas need pimedad allkirjad töötavad.

Chaumi pimedad allkirjad on digitaalallkirja vorm, mille puhul allkirja andja ei tea allkirjastatava sõnumi sisu. Kuid allkirja saab seejärel kontrollida originaalsõnumi suhtes. Selle tehnika töötas 1983. aastal välja krüptograaf David Chaum.

BTC204

Võtame näiteks ettevõtte, kes soovib autentida konfidentsiaalset dokumenti, näiteks lepingut, paljastamata selle sisu. Ettevõte rakendab maskeerimisprotsessi, mis muudab originaaldokumenti krüptograafiliselt ümberpööratavalt. See muudetud dokument saadetakse sertifitseerimisasutusele, kes annab pimesi allkirja, teadmata selle sisu. Pärast allkirjastatud dokumendi kättesaamist teeb ettevõte allkirja lahti. Tulemuseks on originaaldokument, mis on kinnitatud asutuse allkirjaga, ilma et asutus oleks kunagi näinud originaalsisu.

Chaumi pimedad allkirjad võimaldavad seega tõendada dokumendi autentsust, ilma et oleks teada selle sisu, tagades seega nii kasutaja andmete konfidentsiaalsuse kui ka allkirjastatud dokumendi terviklikkuse.

Chaumian coinjoins

Niinimetatud "Chaumian" coinjoins ühendab Tor ja David Chaumi pimedad allkirjad, et koordinaator ei saaks teada, milline väljund millisele kasutajale kuulub.

Coinjoin-tehingute loomise protsess hõlmab 3 peamist etappi: sisendi registreerimine, väljundi registreerimine ja tehingu allkirjastamine. Vaatleme seda protsessi ühe coinjoin'i osaleja Alice'i näitel. Kõik teised osalejad järgivad samu samu etappe nagu Alice, igaüks neist omal käel.

**Samm 1: Sisendregistreerimine

BTC204 BTC204

Samm 2: väljundite registreerimine

BTC204 BTC204

Samm 3: Tehingu allkirjastamine

BTC204 BTC204

Selles süsteemis ei ole koordinaatoril võimalik sisendit konkreetse väljundiga siduda. Veelgi enam, ta ei saa osalejate rahalisi vahendeid omastada, sest tal ei ole kunagi juurdepääsu nende UTXOde avamiseks vajalikele privaatvõtmetele. Kogu protsessi jooksul, kuni 3. etapi lõpuni, ei ole tal ka juurdepääsu allkirjadele. Kui Alice ja teised osalejad allkirjastavad üldise tehingu, ei saa koordinaator pärast selle kontrollimist, et kõik on õige, enam tehingut, sealhulgas väljundeid, muuta ilma seda kehtetuks muutmata. See takistab koordinaatoril bitcoinide varastamist.

Lõpuks soovib coinjoin'i kasutaja oma väljundit tehingus registreerides samasuguseid tagatisi nagu valimistel hääletav kodanik. Nende tegevuste avaliku ja erasektori aspektide vahel on kaksikmõju. Ühelt poolt on see, mida tahetakse hoida privaatsena: valija puhul ei taha ta, et tema hääletussedel oleks seotud tema identiteediga; coinjoin-kasutajal ei taha, et tema väljundit seostataks tema sisendiga. Kui koordinaatoril või mõnel muul osapoolel õnnestub tõepoolest luua seos sisendi ja väljundi vahel, kaotab coinjoin igasuguse huvi. Nagu eespool selgitatud, peab coinjoin toimima katkestusena mündi ajaloos. See peatumine toimub just seetõttu, et coinjoin-tehingus ei ole võimalik seostada konkreetset sisendit konkreetse väljundiga (prospektiivne anonset) ja vastupidi (retrospektiivne anonset).

Teisest küljest on olemas avalik aspekt: valija tahab olla kindel, et tema hääletussedel on hääletuskasti lisatud; samamoodi tahab coinjoin'i kasutaja olla kindel, et tema väljund on lisatud coinjoin'i tehingusse. Coinjoin'i osalejad peavad tõepoolest tingimata saama enne tehingu allkirjastamist kontrollida oma väljundi olemasolu, sest vastasel juhul võib koordinaator raha varastada.

Just need 2 avalikku ja privaatset aspekti, mida võimaldab David Chaumi pimedate allkirjade kasutamine, tagavad Chaumian coinjoins'is osalejatele, et nende bitcoine ei varastata ja et nende raha ei ole võimalik jälgida.

Kes leiutas mündiühenduse kontseptsiooni?

On raske öelda kindlalt, kes esimesena tutvustas Bitcoinile coinjoin'i ideed ja kes tuli välja ideega kasutada David Chaumi pimedat allkirja selles kontekstis. Sageli arvatakse, et see oli Gregory Maxwell, kes mainis seda esimesena ühes sõnumis BitcoinTalkis 2013. aastal :

*"Chaumi pimedate allkirjade kasutamine: Kasutajad logivad sisse ja annavad sisendid (ja vahetavad aadressid) ning krüptograafiliselt pimendatud versiooni aadressist, millele nad soovivad saata oma privaatseid osi; server allkirjastab märgid ja saadab need tagasi. Kasutajad ühenduvad uuesti anonüümselt, maskeerivad oma väljundaadressid lahti ja saadavad need serverile tagasi. Server näeb, et kõik väljundid on tema poolt allkirjastatud ja et järelikult pärinevad kõik väljundid kehtivatelt osalejatelt. Hiljem ühenduvad inimesed uuesti ja logivad sisse Maxwell, G. (2013, 22. august). CoinJoin: Bitcoini privaatsus reaalses maailmas. BitcoinTalk Forum. https://bitcointalk.org/index.php?topic=279249.0

BTC204

Siiski on ka teisi varasemaid viiteid, nii Chaumi allkirjade kui segunemise osa kohta, aga ka coinjoinide kohta. 2011. aasta juunis tutvustas Duncan Townsend BitcoinTalkis segajat, mis kasutab Chaumi allkirju üsna sarnaselt tänapäevastele Chaumi coinjoinidele.

Samast teemast leiame hashcoini sõnumi vastuseks Duncan Townsendile, et parandada oma segajat. Selles sõnumis kirjeldatud protsess on täpselt see, mida coinjoins endast kujutab. Samasuguse süsteemi mainimist võib leida ka Alex Mizrahi sõnumist 2012. aastal, kui ta nõustas Tenebrixi, ühe esimese altcoini loojaid, mis oli aluseks hilisemale Litecoini loomisele. Isegi termin "coinjoin" ise ei ole väidetavalt Greg Maxwelli poolt välja mõeldud, vaid pärineb Peter Toddi ideest.

BTC204

Zerolink

Zerolink on terviklik seguprotokoll, mis sisaldab Chaumian coinjoins'i ja erinevaid strateegiaid kasutajate anonüümsuse kaitsmiseks mitme ahelanalüüsi vormi eest, eelkõige minimeerides portfellihaldusega seotud vigu. Seda protokolli tutvustasid 2017. aastal nopara73 ja TDevD.

BTC204

Nagu nimigi ütleb, on Zerolinki põhimõte luua coinjoin-tehinguid, mis tagavad, et sisendite ja väljundite vahelisi seoseid ei ole võimalik jälgida. See saavutatakse tagades, et kõik väljundid on täiesti identsed.

BTC204

Zerolinki oluline ennetav meede on hoida segamata UTXOd täielikult lahus segatud UTXOdest, kasutades selleks eraldi krüptograafilisi võtmekomplekte või isegi eraldi portfelle. See eristab "pre-mix" rahakoti, mis on mõeldud osadele enne segamist, "post-mix" rahakotist, mis on reserveeritud segatud osadele.

BTC204

TÜKide range eraldamine aitab eelkõige vältida juhuslikke seoseid segatud TÜKi ja segamata TÜKi vahel. Kui sellised seosed tekivad, tühistatakse segatud UTXOs coinjoin'i tõhusus, ilma et kasutaja sellest teadlik oleks, ohustades seega UTXO konfidentsiaalsust, mille ajalugu ta arvas, et on rikkunud. Sellised seosed võivad tekkida kas aadressi taaskasutamise kaudu segatud UTXO kindlustamisel segamata UTXOga või CIOH (Common-Input-Ownership Heuristic) kohaldamise kaudu, kui kasutaja kasutab segatud ja segamata UTXOsid sama tehingu sisendina. Segamiseelse ja -järgse portfelli eraldamisega väldime selliseid juhuslikke ühendusi ja kaitseme kasutajat tahtmatute vigade eest.

BTC204

Selline eraldamine annab ka võimaluse kohaldada portfelli tarkvara tasandil erinevaid reegleid segunemiseelsete ja segunemiseelsete portfellide vahel. Näiteks võib tarkvara segamisjärgse portfelli puhul keelata UTXOde ühendamise sisenditesse, et vältida CIOHi kohaldamist, mis ohustaks kasutaja anonset. Samuti on võimalik standardiseerida skriptide ja tehinguvalikute kasutamist (näiteks RBF-aruandlus), et vältida rahakoti sõrmejälgede abil tuvastamist.

Praegu on Whirlpool ainus coinjoin rakendamine, mis kohaldab rangelt Zerolinki protokolli. Järgmises peatükis vaatleme erinevaid olemasolevaid coinjoini rakendusi ning nende eeliseid ja puudusi.

Coinjoin rakendused

*2024. aastal oleme tunnistajaks olulistele muudatustele tööriistades, mis on kättesaadavad kasutajatele, kes soovivad Bitcoinis coinjoneid teha. Oleme praegu pöördepunktis ja coinjoin-turul on toimumas suured ümberkorraldused. Seda peatükki uuendatakse kindlasti aja jooksul

Hetkel on Bitcoinis peamiselt 3 erinevat coinjoin rakendust:

Kõigi nende rakenduste eesmärk on murda UTXOde ajalugu coinjoin-tehingute kaudu. Nende mehhanismid erinevad siiski märkimisväärselt. Seetõttu on oluline mõista, kuidas iga neist töötab, et saaksite valida oma vajadustele kõige paremini sobivaima võimaluse.

JoinMarket

  1. aastal Adam Gibsoni ja Chris Belcheri poolt asutatud JoinMarket eristub selgelt teistest coinjoini rakendustest tänu kasutajate ühendamise ainulaadsele mudelile. Süsteem põhineb P2P-vahetusturul, kus mõned kasutajad, nn tegijad, teevad oma bitcoinid segamiseks kättesaadavaks, teised, nn võtjad, kasutavad seda raha tasu eest coinjoinide tegemiseks.
BTC204

Selle mudeli puhul teevad "tegijad" oma bitcoinid kättesaadavaks "võtjatele" ja saavad oma teenuse eest tasu. Võtjad omakorda maksavad selle eest, et nad saaksid kasutada tegijate bitcoin'eid oma coinjoin-tehingute tegemiseks. Teenustasu varieerub sõltuvalt täidetavast rollist: "Tegijad" koguvad tasu likviidsuse pakkumise eest, samas kui "võtjad" maksavad tasu. Turg toimib vabalt, ilma kasutustingimusteta.

Üks JoinMarketi peamisi puudusi on selle kasutamise keerukus, mis eeldab selle tõhusaks kasutamiseks teatavat mugavust terminalidega. Kuigi see keerukus ei ole kogenud kasutajale takistuseks, võib see piirata juurdepääsu üldsusele. Hiljuti kasutusele võetud veebiliides nimega JAM on siiski muutnud selle kasutamise veidi lihtsamaks.

BTC204

Allikas : JAM

Tehnilised takistused on siiski endiselt suur takistus. Coinjoini ökosüsteemis, kus konfidentsiaalsust tugevdab osalejate arv, mõjutab igasugune ligipääsetavust vähendav piirang otseselt kättesaadavat likviidsust, mis on kombinatsiooni tõhususe seisukohalt oluline tegur. Bitcoin, mis on juba nišš finantstehingute valdkonnas, näeb coinjoinide kasutamist alamniššina ning JoinMarket esindab sellest veelgi spetsialiseeritumat osa, mis seetõttu piirab selle potentsiaali kasutajate anonüümide suurendamisel.

Hoolimata oma uuenduslikust P2P-ühendusmudelist coinjoineritele, on JoinMarketil mõned olulised puudused, eriti tehingustruktuuri osas. Erinevalt teistest rakendustest, nagu Whirlpool, ei taga JoinMarket täiuslikku võrdsust väljundite vahel ning on võimalik jälgida deterministlikke seoseid sisendite ja väljundite vahel. Lisaks puuduvad vahendid, mis takistaksid juba omavahel segatud osade uuesti segamist, mis võib ohustada kasutajate soovitud konfidentsiaalsust.

Lõpuks, kuigi JoinMarket'i kontseptsioon on huvitav, eriti neile, kes on huvitatud dünaamilisest likviidsusturust, muudavad selle struktuurilised puudused ja tehniline keerukus selle minu arvates vähem huvitavaks nii algajatele kui ka ekspertidele, kes otsivad coinjoin'i rakendamist.

Wabisabi

Wabisabi on veel üks coinjoini rakendus, mille lähenemisviis tsentraliseerib tehingu koordineerimise. Selle mudeli mõtlesid Ádám Ficsór (nopara73), Yuval Kogman, Lucas Ontivero ja István András Seres välja 2021. aastal ning see integreeriti Wasabi 2.0 tarkvarasse järgmisel aastal. Wabisabi on just 2018. aastal käivitatud Wasabi tarkvara mündiühendusmudeli edasiarendus.

BTC204
  1. aastate lõpu poole võttis Wasabi kasutusele Whirlpoolist radikaalselt erineva coinjoin-tehingute struktuuri. Wasabi kasutas väga suuri coinjoin-tehinguid, mis hõlmasid kümneid osalejaid, et suurendada osalejate anonset'i. Seevastu Whirlpool valis mitu väikest tehingut, mis võimaldas iga tsükliga anonsettide eksponentsiaalset kasvu.

Ka vahetuse haldamise meetodid erinesid kahest rakendusest. Whirlpooliga välistati ja isoleeriti välisvaluuta UTXOdest enne coinjoin'i tsüklit tänu TX0-le, mida ma selgitan lähemalt järgmises peatükis. Seevastu Wasabi puhul moodustas välisvaluuta ühe coinjoin-tehingu väljunditest, säilitades deterministlikke seoseid teatavate sisendite ja väljundite vahel.

BTC204

Wabisabi versioon 2.0 on kohandanud oma lähenemist coinjoins'ile, et see vastaks Whirlpooli omale. Kuigi coinjoin-tehingud on endiselt väga suured, on nüüd võimalik Whirlpooli mudelit järgides mitu järjestikust tsüklit aheldada. Erilist tähelepanu on pööratud ka vahetuskursi haldamisele: erinevalt Wasabi 1.0 versioonist, kus vahetuskurss oli otseselt seotud kasutaja sisendiga, püütakse Wabisabis jagada vahetuskurss mitmeks väikeseks summaks, mis on jagatud kõigile osalejatele võrdseteks nimiväärtusteks.

Illustreerime seda lihtsustatud näite abil, mis hõlmab vaid 2 kasutajat: Alice soovib segada 115 000 satelliiti ja Bob 210 000 satelliiti. Kui jätta tasud kõrvale, siis Wasabi 1.0 puhul oleks coinjoin-tehing tekitanud 3 väljundit 100 000 sati ulatuses, lisaks 1 vahetus 15 000 sati ulatuses Alice'ile ja 1 vahetus 10 000 sati ulatuses Bobile. Vahetuse väljundid oleksid endiselt seotud sisenditega:

BTC204

Wabisabi puhul oleks sama tehingu tulemuseks olnud 3 väljundit 100 000 sati ja 5 väljundit 5000 sati, mis hajutab vahetuse nii, et seda ei saa otseselt seostada konkreetse sisendiga:

BTC204

Mina isiklikult leian, et Wabisabi valuutahaldus kujutab endast mitmeid riske, mis võivad ohustada selle tõhusust konfidentsiaalsuse osas:

Erinevalt Whirlpoolist, mis rakendab ZeroLink-protokolli, mis tagab segieelsete ja segamisjärgsete UTXOde range eraldatuse, ei kasuta Wabisabi sellist ranget eraldatust. Mõne Wasabi kliendi puhul on esinenud ka probleeme aadresside korduvkasutamisega, mis on kasutajale ilmselgelt väga kahjulik.

Wasabi versioonis 2.0 on rakendatud uus coinjoin-tasupoliitika. Nüüdsest alates on koordinaatoritasud 0,3% üle 0,01 bitcoini suuruste UTXOde puhul, samas kui väiksemate UTXOde puhul pakutakse neid tasusid täies mahus. Lisaks on nende väiksemate UTXOde puhul remixid tasuta, kuigi kaevandamistasud jäävad kasutaja poolt tasumisele kõigi tehingute, sealhulgas remixide eest.

See on vastuolus Whirlpooli poliitikaga, mille kohaselt jäävad tasud fikseeritud, sõltumata saadud anonsetite suurusest. Wasabi 2.0 puhul loobutakse küll väikeste UTXOde puhul koordinaatoritasudest, kuid kasutaja peab siiski maksma kaevandamistasu kõigi tehingute, sealhulgas remixide eest.

Kui ma neid ridu kirjutan, on Wabisabi kasutamine hiljutiste sündmuste tõttu muutunud oluliselt keerulisemaks. Pärast Samourai rahakoti asutajate vahistamist teatas Wasabi arendamist rahastav ja haldav ettevõte zkSNACKs, et selle mündiühenduste koordinaatorteenus lõpetatakse 1. juunil 2024. aastal. See koordinaator, mis oli Wasabil vaikimisi loodud, oli vastutav suurema osa likviidsuse eest.

Selle põhikoordinaatori tegevuse lõpetamisega peavad kasutajad nüüd ühenduma uute, sõltumatute koordinaatoritega. See muudatus tekitab mitmeid probleeme: ühelt poolt ei pruugi uutel koordinaatoritel olla piisavat likviidsust, mis vähendab koosliitumise tõhusust konfidentsiaalsuse seisukohast. Teisest küljest on oht sattuda pahatahtliku koordinaatori vastu. Selline olukord lisab olulisi uusi riske neile, kes soovivad Wabisabi kasutada.

Lisaks tehnilistele küsimustele tõstatab Wasabi taga oleva ettevõtte zkSNACKs otsus kasutada stringianalüüsi ettevõtte teenuseid coinjoin'i osalejate filtreerimiseks tõsiseid eetilisi ja strateegilisi küsimusi. Esialgne idee oli takistada kurjategijate poolt Wasabil coinjoini kasutamist, mis võib tunduda õiguspärane. Siiski tekitab see paradoksi: maksta tasu koordinaatorile, kelle peamine ülesanne on kasutajate konfidentsiaalsuse tugevdamine, ainult selleks, et ta rahastaks ettevõtet, mille eesmärk on kahjustada sama konfidentsiaalsust.

Veelgi murettekitavam on filtreerimise põhimõte, mis vastandub radikaalselt Bitcoini filosoofiale pakkuda avatud, tsenseerimata finantssüsteemi. Kuigi võib tunduda õigustatud soov välistada kuritegelik tegevus, võib selline filtreerimine mõjutada ka isikuid, kelle tegevus võib olla moraalselt õigustatud või sotsiaalselt kasulik, ehkki see on teatud kontekstis ebaseaduslikuks liigitatud. Edward Snowdeni näide illustreerib seda dihhotoomiat suurepäraselt: mõned valitsused peavad teda oma paljastuste tõttu kurjategijaks, teised aga näevad teda kui informaatorit, kes tegutses avalikes huvides. See keerukus rõhutab filtreerimise võimalikku ohtu, mis võib hoolimata heast eesmärgist kahjustada õiguspärase kasutaja õigusi ja turvalisust. Oleksin võinud mainida ka aktiviste ja ajakirjanikke, keda teatud autoritaarsete režiimide all tagakiusatakse.

Nagu te nüüdseks olete juba aru saanud, eelistan Bitcoini mündiühenduste puhul kindlasti Whirlpool-mudelit. See süsteem paistab silma oma ranguse poolest ja pakub suurepäraseid konfidentsiaalsuse garantiisid. Samuti on see ainus, mis pakub matemaatilises kontekstis täiuslikuks peetavat kombinatsiooni. Minu arvates esindab see mudel Bitcoini mündiliitude tulevikku. Kutsun teid üles seda mudelit järgmises peatükis põhjalikumalt uurima.

Kuidas Whirlpool töötab

Whirlpooli eristab teistest coinjoin meetoditest "ZeroLink" tehingute kasutamine, mis tagab, et kõigi sisendite ja väljundite vahel ei ole rangelt mingit võimalikku tehnilist seost. See täiuslik kombinatsioon saavutatakse struktuuri abil, kus iga osaleja panustab ühesuguse koguse sisendi (välja arvatud kaevandamistasud), tekitades täiesti võrdse koguse väljundid.

Selline piirav lähenemine sisenditele annab Whirlpooli coinjoin-tehingutele ainulaadse omaduse: sisendite ja väljundite vaheliste deterministlike seoste täielik puudumine. Teisisõnu on igal väljundil võrdne tõenäosus, et see omistatakse mis tahes osalejale, võrreldes kõigi teiste tehingu väljunditega.

BTC204

Kuidas Whirlpool töötab

Esialgu oli igas Whirlpool coinjoin'is osalejate arv piiratud 5 osalejaga, kellest 2 olid uued osalejad ja 3 remikserid (selgitame neid mõisteid hiljem). Kuid 2023. aastal täheldatud tehingutasude suurenemine ahelas ajendas Samourai meeskondi oma mudelit ümber mõtlema, et parandada konfidentsiaalsust, vähendades samal ajal kulusid. Seega, võttes arvesse tasude turuolukorda ja osalejate arvu, võib koordinaator nüüd korraldada 6, 7 või 8 osalejat hõlmavaid coinjoine'e. Neid täiustatud seansse nimetatakse "Surge Cycles". Oluline on märkida, et olenemata konfiguratsioonist on Whirlpool coinjoinides alati ainult 2 uut osalejat.

Seega iseloomustab Whirlpooli tehinguid identne arv sisendeid ja väljundeid, mida saab :

BTC204 BTC204 BTC204 BTC204

Whirlpooli mudel põhineb väikestel coinjoin-tehingutel. Erinevalt Wabisabist ja JoinMarketist, kus anonüümide robustsus põhineb osalejate mahul ühes tsüklis (või mõnes tsüklis), tugineb Whirlpool mitme väikese tsükli järjestusele.

Selle mudeli puhul maksavad kasutajad tasu ainult siis, kui nad esimest korda basseiniga liituvad, mis võimaldab neil ilma lisakuludeta osaleda paljudes remixides. Uued osalejad maksavad kaevandamistasusid remixeritele.

Iga täiendava coinjoin'iga, milles tükike osaleb, ning ka tema varasemate kaaslaste puhul kasvab anonsettide arv eksponentsiaalselt. Eesmärgiks on kasutada ära neid tasuta remixe, mis iga kord, kui nad toimuvad, aitavad kaasa iga segatud tükiga seotud anonsettide tiheduse tugevdamisele.

BTC204

Whirlpool on projekteeritud kahte olulist nõuet silmas pidades:

Samourai rahakoti arendajad lähtusid Whirlpooli kujundamisel nendest vajadustest, mistõttu nad piirasid osalejate arvu tsükli kohta piiratud arvuga. Liiga vähe osalejaid oleks ohustanud mündiühenduste tõhusust, vähendades oluliselt ühe tsükli jooksul genereeritud anonüümide arvu, samas kui liiga palju osalejaid oleks tekitanud haldusprobleeme mobiilirakendustes ja takistanud tsükli kulgemist.

Lõpuks, Whirlpoolis ei ole vaja suurt arvu osalejaid ühe coinjoini kohta, kuna anonsetid tehakse mitme coinjoini tsükli kogunemisel. Kõige olulisem põhimõte on siinkohal kõigi osalejate UTXOde homogeensus, sest see tagab täiusliku segunemise ja seega täieliku kasu segunemis- ja remixing-tsüklitest.

Coinjoin basseinid ja tasud

Et need mitmekordsed tsüklid suurendaksid segatud osade anonüümsust, on vaja teatavat raamistikku, et piirata kasutatavate UTXOde koguseid. Whirlpool määratleb erinevad basseinid.

Pooli kujutab endast rühma kasutajaid, kes soovivad koos segada ja kes lepivad kokku UTXOde koguses, et optimeerida ühisliitmise protsessi, säilitades samal ajal täiusliku osade homogeensuse. Iga koondis määrab kindlaks fikseeritud UTXO-koguse, millest kasutaja peab osalemiseks kinni pidama. Seega tuleb Whirlpooliga coinjoinide tegemiseks valida bassein. Praegu on saadaval järgmised basseinid:

Kui te sisenete oma bitcoin'idega basseini, jagatakse need nii, et tekivad UTXOd, mis on täiesti homogeensed teiste basseini osalejate omadega. Igal basseinil on maksimumpiir, nii et seda piiri ületavate summade puhul peate kas tegema kaks eraldi sissekannet samasse basseini või liikuma teise, suurema summaga basseini:

| Pool (bitcoin) | Maksimaalne summa kirje kohta (bitcoin) |

|----------------|--------------------------------------|

| 0,5 | 35 |

| 0,05 | 3,5 |

| 0,01 | 0,7 |

| 0,001 | 0,025 |

UTXO loetakse koondisse kuuluvaks siis, kui see on valmis ühendusse integreeritavaks. See ei tähenda siiski, et kasutaja kaotab selle valduse. Nagu me nägime käesoleva peatüki esimestes peatükkides, säilitate te erinevate segamistsüklite kaudu täieliku kontrolli oma võtmete ja seega ka bitcoinide üle. See ongi see, mis eristab coinjoin-tehnikat teistest tsentraliseeritud segamistehnikatest.

Coinjoin-pooliga liitumiseks peate maksma teenustasu ja kaevandamistasu. Teenustasu on iga basseini puhul fikseeritud ja selle eesmärk on tasustada Whirlpooli arendamise ja hoolduse eest vastutavaid meeskondi.

Whirlpooli kasutamise eest tuleb maksta teenustasu ainult üks kord basseiniga liitumisel. Kui olete liitunud, võite osaleda piiramatul arvul remixides ilma lisatasuta. Siin on esitatud iga basseini praegused fikseeritud tasud:

| Pool (bitcoin) | Osavõtutasu (bitcoin) |

|----------------|---------------------------------|

| 0,5 | 0,0175 |

| 0,05 | 0,00175 |

| 0,01 | 0,0005 (50 000 sats) |

| 0,001 | 0,00005 (5000 sats) |

Need tasud toimivad sisuliselt nagu pilet valitud basseini, olenemata sellest, kui palju te panete coinjoin'i. Seega, olenemata sellest, kas sisenete 0,01 basseini täpselt 0,01 BTCga või 0,5 BTCga, jäävad tasud absoluutarvudes samaks.

Enne Whirlpool-ühenduste jätkamist saab kasutaja valida 2 strateegia vahel:

Üldiselt ei ole soovitav mitu segatud UTXO-d pärast coinjoin'i tsüklit ühendada, kuna see võib ohustada omandatud konfidentsiaalsust, eriti ühise sisendi omandiõiguse heuristiku (CIOH: Common-Input-Ownership-Heuristic) tõttu. Sellest tulenevalt võib olla mõistlik valida suurem kogum, isegi kui see tähendab, et tuleb maksta rohkem, et vältida liiga paljude väikese väärtusega UTXOde tekkimist. Kasutaja peab neid kompromisse hindama, et valida talle sobiv bassein.

Lisaks teenustasule tuleb arvesse võtta ka iga Bitcoini tehingu kaevandamistasu. Whirlpooli kasutajana peate maksma kaevandamistasu nii ettevalmistustehingu (Tx0) kui ka esimese mündiühingu eest. Kõik edasised remissioonid on tänu Whirlpooli mudelile, mis põhineb uute sisenejate maksmisel, tasuta.

Tegelikult on igas Whirlpooli ühisliitumises 2 kasutajat sisendite hulgas uued sisenejad. Ülejäänud sisendid pärinevad remixeritelt. Selle tulemusena kannavad kõigi tehingus osalejate kaevandamiskulud need 2 uut sisenejat, kes saavad seejärel ka tasuta remiksid:

BTC204

Tänu sellele tasusüsteemile eristub Whirlpool tõesti teistest coinjoini rakendustest, kuna UTXOde anonsetid ei ole proportsionaalsed kasutaja poolt makstud hinnaga. Selle tulemusel on võimalik saavutada märkimisväärselt suurem anonüümsus, makstes ainult basseini sisenemistasu ja kaevandamistasu 2 tehingu eest (Tx0 ja algsegu).

Oluline on märkida, et kasutaja peab ka maksma kaevandamistasusid, et võtta oma UTXO-d välja basseinist pärast mitme coinjoini lõpetamist, kui ta ei ole valinud võimalust "mix to", mis annab välise aadressi, mis saab raha otse coinjoinist, ilma täiendava tehinguta.

HD portfelli kontod

Whirlpooli kaudu coinjoini loomiseks peab rahakott looma mitu eraldi kontot. See on ZeroLink-protokolli põhimõte. Konto moodustab HD (Hierarhical Deterministic) portfelli kontekstis teistest täielikult eraldatud osa, kusjuures see eraldamine toimub portfellihierarhia kolmanda sügavuse tasemel, st xpub tasemel.

BTC204

HD rahakott võib teoreetiliselt tuletada kuni 2^(31) erinevaid kontosid. Algne konto, mida kasutatakse vaikimisi kõigis Bitcoini rahakottides, vastab 0'indeksile.

Whirlpoolile kohandatud portfellide puhul kasutatakse 4 kontot, et vastata ZeroLink protsessi vajadustele:

Igaüks neist kontodest täidab ühisliitmise protsessis teatud funktsiooni, mida me uurime järgmistes osades.

Kõik need kontod on seotud ühe seemnega, mis võimaldab kasutajal taastada juurdepääsu kõikidele oma bitcoinidele, kasutades oma taastamislauset ja vajaduse korral oma paroollauset. Taastamisoperatsiooni ajal tuleb aga tarkvara teavitada erinevatest kasutatud kontoindeksitest.

Vaatleme nende kontode raames Whirlpooli coinjoini erinevaid etappe.

TX0

Mis tahes Whirlpooli coinjoini lähtepunkt on deposiitkonto. See on konto, mida kasutate automaatselt uue Bitcoini rahakoti loomisel. Sellele kontole tuleb krediteerida bitcoinid, mida soovite segada.

Tx0" on Whirlpooli segamisprotsessi esimene samm. Selle eesmärk on valmistada ette ja võrdsustada UTXOd koosliitmiseks, jagades need valitud basseini kogusele vastavateks ühikuteks, et tagada homogeenne segamine. Selliselt ühtlustatud UTXOd saadetakse seejärel eelsegamise kontole. Mis puutub vahe, mis ei saa koondada, siis see eraldatakse spetsiaalsele kontole: paha pank (või "doksiline vahetus").

Seda esialgset "Tx0" tehingut kasutatakse ka coinjoin'i koordinaatorile makstava teenustasu maksmiseks. Erinevalt järgmistest sammudest ei ole see tehing koostööpõhine, seega peab kasutaja kandma kõik kaevandamise kulud:

BTC204

Selles "TX0" tehingu näites jagatakse meie deposiidikontolt saadud 372 000 sati sisend mitmeks UTXO väljundiks, mis jagunevad järgmiselt:

Näiteks siin on tõeline Whirlpool Tx0 (mitte minu): edef60744f539483d868caff49d4848e5cc6e805d6cdc8d0f9bdbbaedcb5fc46

BTC204

Doksilised muutused

Ülejääk, mida ei ole võimalik koondada, mis vastab siinkohal 40 000 satsile, suunatakse ümber paha pangakontole, mida nimetatakse ka "doksiliseks vahetuseks", et tagada range eraldatus teistest portfelli kuuluvatest UTXOdest.

See UTXO on ohtlik kasutaja konfidentsiaalsusele, sest mitte ainult ei ole see endiselt seotud oma minevikuga ja seega võimalik, et ka omaniku identiteediga, vaid see on märgitud ka kasutajale kuuluvaks, kes on teinud coinjoini.

BTC204

Kui see UTXO ühendatakse segaväljunditega, kaotab viimane kogu konfidentsiaalsuse, mis on saadud coinjoin'i tsüklite käigus, eelkõige CIOH (Common-Input-Ownership-Heuristic) tõttu. Kui see liidetakse muude doksiliste muudatustega, on oht, et kasutaja kaotab konfidentsiaalsuse, sest see ühendab erinevaid coinjoin'i tsükli kirjeid. Seetõttu tuleks sellesse suhtuda ettevaatlikult. Me käsitleme nende UTXOs doxxic'ide haldamist üksikasjalikumalt selle peatüki viimases osas.

Esialgne segu

Pärast Tx0 saadetakse tasandatud UTXOd meie portfelli premix kontole, mis on valmis oma esimesse mündiühendustsüklisse, mida tuntakse ka kui "esialgset segu". Kui, nagu meie näites, Tx0 genereerib mitu UTXOd segamiseks, integreeritakse igaüks neist eraldi algsesse segusse.

Nende esimeste segude lõpus on premix konto tühi, samas kui meie mündid, mis on maksnud kaevandamistasud selle esimese mündiühingu eest, kohandatakse täpselt valitud basseini poolt määratud summale. Meie näites on meie esialgne UTXOs 108,000 sats vähenenud täpselt 100,000 satsni.

BTC204

Remiksid

Pärast esialgset segamist kantakse UTXOd üle postmix kontole. Sellele kontole kogutakse juba segatud UTXOd ja need, mis ootavad uuesti segamist. Kui Whirlpooli klient on aktiivne, on postmix-kontol asuvad UTXOd automaatselt kättesaadavad remiximiseks ja need valitakse juhuslikult välja, et osaleda nendes uutes tsüklites.

Meeldetuletuseks, et remixid on seejärel 100% tasuta: ei nõuta täiendavaid teenustasusid ega kaevandamistasusid. UTXOde hoidmine postmix kontol hoiab seega nende väärtuse puutumatuna ja parandab samal ajal nende anonsetid. Seepärast on oluline, et need mündid saaksid osaleda mitmes coinjoin'i tsüklis. See ei maksa teile absoluutselt midagi ja suurendab nende anonüümsuse taset.

Kui te otsustate kulutada segatud UTXOsid, saate seda teha otse sellelt postmix kontolt. Soovitame hoida segatud UTXOd sellel kontol, et saada kasu tasuta remixidest ja vältida nende lahkumist Whirlpooli ringkonnast, mis võib vähendada nende konfidentsiaalsust.

Kuidas te haldate oma postmixe?

Pärast coinjoin'i tsüklite käivitamist on parim strateegia hoida oma UTXO-d postmix kontol, oodates tulevast kasutamist. Soovitav on isegi lasta neil lõputult remixida, kuni teil on vaja neid kulutada.

Mõned kasutajad võivad kaaluda oma segatud bitcoinide ülekandmist riistvaralise rahakoti poolt turvatud rahakotti. See on võimalik, kuid oluline on järgida täpselt Samourai Walleti soovitusi, et mitte ohustada omandatud konfidentsiaalsust.

Kõige tavalisem viga on UTXOde ühendamine. CIOH (Common-Input-Ownership-Heuristic) vältimiseks tuleb vältida segatud UTXOde kombineerimist segamata UTXOdega samas tehingus. See nõuab oma UTXOde hoolikat haldamist oma portfelli sees, eelkõige märgistamise osas.

BTC204

Ettevaatlik tuleb olla ka kombineeritud UTXOde konsolideerimisel. Mõõdukas konsolideerimine on võimalik, kui teie segatud UTXO-del on märkimisväärne anonset, kuid see vähendab paratamatult teie osade konfidentsiaalsust. Veenduge, et konsolideerimine ei ole liiga ulatuslik ega toimu pärast ebapiisavat arvu taasühendamisi, mis võib tekitada teie UTXOde vahel tuletatavaid seoseid enne ja pärast koosühendamistsükleid. Nende manipulatsioonide kahtluse korral on parim tava mitte konsolideerida segunemisjärgseid UTXOsid, vaid kanda need ükshaaval oma riistvaralise rahakoti jaoks üle, luues iga kord uue tühja aadressi. Veel kord, ärge unustage märgistada iga saadud UTXO.

Samuti ei ole soovitatav kanda oma postmix UTXO-d rahakotti üle, kasutades skripte, mida ei kasutata laialdaselt. Näiteks kui sisestate Whirlpooli multisigiga rahakotist, kasutades P2WSH skripte, on vähe tõenäoline, et teid segatakse teiste kasutajatega, kellel oli algselt sama tüüpi rahakott. Kui te segate oma postmixe uuesti sellesse samasse multisig rahakotti, väheneb teie segatud bitcoinide konfidentsiaalsuse tase oluliselt. Peale skriptide on palju muid rahakoti sõrmejälgi, mis võivad teile trikke teha.

Nagu iga Bitcoini tehingu puhul, on ka siin oluline mitte kasutada vastuvõtvat aadressi uuesti. Iga uus tehing tuleb vastu võtta uuele, tühjale aadressile.

Kõige lihtsam ja turvalisem lahendus on jätta oma segatud UTXOd oma postmix kontole, lastes neil uuesti segada ja puudutades neid ainult kulutamiseks. Samurai ja Sparrow rahakottidel on lisakaitsed kõigi nende ahelanalüüsi riskide vastu. Need kaitsed aitavad teil vältida vigu.

Kuidas hallata toksilisi vahetusi?

Järgmisena peate olema ettevaatlik oma doxxic-vahetuse, vahetuse, mis ei pääsenud coinjoin-pool'i, haldamise suhtes. Need mürgised UTXOd, mis tulenevad Whirlpooli kasutamisest, kujutavad endast ohtu teie privaatsusele, kuna need loovad teie ja coinjoin'i kasutaja vahel seose. Seetõttu on hädavajalik neid hoolikalt hallata ja mitte ühendada neid teiste UTXOdega, eriti segatud UTXOdega.

Siin on mõned strateegiad nende kasutamiseks:

Kuidas ma kasutan Whirlpooli?

Pärast Samourai rahakoti asutajate vahistamist ja nende serverite konfiskeerimist 24. aprillil 2024 ei tööta Whirlpool tööriist enam, isegi nende jaoks, kellel on oma Dojo. Varem oli see saadaval Samourai Walletis ja Sparrow Walletis.

BTC204

Siiski on võimalik, et see vahend võetakse lähinädalatel uuesti kasutusele, sõltuvalt katsete tulemustest, või käivitatakse uuesti muul viisil. Igal juhul ei usu ma, et Bitcoin coinjoin turg jääb kaua ilma pakkumiseta, sest nõudlus on olemas. Veelgi enam, kuna Whirlpooli mudel on konfidentsiaalsuse poolest kõige arenenum, on see kindlasti tulevikus teiste rakenduste jaoks valitud mudel.

Jälgime seda juhtumit ja sellega seotud vahendite arengut tähelepanelikult. Võite olla kindel, et uuendame seda koolitust, kui uus teave muutub kättesaadavaks.

Järgmises peatükis saame teada, mis on "anonsetid", kuidas neid näitajaid arvutatakse ja kuidas need aitavad meil hinnata coinjoin'i tsüklite tõhusust.

https://planb.network/tutorials/privacy/on-chain/coinjoin-sparrow-wallet-84def86d-faf5-4589-807a-83be60720c8b

https://planb.network/tutorials/privacy/on-chain/coinjoin-samourai-wallet-e566803d-ab3f-4d98-9136-5462009262ef

https://planb.network/tutorials/privacy/on-chain/coinjoin-dojo-c4b20263-5b30-4c74-ae59-dc8d0f8715c2

Anonüümsuse komplektid

Olles uurinud, kuidas coinjoinid toimivad ja millised on tõhusa segamisega seotud probleemid, selgitame nüüd välja, kuidas nende tõhusust mõõta. Kuidas saame kindlaks teha, kas koosliitmine on olnud tõhus ja millise anonüümsuse astme on osa omandanud? Seda hakkame selles peatükis välja selgitama anonüümsuse komplektide ehk "anonüümsete komplektide" abil.

Meenutus coinjoin'i kasulikkusest

Coinjoin'i kasulikkus seisneb selle võimes tekitada usutavat eitatavust, paigutades oma osa eristamatute osade rühma. Selle tegevuse eesmärk on katkestada jälgitavuse seosed nii minevikust olevikku kui ka olevikust minevikku.

Teisisõnu, analüütik, kes teab teie algset tehingut (Tx0) mündiühendustsüklite sisenemisel, ei tohiks olla võimeline kindlalt tuvastama teie UTXO-d remix-tsüklite väljumisel (tsükli sisenemise ja tsükli väljumise analüüs).

BTC204

Seevastu analüütik, kes teab teie UTXO-d mündiühendustsüklite väljumisel, ei tohi olla võimeline määrama algset tehingut tsüklite sisenemisel (tsüklist väljumise ja tsükli sisenemise analüüs).

BTC204

Et hinnata, kui raske on analüütikul siduda minevikku olevikuga ja vastupidi, peame kvantifitseerima nende homogeensete osade rühmade suurust, mille sees teie osa on peidetud. See meede ütleb meile, kui paljude analüüside puhul on sama tõenäosus. Niisiis, kui õige analüüs upub 3 teise võrdse tõenäosusega analüüsi hulka, on teie varjamise tase väga madal. Teisalt, kui õige analüüs leitakse 20 000 võrdse tõenäosusega analüüsi hulgast, on teie osa väga hästi varjatud. Nende rühmade suurus kujutab endast näitajaid, mida tuntakse kui "anonsetid".

Anonüümide mõistmine

Anonüümseid andmeid kasutatakse näitajatena, et hinnata konkreetse UTXO konfidentsiaalsuse astet. Täpsemalt öeldes mõõdavad nad eristamatute UTXOde arvu uuritavat osa sisaldavas kogumis. Nõue homogeense UTXOde kogumi kohta tähendab, et anonsetid arvutatakse tavaliselt coinjoini tsüklite alusel. Nende näitajate kasutamine on eriti oluline Whirlpool-koinjointide puhul, kuna need on ühetaolised.

Vajaduse korral võib kasutada anonset'i, et hinnata koosliidete kvaliteeti. Suur anonset tähendab kõrget anonüümsuse taset, kuna homogeenses kogumis on raske eristada konkreetset UTXO-d.

on olemas 2 tüüpi anonüümide tüüpe:

Tulevane anonset

Ettepoole suunatud anonset näitab selle rühma suurust, mille hulgas tsükli lõpus uuritud UTXO on varjatud, arvestades UTXO-d alguses, st selles rühmas esinevate eristamatute osade arvu. Selle näitaja nimetus on "tulevikumeetrika".

See näitaja mõõdab ruumi konfidentsiaalsuse vastupidavust minevikust olevikku (sisend-väljund) analüüsile.

BTC204

Seda mõõdikut kasutatakse selleks, et hinnata, mil määral on teie UTXO kaitstud katsete eest rekonstrueerida selle ajalugu alates selle sisenemiskohast kuni selle väljumiskohani coinjoin-protsessis.

Näiteks kui teie tehing on osalenud esimeses mündiühendustsüklis ja kaks järgmist langevat tsüklit on lõpetatud, siis on teie mündi eeldatav anonset 13 :

BTC204

Kujutame näiteks ette, et meie mündi anonset on mündiühendustsükli alguses "86,871". Praktiliselt tähendab see, et see on peidetud 86,871 eristamatute osade vahele. Välise vaatleja jaoks, kes tunneb seda münti mündiühendustsükli alguses ja üritab jälgida selle väljumist, seisab ta silmitsi 86,871 võimaliku UTXOga, millest igaühel on identne tõenäosus olla see münt, mida ta otsib.

BTC204

Tagasiulatuv anonset

Tagasiulatuv anonset näitab konkreetse osa võimalike allikate arvu, teades UTXO-d tsükli lõpus. See näitaja mõõdab osa konfidentsiaalsuse vastupidavust praegusest minevikku (väljundist sisendisse) analüüsile, st kui raske on analüütikul teie osa päritolu tagasi jälgida, enne coinjoini tsüklit. Selle näitaja nimetus on "tagasiulatuv anonset" ehk "tagasiulatuv metrika".

BTC204

Teades teie UTXO-d tsüklitest väljumisel, määrab retrospektiivne anonset kindlaks võimalike Tx0 tehingute arvu, mis võisid moodustada teie sisenemise mündiühendustsüklitesse. Allpool esitatud joonisel vastab see kõigi oranžide kuplite summale.

BTC204

Kujutame näiteks ette, et meie coinjoin osa on tagasiulatuvalt anonsetiga 42,185. Praktiliselt tähendab see, et selle UTXO jaoks on 42,185 potentsiaalset allikat. Kui väline vaatleja tuvastab selle mündi tsüklite lõpus ja püüab jälgida selle päritolu, siis seisab ta silmitsi 42,185 võimaliku allikaga, mis kõik on võrdse tõenäosusega otsitava päritoluga.

BTC204

Kuidas arvutatakse anonsetid?

Väikeste ansamblite puhul on võimalik anonüümide arvutamine käsitsi, kasutades plokkide otsingut. Suuremate anonsettide puhul muutub aga hädavajalikuks spetsiaalse tööriista kasutamine. Minu teada on ainus tarkvara, mis on võimeline seda ülesannet täitma, Whirlpool Stats Tool, mis on Samourai ja OXT meeskondade poolt välja töötatud Python-tööriist. Kahjuks on see tööriist praegu pärast Samourai asutajate vahistamist ja OXT katkestamist, mida kasutati plokiahela andmete väljavõtmiseks, kasutusest väljas.

BTC204

Nagu me selles peatükis nägime, saab anonüüme arvutada ainult siis, kui ühisliidete struktuuris on teatav homogeensus. Järgmises peatükis saame teada, kuidas seda homogeensust Bitcoini tehingu puhul kvantifitseerida, olgu see siis coinjoin või traditsioonilisem tehing.

https://planb.network/tutorials/privacy/analysis/wst-anonsets-0354b793-c301-48af-af75-f87569756375

Entroopia

Nagu me nägime käesolevas punktis coinjoinide kohta, mängib UTXOde homogeensus sisend- ja väljundis olulist rolli Bitcoini tehingu konfidentsiaalsuse parandamisel. See parameeter loob plokiahela analüüsile usutava eitatavuse. Selle homogeensuse mõõtmiseks saab kasutada mitmeid meetodeid, kuid minu arvates on üks tõhusamaid OXT ja Samourai rahakoti meeskondade poolt välja töötatud Boltzmanni tööriista pakutavate näitajate ja eelkõige tehingu entroopia kasutamine. Seda vaatleme selles peatükis üksikasjalikult.

Erinevalt anonsettidest, mida arvutatakse tehingute kogumi põhjal, keskenduvad siin esitatud näitajad ühele tehingule, olgu see siis coinjoin või traditsiooniline tehing.

Tõlgenduste arv

Esimene näitaja, mida saab Bitcoini tehingu puhul jälgida, on võimalike tõlgenduste koguarv, mis seisavad silmitsi välise vaatleja analüüsiga. Võttes arvesse tehinguga seotud UTXOde väärtusi, näitab see näitaja, kui palju on viise, kuidas sisendeid saab väljunditega seostada. Teisisõnu, see määrab kindlaks võimalike tõlgenduste arvu, mida tehing võib bitcoin-voogudes esile kutsuda seda analüüsiva välise vaatleja seisukohast.

Näiteks lihtsal maksetehingul, millel on 1 sisend ja 2 väljundit, on ainult üks tõlgendus, nimelt et sisend #0 rahastab väljund #0 ja väljund #1. Muid tõlgendusvõimalusi ei ole:

BTC204

Teisest küljest on Whirlpool 5x5 nurgas 1,496$ võimalikke kombinatsioone:

BTC204

Whirlpool Surge Cycle 8x8 coinjoinil on 9\ 934\ 563$ võimalikud tõlgendused:

BTC204

Entroopia

Bitcoini tehingu tõlgenduste arvu põhjal saame arvutada selle entroopiat.

Krüptograafia ja teabe üldises kontekstis on entroopia andmeallikaga või juhusliku protsessiga seotud ebakindluse või ettearvamatuse kvantitatiivne mõõt. Teisisõnu, entroopia on viis mõõta, kui raske on mingi teabeosa ennustada või ära arvata.

Konkreetselt plokiahela analüüsi kontekstis on entroopia ka Shannoni entropiast tuletatud ja LaurentMT poolt leiutatud näitaja nimi, mida saab arvutada Bitcoini tehingu kohta.

Kui tehingul on suur hulk võimalikke tõlgendusi, on sageli asjakohasem viidata selle entroopiale. See näitaja mõõdab analüütikute teadmatust tehingu täpse konfiguratsiooni kohta. Teisisõnu, mida suurem on entroopia, seda raskem on analüütikutel tuvastada bitcoinide liikumist sisendite ja väljundite vahel.

Praktikas näitab entroopia, kas välise vaatleja seisukohalt on tehingul mitu võimalikku tõlgendust, mis põhinevad üksnes sisend- ja väljundisummadel, võtmata arvesse muid väliseid või sisemisi mustreid ja heuristikat. Kõrge entroopia on seega tehingu suurema konfidentsiaalsuse sünonüüm.

Entroopia on defineeritud kui võimalike kombinatsioonide arvu binaarne logaritm. Siin on kasutatud valemit, kus E on tehingu entroopia ja C võimalike tõlgenduste arv:

E = \log_2(C)

Matemaatikas on binaarne logaritm (baas-2 logaritm) 2 eksponentimise pöördoperatsioon. Teisisõnu, x binaarne logaritm on eksponent, millele 2 tuleb tõsta, et saada x. Seda näitajat väljendatakse seega bittides.

Võtame näite entroopia arvutamisest Whirlpool 5x5 mudeli järgi struktureeritud coinjoin-tehingu puhul, mille tõlgendamisvõimaluste arv on, nagu eelmises punktis mainitud, 1\,496 :

\begin{align*}
C &= 1\,496 \\
E &= \log_2(1\,496) \\
E &= 10.5469 \text{ bits}
\end{align*}

Seega on selle mündiühendustehingu entroopia 10,5469$ bitti, mida peetakse väga rahuldavaks. Mida suurem on see väärtus, seda rohkem erinevaid tõlgendusi on tehingule lubatud, mis tugevdab selle konfidentsiaalsuse taset.

8x8 mündiühendusega tehingu puhul, kus on 9\,934\,563 tõlgendusi, oleks entroopia :

\begin{align*}
C &= 9\,934\,563 \\
E &= \log_2(9\,934\,563) \\
E &= 23.244 \text{ bits}
\end{align*}

Võtame teise näite klassikalise maksetehinguga, millel on 1 sisend ja 2 väljundit: 1b1b0c3f0883a99f1161c64da19471841ed12a1f78e77fab128c69a5f578ccce

BTC204

Selle tehingu puhul on ainus võimalik tõlgendus: (In.0) > (Out.0 ; Out.1). Järelikult on selle entroopia 0 :

\begin{align*}
C &= 1 \\
E &= \log_2(1) \\
E &= 0 \text{ bits}
\end{align*}

Efektiivsus

Tehingu entroopia põhjal saame arvutada ka selle tõhusust konfidentsiaalsuse osas. Selle näitajaga hinnatakse tehingu tõhusust, võrreldes seda optimaalse tehinguga, mida võiks ette näha samasuguse konfiguratsiooni korral.

See toob meid maksimaalse entroopia mõiste juurde, mis vastab suurimale entroopiale, mida konkreetne tehingustruktuur teoreetiliselt saavutada võib. Tehingu tõhusus arvutatakse seejärel, võrreldes seda maksimaalset entroopiat analüüsitava tehingu tegeliku entroopiaga.

Kasutatakse järgmist valemit koos :

Ef = E_R - E_M

Näiteks Whirlpool 5x5 coinjoin struktuuri puhul on maksimaalne entroopia 10.5469 :

\begin{align*}
E_R &= 10.5469 \\
E_M &= 10.5469 \\
Ef &= E_R - E_M \\
Ef &= 10.5469 - 10.5469 \\
Ef &= 0 \text{ bits}
\end{align*}

Seda näitajat väljendatakse samuti protsentides. Kasutatakse järgmist valemit: :

\begin{align*}
E_f &= \frac{C_R}{C_M} \\
E_f &= \frac{1\,496}{1\,496} \\
E_f &= 100 \%
\end{align*}

Tõhusus 100 dollarit näitab, et sõltuvalt tehingu struktuurist kasutatakse tehingu konfidentsiaalsuspotentsiaali maksimaalselt ära.

Entroopia tihedus

Entroopia on hea näitaja tehingu konfidentsiaalsuse mõõtmiseks, kuid see sõltub osaliselt tehingu sisendite ja väljundite arvust. Et võrrelda 2 erineva sisendite ja väljundite arvuga tehingu entroopiat, võime arvutada entroopia tiheduse. See näitaja annab ülevaate entroopiast iga tehingu sisendi või väljundi suhtes. Tihedus on kasulik eri suurusega tehingute tõhususe hindamiseks ja võrdlemiseks.

Selle arvutamiseks jagame lihtsalt tehingu kogu entroopia tehingus osalevate sisendite ja väljundite koguarvuga:

E_D = \frac{E}{T}

Võtame näiteks Whirlpool 5x5 mündiühendust:

\begin{align*}
T &= 5 + 5 = 10 \\
E &= 10.5469 \\
E_D &= \frac{E}{T} \\
E_D &= \frac{10.5469}{10} \\
E_D &= 1.054 \text{ bits}
\end{align*}

Arvutame ka 8x8 Whirlpool coinjoin'i entroopia tiheduse:

\begin{align*}
T &= 8 + 8 = 16 \\
E &= 23.244 \\
E_D &= \frac{E}{T} \\
E_D &= \frac{23.244}{16} \\
E_D &= 1.453 \text{ bits}
\end{align*}

Analüüsides nende kahe koosliitmise tüübi entroopiatihedust, selgub, et isegi kui entroopiat normaliseerida elementide arvu järgi, tekitab "Surge Cycle 8x8" koosliitmine analüüsi jaoks rohkem ebakindlust.

Boltzmanni skoor

Teine tehingus analüüsitav teave on iga elemendi Boltzmanni skoor teise elemendi suhtes. See on sisendite ja väljundite vaheliste vastavustõenäosuste tabel. See tabel näitab Boltzmanni skoori kaudu tingimuslikku tõenäosust, et konkreetne sisend on seotud konkreetse väljundiga. Seega on see kvantitatiivne mõõt, mis näitab tingimuslikku tõenäosust, et mingi sisendi ja väljundi vaheline seos mingis tehingus esineb, tuginedes selle sündmuse soodsate esinemiste arvu suhtele võimalike esinemiste koguarvule tõlgenduste kogumis.

Kasutades Whirlpool coinjoin'i näidet, tooks tingimusliku tõenäosuse tabel esile iga sisendi ja väljundi vahelise seose tõenäosuse, pakkudes kvantitatiivset mõõdet tehingu assotsiatsioonide mitmetähenduslikkusele:

| % | Väljund 0 | Väljund 1 | Väljund 2 | Väljund 3 | Väljund 4 |

| ------- | -------- | -------- | -------- | -------- | -------- |

| Sisend 0 | 34% | 34% | 34% | 34% | 34% | 34% | 34% | 34% | 34% |

| Sisend 1 | 34% | 34% | 34% | 34% | 34% | 34% | 34% | 34% | 34% | Sisend 1

| Sisend 2 | 34% | 34% | 34% | 34% | 34% | 34% | 34% | 34% | 34% | 34% | 34% | 34% | 34% | 34% | 34% | 34% | 34% | 34% | 34% | 34% | 34 %

| Sisend 3 | 34% | 34% | 34% | 34% | 34% | 34% | 34% | 34% | 34% | Sisend 3

| Sisend 4 | 34% | 34% | 34% | 34% | 34% | 34% | 34% | 34% | 34% | 34% | 34% | 34% | 34% | 34% | 34% | 34% | 34% | 34% | 34% | 34% | 34 %

On selge, et igal sisendil on võrdne võimalus olla seotud mis tahes väljundiga, mis tugevdab tehingu konfidentsiaalsust.

Boltzmanni skoor arvutatakse, jagades tõlgenduste arvu, milles teatav sündmus esineb, olemasolevate tõlgenduste koguarvuga. Seega, et määrata skoor, mis seostab sisendit #0 väljundiga #3 (sündmus esineb 512 tõlgendustes), toimime järgmiselt:

\begin{align*}
\text{Interpretations (IN.0 > OUT.3)} &= 512 \\
\text{Interpretations totales} &= 1496 \\
\text{Score} &= \frac{512}{1496} \\
\text{Score} &= 34 \%
\end{align*}

Kui võtame näiteks Whirlpool 8x8 Surge Cycle coinjoin'i, siis Boltzmanni tabel näeb välja selline:

| OUT.0 | OUT.1 | OUT.2 | OUT.3 | OUT.4 | OUT.5 | OUT.6 | OUT.7 | OUT.7 |

|-------|-------|-------|-------|-------|-------|-------|-------|-------|

| IN.0 | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% |

| IN.1 | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% |

| IN.2 | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% |

| IN.3 | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% |

| IN.4 | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% |

| IN.5 | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% |

| IN.6 | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% |

| IN.7 | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% |

Kuid lihtsa tehingu puhul, millel on üks sisend ja kaks väljundit, on olukord teistsugune:

| Väljund 0 | Väljund 1 |

|---------|----------|----------|

| Sisend 0 | 100% | 100% | 100% |

Siin näeme, et tõenäosus, et iga väljund pärineb sisendist #0, on 100%. Väiksem tõenäosus peegeldab seega suuremat konfidentsiaalsust, mis lahjendab otseseid seoseid sisendite ja väljundite vahel.

Deterministlikud lingid

Samuti saame arvutada deterministlike linkide arvu tehingus. See näitaja näitab, kui paljud ühendused analüüsitava tehingu sisendite ja väljundite vahel on 100% tõenäosusega vaieldamatud. Seda näitajat saab seejärel täiendada, arvutades deterministlike linkide suhtarvu. Suhtarv annab ülevaate nende deterministlike linkide osakaalust tehingu kõigi linkide hulgas.

Näiteks Whirlpool coinjoin-tehingu puhul ei ole sisendite ja väljundite vahel mingeid deterministlikke seoseid ja seetõttu on näitajaks 0 seost ja suhtarvuks 0%. Seevastu meie teise vaadeldud lihtsa maksetehingu puhul (ühe sisendi ja 2 väljundiga) näitab näitaja, et on 2 deterministlikku seost ja suhe ulatub 100%-ni. Teisisõnu, nullnäitaja näitab suurepärast konfidentsiaalsust tänu otseste ja vaieldamatute seoste puudumisele sisendite ja väljundite vahel.

Kuidas te neid näitajaid arvutate?

Nende näitajate arvutamine käsitsi, kasutades minu esitatud võrrandeid, on suhteliselt lihtne. Raskus seisneb peamiselt tehingu võimalike tõlgenduste arvu kindlaksmääramises. Klassikalise tehingu puhul saab seda arvutust teha käsitsi. Koondumise puhul on see ülesanne aga palju keerulisem.

Varem oli OXT ja Samourai meeskondade poolt välja töötatud Pythoni tööriist nimega Boltzmann Calculator, mis arvutas automaatselt kõik need näitajad Bitcoini tehingu jaoks:

BTC204

Nende analüüside tegemiseks oli võimalik kasutada ka KYCP.org veebilehte:

BTC204

Kahjuks ei ole need vahendid pärast Samourai asutajate vahistamist enam töökorras.

Nüüd, kui me oleme käsitlenud üksikasjalikult coinjoins, vaatame meie kursuse viimases osas teisi Bitcoini privaatsustehnikaid. Vaatleme payjoin'eid, konkreetseid pseudocoinjoin'i tehingutüüpe, staatilisi aadressiprotokolle, samuti meetmeid, mis tugevdavad konfidentsiaalsust mitte tehingute endi, vaid sõlmede võrgu tasandil.

https://planb.network/tutorials/privacy/analysis/boltzmann-entropy-738e45af-18a6-4ce6-af1a-1bf58e15f1fe

Teiste täiustatud konfidentsiaalsusmeetoditega seotud probleemide mõistmine

Payjoin tehingud

Coinjoin on praegu kõige tõhusam meetod ebakindluse lisamiseks osade jälgimisse ahelanalüüsis. Nagu oleme eelmistes peatükkides näinud, peavad sisendid ja väljundid olema võimalikult homogeensed, et saada suure jõudlusega kombinatsioon. Lisaks on oluline, et osad oleksid integreeritud võimalikult suurde gruppi, et maksimeerida anonsetid. Seega, et koosliitmised oleksid tõhusad, peavad need hõlmama suurt hulka ühtlasi ühtlasi ka osi. See nõuete paljusus tähendab, et coinjoin-tehingutel on väga jäik struktuur: summad on eelnevalt kindlaks määratud ja kõik osalejad peavad neist kinni pidama, et tagada protsessi ühetaolisus. Lisaks nõuavad coinjoin-tehingud sünkroniseerimist kõigi osalejate ja koordinaatori vahel tehingu koostamise ajal.

Need nõuded muudavad coinjoin'i otsetoetuste puhul ebasobivaks. Näiteks kui teil on 1 miljoni satsiga münt coinjoin-poolis, oleks selle otsene kasutamine maksetena keeruline. See nõuaks sünkroniseerimist teiste osalejatega ja koordinaatoriga, et koostada ühistehing täpselt sel hetkel, kui teil on vaja makse sooritada, ning ostusumma peaks täpselt vastama teie mündi väärtusele, mis on praktiliselt teostamatu. Coinjoin-tehing on seega oma olemuselt koostööst tulenev pühkimistehing, st tavaliselt on sisendite omanikud samad, keda leiame ka väljunditest.

Siiski oleks huvitav, kui tehingustruktuurid võimaldaksid makseid teha praktilisel viisil, kuid samas tekitaksid kahtlusi ahelate analüüsis. Just seda vaatleme selles ja järgmises peatükis.

Mis on payjoin-tehing?

Payjoin on konkreetne Bitcoini tehingustruktuur, mis suurendab kasutaja privaatsust kulutuste tegemisel, tehes koostööd makse saajaga.

2015.aastal käsitles LaurentMT esmakordselt seda meetodit nimetuse "steganographic transactions" all, nagu on näha siin olevas dokumendis. Selle tehnika võttis hiljem kasutusele Samourai Wallet, mis 2018. aastal oli esimene klient, kes selle rakendas tööriista Stowaway abil. Payjoin’i kontseptsiooni võib leida ka BIP79, BIP78 ja BIP77 kirjeldustes. Payjoin’i tähistamiseks kasutatakse mitmeid termineid:

Payjoini eripära seisneb selles, et ta suudab luua tehingu, mis esmapilgul tundub tavaline, kuid on tegelikult kahe inimese vaheline mini Coinjoin. Selle saavutamiseks on tehingu struktuuris sisenditesse kaasatud makse saaja koos tegeliku saatjaga. Seega sisaldab saaja tehingu keskel ka iseendale tehingu makset, mis omakorda võimaldab talle maksta.

Võtame selle protsessi paremaks mõistmiseks näite. Alice ostab baguette'i 4000 sati eest, kasutades UTXO 10 000 sati ja valib payjoin'i. Tema pagar, Bob, lisab sisendina talle kuuluva UTXO 15 000 satsiga, mille ta lisaks Alice'i 4000 satsile täies ulatuses väljundina tagasi saab.

BTC204

Selles näites sisestab pagar Bob 15 000 sati sisendiks ja väljub 19 000 sati, kusjuures vahe on täpselt 4000 sati, s.t. baguette'i hind. Alice sisestab 10 000 sati ja saab väljundiks 6 000 sati, mis tähendab, et saldo on -4 000 sati, s.t. baguette'i hind. Näite lihtsustamiseks olen tahtlikult jätnud selle tehingu puhul kaevandamiskulud välja.

Milleks on payjoin?

Payjoin-tehing täidab kaks eesmärki, võimaldades kasutajatel suurendada oma makse konfidentsiaalsust.

Esiteks on payjoin'i eesmärk eksitada välist vaatlejat, luues ahelanalüüsis peibutuse. Seda võimaldab CIOH-heuristika (Common Input Ownership Heuristic). Nagu me nägime 3. osas, eeldatakse tavaliselt, et kui plokiahelas on tehingul mitu sisendit, et kõik need sisendid kuuluvad ühele ja samale üksusele või kasutajale.

Seega, kui analüütik uurib payjoin-tehingut, usub ta, et kõik sisendid pärinevad ühelt ja samalt isikult. See arusaam on aga vale, sest lisaks tegelikule maksjale panustab sisenditesse ka makse saaja. Seega suunatakse ahela analüüs ümber tõlgenduse suunas, mis osutub valeks.

Võtame näite payjoin-tehingust, mille eesmärk on maksta baguette'i eest:

BTC204

Seda tehingut plokiahelas nähes saaks väline vaatleja, kes järgib plokiahela analüüsi tavapärast heuristikat, järgmise tõlgenduse: "Alice ühendas tehingu sisendiks 2 UTXOd, et maksta Bobile 19 000 sati".

BTC204

See tõlgendus on ilmselgelt vale, sest nagu te juba teate, ei kuulu kaks UTXO-sisendit ühele ja samale isikule. Üks pärineb Alice'ilt, baguette'i ostjalt, ja teine Bobilt, pagarilt.

BTC204

Sel viisil suunatakse välise vaatleja analüüs eksliku järelduse suunas, tagades sidusrühmade konfidentsiaalsuse säilimise.

Steganograafiline tehing

Payjoin'i teine eesmärk on eksitada kõrvalist vaatlejat tehtud makse tegeliku summa osas. Tehingu struktuuri uurides võib analüütik arvata, et makse on võrdne ühe väljundi summaga.

Kui me pöördume tagasi meie näite juurde, mis käsitleb baguette'i ostmist, siis analüütik arvab, et maksesumma vastab kas 6000 sati UTXO-le või 19 000 sati UTXO-le. Antud juhul arvab analüütik pigem, et maksesumma on 19 000 sati, sest väljundites on 2 UTXOd, millest vähemalt üks on suurem kui 6000 sati (ei ole mingit loogilist põhjust kasutada 2000 sati maksmiseks 2 UTXOd, kui selle makse rahuldamiseks oleks piisanud ühest UTXOst).

BTC204

Tegelikkuses on see analüüs aga vigane. Maksesumma ei vasta ühelegi väljundile. See on tegelikult erinevus abisaaja UTXO väljundi ja abisaaja UTXO sisendi vahel.

BTC204

Selles suhtes kuulub payjoin-tehing steganograafia valdkonda. See võimaldab tehingu tegelikku summat varjata võltsitud tehingu sisse, mis toimib peibutusena.

Steganograafia on tehnika, mille abil saab teavet varjata teiste andmete või objektide sisse, nii et varjatud teabe olemasolu ei ole märgatav. Näiteks võib salajase sõnumi peita punktiga mitteseotud teksti sisse, muutes selle palja silmaga märkamatuks (see on microdot tehnika).

Erinevalt krüpteerimisest, mis muudab teabe arusaamatuks ilma dekrüpteerimisvõtmeta, ei muuda steganograafia teavet. See jääb selgeks tekstiks. Selle eesmärk on pigem varjata salajase sõnumi olemasolu, samas kui krüpteerimine paljastab selgelt varjatud teabe olemasolu, kuigi see on ilma võtmeta kättesaamatu. Seepärast oli payjoini algne nimi "steganograafilised tehingud".

Krüptograafia ja coinjoin ning steganograafia ja payjoin vahel võib tõmmata analoogia. Coinjoinil on sarnased omadused nagu krüpteerimisel: meetod on äratuntav, kuid informatsioon on salastamatu. Seevastu payjoin sarnaneb steganograafiale: teave on teoreetiliselt kättesaadav, kuid kuna varjamise meetod ei ole äratuntav, muutub see kättesaamatuks.

Kuidas kasutada payjoin'i?

Tuntud tarkvaraprogrammid, mis toetavad payjoin'i, on Sparrow Wallet, Wasabi Wallet, Mutiny, BitMask, BlueWallet ja JoinMarket, samuti makseprotsessor BTCPay.

BTC204

Kõige arenenum payjoin rakendamine oli ainult Stowaway Samourai rahakotis. Kuid pärast tarkvara asutajate vahistamist on see tööriist nüüdseks vaid osaliselt toimiv. Stowaway eelis on see, et tegemist on põhjaliku ja lihtsasti kasutatava protokolliga, mis toetab nii payjoini vastuvõtmist kui ka saatmist. Osaliselt allkirjastatud tehinguid saab vahetada käsitsi, skaneerides mitmeid QR-koode, või automaatselt Tori kaudu Sorobani kaudu. Viimane suhtlemisvõimalus on praegu välja lülitatud.

BTC204

Payjoini kasutamise raskuseks on selle sõltuvus kaupmehe osalusest. Kliendina ei saa te payjoini kasutada, kui kaupmees seda ei toeta. See lisab ostuprotsessile veel ühe raskuse: mitte ainult ei ole raske leida kaupmehi, kes aktsepteerivad bitcoine, vaid kui otsida ka neid, kes toetavad payjoini, muutub asi veelgi keerulisemaks.

Üks lahendus oleks kasutada tehingustruktuure, mis toovad ahelaanalüüsi mitmetähenduslikkust, ilma et see nõuaks vastuvõtja koostööd. See võimaldaks meil parandada maksete konfidentsiaalsust ilma kaupmeeste aktiivsele osalusele tuginemata. Just seda vaatleme järgmises peatükis.

https://planb.network/tutorials/privacy/on-chain/payjoin-sparrow-wallet-087a0e49-61cd-41f5-8440-ac7b157bdd62

https://planb.network/tutorials/privacy/on-chain/payjoin-samourai-wallet-48a5c711-ee3d-44db-b812-c55913080eab

Makse mini-mündiühendus

Kui soovite sooritada maksetehingu, säilitades samal ajal teatava konfidentsiaalsuse, on payjoin hea valik. Kuid nagu me just nägime, nõuab payjoin vastuvõtja kaasamist. Mida siis teha, kui saaja keeldub payjoinis osalemast või kui te lihtsalt eelistate teda mitte kaasata? Üks alternatiiv on kasutada Stonewall- või Stonewall x2-tehingut. Vaatame neid kahte tehinguliiki lähemalt.

Stonewall-tehing

Stonewall on Bitcoini tehingu erivorm, mille eesmärk on suurendada kasutaja konfidentsiaalsust kulutuste tegemisel, imiteerides pseudomündiühendust kahe inimese vahel, ilma et see tegelikult oleks üks. Tegelikult ei ole see tehing koostööpõhine. Kasutaja võib selle ise ehitada, kasutades sisenditena ainult talle kuuluvaid UTXOsid. Seega saate luua Stonewall-tehingu ükskõik millisel juhul, ilma et peaksite teise kasutaja või saajaga sünkroonima.

Stonewall-tehing toimib järgmiselt: tehingu sisendina kasutab emitent 2 talle kuuluvat UTXO-d. Tehingu väljundiks on 4 UTXOd, millest 2 on täpselt sama suurused. Ülejäänud 2 UTXOd moodustavad välisvaluuta. Väljundite 2-st sama suurest summast läheb tegelikult ainult üks makse saajale.

Seega on Stonewalli tehingus ainult 2 rolli:

Võtame selle tehingustruktuuri mõistmiseks näite. Alice läheb pagar Bobi juurde, et osta oma baguette'i, mis maksab 4000 sati. Ta soovib maksta bitcoin'idega, säilitades samal ajal mingi konfidentsiaalsuse oma makse suhtes. Seega otsustab ta ehitada makse jaoks Stonewall-tehingu.

BTC204

Analüüsides seda tehingut, näeme, et pagar Bob sai tegelikult 4000 sati tasu baguette'i eest. Alice kasutas sisendina 2 UTXO-d: üks 10 000 sati ja teine 15 000 sati eest. Väljunditeks on ta saanud 3 UTXOd: ühe 4000 sati eest, ühe 6000 sati eest ja ühe 11 000 sati eest. Seega on Alice'i netosaldo selle tehingu puhul -4 000 sati, mis vastab baguette'i hinnale.

Selles näites olen tahtlikult jätnud kaevandamistasud välja, et muuta see arusaadavamaks. Tegelikkuses kannab tehingukulud täielikult emitent.

Millised on Stonewall-tehingu eesmärgid?

Stonewalli struktuur lisab tehingule tohutult entroopiat, mis hägustab ahelanalüüsi piire. Väljastpoolt vaadatuna võib sellist tehingut tõlgendada kui kahe inimese vahelist mini-mündiühendust. Tegelikkuses on see aga makse. Seega tekitab see meetod ahelaanalüüsis ebakindlust või viib isegi valede juhtnöörideni.

Võtame näite Alice'i kohta pagar Bobi juures. Tehing plokiahelas näeks välja järgmiselt:

BTC204

Väline vaatleja, kes tugineb tavalisele ahelaanalüüsi heuristikale, võib ekslikult järeldada, et "kaks inimest on teinud väikese mündiühenduse, mille sisendiks on üks UTXO ja väljundiks kaks UTXOd". Seda tehingut väljastpoolt analüüsides ei saa CIOH-i rakendada, sest kahe sama suure väljundi olemasolu viitab coinjoin-mustrile. Väljastpoolt vaadatuna ei ole CIOH seega sellel konkreetsel juhul kohaldatav.

BTC204

See tõlgendus on ebatäpne, sest nagu te teate, saadeti üks UTXO pagarile Bobile, 2 UTXO sisendit tulid Alice'ilt ja ta sai tagasi 3 vahetusväljundit.

BTC204

Ja mis on Stonewalli tehingu struktuuris eriti huvitav, on see, et välise vaatleja vaatepunktist sarnaneb see igati Stonewall x2 tehinguga.

Stonewall-tehing x2

Stonewall x2 on veel üks konkreetne Bitcoini tehingu vorm, mille eesmärk on samuti suurendada kasutaja konfidentsiaalsust kulutuste tegemisel, kuid seekord koostöös kolmanda isikuga, kes ei ole selles kulutuses osalenud. See meetod toimib nagu pseudocoinjoin kahe osaleja vahel, tehes samal ajal makse kolmandale isikule.

Stonewall x2 tehingu toimimine on suhteliselt lihtne: me kasutame makse tegemiseks enda valduses olevat UTXO-d ja võtame appi kolmanda isiku, kes samuti panustab talle kuuluva UTXO-ga. Tehingu tulemuseks on neli väljundit: kaks neist on võrdse suurusega, millest üks on mõeldud makse saaja aadressile, teine aga koostööpartnerile kuuluvale aadressile. Kolmas UTXO saadetakse tagasi teisele, koostööpartnerile kuuluvale aadressile, mis võimaldab tal saada tagasi algse summa (tema jaoks neutraalne tegevus, moduleerides kaevandamiskulusid), ning viimane UTXO saadetakse tagasi meile kuuluvale aadressile, mis moodustab makse vahetuse.

Stonewall x2 tehingutes on seega määratletud kolm erinevat rolli:

Tuleme tagasi meie näite juurde Alice'iga, kes on pagar Bobi juures, et osta oma baguette'i, mis maksab 4000 sati. Ta soovib maksta bitcoin'idega, säilitades samal ajal teatava konfidentsiaalsuse oma makse suhtes. Seega pöördub ta oma sõbra Charlesi poole, kes teda selles protsessis aitab.

BTC204

Analüüsides seda tehingut, näeme, et pagar Bob sai tegelikult 4000 sati tasu baguette'i eest. Alice kasutas sisendina 10 000 sati ja sai väljundina tagasi 6 000 sati, st netosaldo oli -4 000 sati, mis vastab baguette'i hinnale. Charles andis sisendiks 15 000 sati ja sai kaks väljundit: üks 4 000 sati ja teine 11 000 sati, mis annab saldo 0 sati.

Selles näites olen tahtlikult jätnud tasud välja, et asi oleks lihtsamini arusaadav. Tegelikkuses jagunevad kaevandamistasud üldiselt võrdselt makse tegija ja maksja vahel.

Millised on Stonewall x2 tehingu eesmärgid?

Sarnaselt Stonewalli struktuuriga lisab ka Stonewall x2 struktuur tehingule palju entroopiat ja ajab ahelanalüüsi segadusse. Väljastpoolt vaadatuna võib sellist tehingut tõlgendada kui kahe inimese vahelist väikest ühisliitu. Kuid tegelikkuses on see makse. Seetõttu tekitab see meetod ahelaanalüüsis ebakindlust või viib isegi valede juhtnöörideni.

Võtame näiteks Alice'i, pagar Bobi ja Charlesi. Tehing plokiahelas näeks välja järgmiselt:

BTC204

Väline vaatleja, kes tugineb tavalisele ahelaanalüüsi heuristikale, võib ekslikult järeldada, et "Alice ja Charles on teinud väikese coinjoini, mille sisendiks on üks UTXO ja väljundiks kaks UTXOd". Jällegi, analüüsides seda tehingut väljastpoolt, ei viita ICOH kohaldamine, sest kahe sama suure väljundi olemasolu viitab coinjoin-mustrile. Väljastpoolt vaadatuna ei ole CIOH seega antud konkreetsel juhul kohaldatav.

BTC204

See tõlgendus on vale, sest nagu te teate, on üks UTXO saadetud pagarile Bobile, Alice'il on ainult üks vahetusväljund ja Charlesil on kaks vahetusväljundit.

BTC204

Ja veel kord, mis on Stonewall x2 tehingu struktuuris eriti huvitav, on see, et välise vaatleja vaatepunktist sarnaneb see igati Stonewalli tehinguga.

Mis vahe on Stonewalli ja Stonewall x2 vahel?

StonewallX2-tehing toimib täpselt nagu Stonewall-tehing, ainult et esimene on koostöövõimalus, teine aga mitte. Nagu me nägime, osaleb StonewallX2-tehingus kolmas osapool (Charles), kes on makse suhtes väline ja kes teeb oma bitcoinid kättesaadavaks, et suurendada tehingu konfidentsiaalsust. Klassikalise Stonewall-tehingu puhul võtab koostööpartneri rolli üle saatja.

BTC204

Väliselt vaadatuna on tehingumuster täpselt sama.

BTC204

Asjaolu, et need kaks tehingustruktuuri jagavad täpselt sama mustrit, tähendab, et isegi kui välise vaatleja suudab tuvastada "Stonewall(x2)" mustri, ei ole tal kogu teave olemas. Ta ei suuda kindlaks teha, milline kahest samade summade UTXOst vastab maksele. Peale selle ei saa ta kindlaks teha, kas kaks UTXOd koos sisenditega pärinevad kahelt erinevalt inimeselt (Stonewall x2) või kuuluvad nad ühele isikule, kes on neid ühendanud (Stonewall).

Viimane punkt tuleneb asjaolust, et Stonewall x2 tehingud järgivad täpselt sama skeemi kui Stonewall tehingud. Väljastpoolt vaadatuna ja ilma täiendava kontekstilise teabeta on võimatu eristada Stonewall-tehingut Stonewall x2-tehingust. Esimesed ei ole koostööga seotud tehingud, samas kui viimased on koostööga seotud tehingud. See lisab ühe sellise tehingu analüüsile veelgi rohkem kahtlusi.

Millal tuleks kasutada Stonewall ja Stonewall x2 tehinguid?

Loogika peaks olema järgmine, kui soovite kasutada konfidentsiaalsusvahendit kulude jaoks:

Kuidas kasutada Stonewall ja Stonewall x2 tehinguid?

Stonewall ja Stonewall x2 tehingud on saadaval nii Samourai Wallet'i rakenduses kui ka Sparrow Wallet'i tarkvaras.

BTC204

Kuid nagu ka payjoins'i puhul, toimivad Stonewall x2 tehingud pärast Samourai asutajate vahistamist nüüd ainult asjaomaste osapoolte vahel käsitsi PSBTde vahetamise teel. Kahjuks ei ole automaatne vahetamine Sorobani kaudu enam võimalik.

Seda tüüpi tehinguid on võimalik teha ka käsitsi mis tahes Bitcoini rahakoti tarkvarast.

Järgmises peatükis vaatleme veel üht konfidentsiaalsustehnikat, mis on suhteliselt tundmatu, kuid mis on väga kasulik täienduseks sellele, mida oleme juba uurinud.

https://planb.network/tutorials/privacy/on-chain/stonewall-033daa45-d42c-40e1-9511-cea89751c3d4

https://planb.network/tutorials/privacy/on-chain/stonewall-x2-05120280-f6f9-4e14-9fb8-c9e603f73e5b

Ritsikad

Bitcoini tehingustruktuuride kasutamine, mis lisavad ahela analüüsile ebaselgust, nagu näiteks coinjoin, on eriti kasulik privaatsuse kaitsmiseks. Kuid nagu me arutasime payjoini peatükis, on coinjoini tehingud ahelas loomulikult tuvastatavad. Tuletage meelde analoogiat, mille me tõime krüpteerimise ja coinjoini vahel: kui fail on krüpteeritud, ei pääse kolmas isik, kes avastab krüpteeritud faili, selle sisule ligi, kuid saab selgelt tuvastada, et faili on muudetud selle sisu varjamiseks. Sama kehtib ka coinjoini kohta: kui analüütik uurib coinjoini tehingut, siis kuigi ta ei saa tuvastada otseseid seoseid sisendite ja väljundite vahel (ja vastupidi), saab ta siiski tuvastada, et vaadeldav tehing on coinjoin.

Sõltuvalt sellest, kuidas te kavatsete oma detaili pärast koosliitmist kasutada, võib asjaolu, et see on selle protsessi läbinud, olla problemaatiline. Näiteks kui te kavatsete müüa oma mündi reguleeritud vahetusplatvormil, kuid see on hiljuti läbinud coinjoini, tuvastab platvormi ahelaanalüüsi tööriist selle asjaolu. Platvorm võib siis keelduda teie coinjoined UTXO-d vastu võtmast või isegi nõuda teilt selgitust, millega kaasneb oht, et teie konto peatatakse või teie raha külmutatakse. Mõnel juhul võib platvorm teatada teie käitumisest ka riigiasutustele (seda nõuab näiteks TRACFIN Prantsusmaal PSAN-ilt).

BTC204

Selle vältimiseks on vaja vahendit, mis suudaks Bitcoini mündi mineviku jäljed hägustada, et taastada mingi vorm asendatavust. Just see ongi rikošeti eesmärk.

BTC204

Mis on rikošett?

Rikošet on tehnika, mis seisneb mitme fiktiivse tehingu sooritamises enda suhtes (sweep), et simuleerida bitcoini omandiõiguse üleandmist. See vahend erineb teistest käsitletud tehingustruktuuridest selle poolest, et sellega ei saavutata mitte tulevikku suunatud anonüümsust, vaid pigem tagantjärele suunatud anonüümsuse vormi. Tegelikult hägustab ricochet erisused, mis võivad mineviku tõttu ohustada Bitcoini mündi vahetatavust.

Selleks, et tasandada müntidele minevikus toimunud sündmuse, näiteks mündiühendustsüklite, poolt jäetud jälgi, teostab ricochet neli järjestikust tehingut, mille käigus kasutaja kannab endale raha üle erinevatel aadressidel.

BTC204

Pärast seda tehingute jada suunab ricochet tööriist bitcoinid lõpuks nende lõppsihtkohta, näiteks vahetusplatvormile.

BTC204

Eesmärgiks on luua distants, mis mõjutab mündi vahetatavust, näiteks mündiühendustehing, ja lõplikku kulutustehingut, mis võib selle mündi mineviku tõttu tagasi lükata. Seega võivad ahelanalüüsi vahendid järeldada, et tõenäoliselt toimus pärast sündmust omanikuvahetus, ja pidada seda münti asendatavaks. Coinjoin'i puhul võiksid plokiahela analüüsivahendid siis eeldada, et see ei olnud sama isik, kes bitcoinid saatis ja coinjoin'i teostas, ning et seetõttu ei ole mõtet saatja vastu meetmeid võtta.

BTC204

Miks see toimib?

Sellise rikošeti meetodi puhul võiks arvata, et ahelanalüüsi tarkvara süvendaks oma uuringut nelja põrgatuse järel. Siiski seisavad need platvormid avastamislävendi optimeerimisel dilemma ees. Nad peavad seadma piiri hüppete arvule, mille järel nad aktsepteerivad, et tõenäoliselt on toimunud omaduste muutus ja et seos varasema sündmusega (näiteks coinjoin) tuleks ignoreerida.

BTC204

Selle künnise kehtestamine on siiski riskantne: iga vaadeldud hüppete arvu suurenemine suurendab eksponentsiaalselt valepositiivsete tulemuste hulka, st isikuid, kes on ekslikult märgitud sündmuses osalejateks, kuigi tegelikult on toimingu sooritanud keegi teine. See stsenaarium kujutab endast suurt ohtu nendele ettevõtetele, sest valepositiivsed juhtumid põhjustavad rahulolematust, mis võib mõjutada kliente konkurentide poole. Pikemas perspektiivis viib liiga kõrge tuvastamise künnis selleni, et platvorm kaotab rohkem kliente kui tema konkurendid, mis võib ohustada tema elujõulisust. Seetõttu on nende platvormide jaoks keeruline suurendada täheldatud tagasilöökide arvu ja 4 on sageli piisav arv, et nende analüüside vastu võidelda.

Siin täheldatud nähtus on mõnevõrra analoogne kuue eraldusastme teooriaga.

Kuue eraldusastme teooria kohaselt on iga inimene Maal seotud iga teise inimesega suhete ahelaga, mis koosneb maksimaalselt kuuest vahendajast. Seega piisab, kui läbida kuus inimest, kellest igaüks tunneb isiklikult järgmist, et jõuda mis tahes üksikisikuni maailmas.

Bitcoini tehingute puhul leiame sarnase nähtuse. Jälgides piisaval arvul Bitcoini tehinguid, satume paratamatult coinjoini. Ricochet-meetod kasutab seda põhimõtet ära, kasutades suuremat arvu hüppeid, kui vahetusplatvormid suudavad mõistlikult jälgida. Kui platvormid otsustavad jälgida rohkem tehinguid, siis on võimalik sellest meetmest kõrvalehoidmiseks lihtsalt lisada üks lisahüpe.

Millal ja kuidas kasutada rikošetti?

Kõige sagedamini kasutatakse rikošetti siis, kui on vaja varjata varasemat osalemist UTXOs, mis on sinu omanduses, toimunud mündiühenduses. Ideaalis on kõige parem vältida coinjoini läbinud bitcoinide ülekandmist reguleeritud üksustele. Sellele vaatamata, juhul kui teil ei ole muud võimalust, eriti kui teil on hädasti vaja bitcoinid riigi vääringus likvideerida, pakub ricochet tõhusat lahendust.

See meetod on tõhus mitte ainult koosliidete puhul, vaid ka mis tahes muude märkide puhul, mis võivad kahjustada detaili asendatavust.

Selle rikošeti meetodi idee pärineb algselt Samourai Wallet'i meeskonnalt, kes integreeris selle oma rakendusse, et automatiseerida protsessi. Teenus ei ole Samourai jaoks tasuta, sest rikošeti eest tuleb maksta 100 000 sati teenustasu, millele lisanduvad kaevandamiskulud. Seetõttu on selle kasutamine soovitatav märkimisväärsete summade ülekannete puhul.

BTC204

Samurai rakendus pakub kahte rikošeti varianti:

BTC204 BTC204

Ricocheting tähendab lihtsalt bitcoinide saatmist endale. On täiesti võimalik rikošeti bitcoine käsitsi mis tahes rahakoti tarkvaraga, ilma spetsiaalset tööriista kasutamata, rikošeti saata. Kõik, mida sa pead tegema, on sama mündi järjestikune ülekandmine endale, kasutades iga kord uut, tühja aadressi.

Järgmises peatükis vaatleme erinevaid salajase omandiõiguse ülemineku tehnikaid. Need meetodid erinevad radikaalselt seni vaadeldud meetoditest nii toimimise kui ka tulemuste poolest.

https://planb.network/tutorials/privacy/on-chain/ricochet-e0bb1afe-becd-44a6-a940-88a463756589

Salajane omandiõiguse üleminek

Teine Bitcoini konfidentsiaalsusmeetod on salajane omandiõiguse üleandmine. Selle meetodi eesmärk on kanda Bitcoine ühelt inimeselt teisele ja vastupidi üle, ilma et tehing oleks plokiahelas selgelt nähtav. Vaatleme erinevaid olemasolevaid tehnikaid koos nende eeliste ja puudustega.

Müntide vahetamine

Coinwap põhineb suhteliselt lihtsal kontseptsioonil: see kasutab arukaid lepinguid, et hõlbustada bitcoinide omandiõiguse ülekandmist kahe kasutaja vahel, ilma et oleks vaja usaldust ja ilma et see ülekanne oleks plokiahelas selgelt nähtav.

BTC204

Kujutleme naiivset näidet Alice'i ja Bobiga. Alice'il on 1 BTC, mis on kaitstud privaatvõtmega A, ja Bobil on samuti 1 BTC, mis on kaitstud privaatvõtmega B. Nad võiksid teoreetiliselt vahetada oma isiklikke võtmeid välise sidekanali kaudu, et teostada salajane ülekanne.

BTC204

Selline naiivne meetod kujutab endast siiski suurt riski usalduse osas. Mitte miski ei takista Alice'i, kes hoiab pärast vahetust A privaatvõtme koopiat ja kasutab seda hiljem bitcoinide varastamiseks, kui võti on Bobi käes.

BTC204

Lisaks ei ole mingit garantiid, et Alice ei saa Bobi privaatvõtit B ja ei anna selle eest kunagi edasi oma privaatvõtit A. Seetõttu sõltub see vahetus osapoolte vahelisest liigsest usaldusest ja on ebatõhus, et tagada turvaline salajane omandiõiguse üleandmine.

BTC204

Nende probleemide lahendamiseks ja üksteist mitte usaldavate osapoolte vahelise vahetuse võimaldamiseks kasutame hoopis arukaid lepingusüsteeme. Nutikas leping on programm, mis käivitub automaatselt, kui eelnevalt määratletud tingimused on täidetud. Meie puhul tagab see, et vara vahetamine toimub automaatselt, ilma et oleks vaja vastastikust usaldust.

Seda on võimalik saavutada HTLC (Hash Time-Locked Contracts) või PTLC (Point Time-Locked Contracts) abil. Need kaks protokolli toimivad sarnaselt, kasutades ajalukustussüsteemi, mis tagab, et vahetus kas lõpetatakse edukalt või tühistatakse täielikult, kaitstes seega mõlema osapoole vahendite terviklikkust. Peamine erinevus HTLC ja PTLC vahel seisneb selles, et HTLC kasutab tehingu kindlustamiseks hash'e ja eelkujutisi, PTLC aga Adaptor-allkirju.

Mündivahetuse stsenaariumis, kus kasutatakse HTLC või PTLC abil Alice'i ja Bobi vahel, toimub vahetus turvaliselt: kas see õnnestub ja kumbki saab teise BTC, või ebaõnnestub ja kumbki jätab oma BTC endale. See muudab võimatuks, et kumbki osapool saaks petta või teise BTC-d varastada.

HTLC on ka mehhanism, mida kasutatakse maksete turvaliseks suunamiseks Lightning Networki kahesuunaliste kanalite kaudu Adaptori allkirjade kasutamine on selles kontekstis eriti huvitav, kuna see võimaldab loobuda traditsioonilistest skriptidest (mehhanism, mida mõnikord nimetatakse "skriptideta skriptideks"). See funktsioon vähendab vahetusega seotud kulusid. Teine oluline eelis on see, et Adaptor-allkirjade puhul ei ole vaja kasutada mõlema tehingu osapoole ühist hash'i, mistõttu ei ole vaja teatavat tüüpi vahetuste puhul nende vahelist otsest seost avaldada.

Adaptori allkirjad

Adaptiivsed allkirjad on krüptograafiline meetod, mis ühendab kehtiva allkirja täiendava allkirjaga, mida nimetatakse "adaptiivseks allkirjaks", et paljastada salajased andmed. See mehhanism on kavandatud nii, et kolme järgmise elemendi - kehtiva allkirja, adapterallkirja ja saladuse - teadmine võimaldab järeldada puuduvat kolmandat elementi. Selle meetodi huvitav omadus on see, et kui me teame meie vastaspoole adapteri allkirja ja konkreetset punkti elliptilisel kõveral, mis on seotud selle adapteri allkirja arvutamiseks kasutatud saladusega, saame tuletada omaenda adapteri allkirja, mis on kooskõlas sama saladusega, ilma et meil oleks otsene juurdepääs saladusele endale.

Mündivahetuse puhul võimaldab adaptori allkirja kasutamine kahe tundliku teabe üheaegset avalikustamist osalejate vahel, vältides seega vajadust vastastikuse usalduse järele. Võtame selle protsessi illustreerimiseks näite Alice'i ja Bobiga, kes soovivad vahetada kumbki 1 BTC valdust, kuid ei usalda teineteist. Nad kasutavad Adaptori allkirju, et kaotada vajadus üksteise usaldamise järele selles vahetuses. Nad teevad seda järgmiselt:

$$s_A = n_A + t + H(N_A + T \paralleel P_A \paralleel m_A) \cdot p_A$$$

$$s_A' = s_A - t$$$

$$s_A' \cdot G = N_A + H(N_A + T \paralleel P_A \paralleel m_A) \cdot P_A$$$

$$s_B' = n_B + H(N_B + T \paralleel P_B \paralleel m_B) \cdot p_B$$$

$$s_B = s_B' + t$$$

$$(s_B' + t) \cdot G = N_B + T + H(N_B + T \paralleel P_B \paralleel m_B) \cdot P_B$$$

$$t = (s_B' + t) - s_B' = s_B - s_B'$$$

$$s_A = s_A' + t$$$

(s_A' + t) \cdot G = N_A + T + H(N_A + T \paralleel P_A \paralleel m_A) \cdot P_A

Võtame kokku, kuidas Adaptori allkiri toimib müntide vahetamisel. Esialgu saadab Alice Bobile allkirjastamata tehingu koos adaptoriga, mis võimaldab Bobil kontrollida, et hiljem avalikustatud saladus annab talle juurdepääsu bitcoinidele. Vastutasuks saadab Bob Alice'ile oma allkirjastamata tehingu ja adapteri. Seejärel saab Alice Bobi tehingu lõpule viia ja bitcoinid kätte saada, edastades tänu saladusele kehtiva tehingu. Kui see tehing avaldatakse plokiahelas, on Bobil võimalik saladus välja võtta ja seega Alice'i tehing avada. Järelikult, kui Alice algatab Bobi bitcoinide ülekande, saab Bob omakorda ligi Alice'i bitcoinidele ilma vastastikuse usalduse vajaduseta.

Pange tähele, et coinswaps'i pakkus esimest korda välja Gregory Maxwell oktoobris 2013 BitcoinTalkis.

Aatomi vahetus

Sarnaselt müntide vahetamisega ja kasutades samalaadseid arukaid lepinguid, on võimalik teostada ka aatomivahetusi. Aatomivahetus võimaldab erinevate krüptovaluutade, näiteks BTC ja XMR, otsevahetust kahe kasutaja vahel ilma usalduse või vahendaja sekkumiseta. Neid vahetusi nimetatakse "aatomivahetusteks", sest neil on ainult kaks võimalikku tulemust: kas vahetus on edukas ja mõlemad osapooled on rahul või ebaõnnestub ja kumbki jätab oma algsed krüptovaluutad alles, kaotades vajaduse usaldada teist osapoolt.

BTC204

Aatomivahetusel ja mündivahetusel on sarnane töömeetod ja neil on samad eelised ja puudused konfidentsiaalsuse osas. Bitcoini seisukohast on aatomivahetus tõepoolest võrreldav kahes etapis toimuva mündivahetusega. Kõigepealt vahetame oma BTC teise krüptovaluuta vastu, seejärel saab seda krüptovaluutat vahetada teise BTC vastu. Lõpuks saame tagasi teise kasutaja BTC. Seepärast liigitan ma need kaks protokolli konfidentsiaalsusküsimuste analüüsis varalise salajase vahetuse kategooriasse.

BTC204

Kuid olge ettevaatlik, et erinevalt coinswapist võib aatomivahetusel olla tasakaalustamatus olemasoleva likviidsuse osas, eriti BTC/XMR-vahetusbörsidel. Üldiselt on bitcoinide vahetamine altcoinide vastu lihtsam, kuna bitcoinide järele on suur nõudlus, mis hoiab selle konverteerimissuuna preemiad madalad. Altcoinide vahetamine BTC vastu võib aga väiksema nõudluse tõttu olla keerulisem, mille tulemuseks on sageli väga kõrged preemiad.

Lõpuks, kui aatomivahetuse puhul on tegemist Lightning-võrgus olevate bitcoinide ja bitcoinide vahetusega, siis räägime "allveelaevavahetus" (submarine swap).

Kas see on tõesti kasulik?

Salajased omandiõiguse ülekanded, nagu mündivahetused ja aatomivahetused, on eeliseks ahelanalüüsi heuristikate lollitamisel. Need meetodid võivad jätta mulje, et tehingutes osaleb sama kasutaja, kuigi tegelik omanik on vahetanud omanikku. Nende meetodite peamine puudus on aga see, et need on väga riskantsed, kui ei kasutata täiendavat tehnikat mündi ajaloo murdmiseks.

Kui Alice teeb Bobiga mündivahetuse või aatomivahetuse, vahetab ta oma bitcoinid Bobi omadega. Aatomivahetuse puhul hõlmab vahetus ka altcoini, kuid põhimõte jääb samaks. Seega saab Alice lõpuks B mündi ja Bob A mündi. See lisab ahela analüüsile kahtlusi, kuid müntide ajalugu jääb jälgitavaks. Kui analüütik uurib osa A, saab ta jälgida Alice'i varasemat tegevust ja vastupidi osa B puhul.

BTC204

Alice'i seisukohalt on oht, et teatud üksused võivad B mündi ajalugu pidada kahtlaseks. Kui Bob oleks näiteks omandanud B mündi kuritegeliku teo, näiteks häkkimise teel, jääks see münt tema ebaseadusliku tegevusega seotuks. Alice võib siis sattuda mündi valdusesse, mida ta ei saa kanda üle reguleeritud vahetusplatvormidele, ilma et riskiks oma raha külmutamisega või isegi sellega, et teda süüdistatakse Bobi kuritegudes, kuigi tal ei ole nendega midagi pistmist.

BTC204

Paratamatult eelistavad kurjategijad, kelle raha on ametiasutuste järelevalve all, selliseid konfidentsiaalsusmeetodeid nagu müntide vahetamine või aatomivahetus. Need protokollid võimaldavad neil oma jälgimise all olevatest bitcoinidest vabaneda, vahetades need täiesti asendatavate bitcoinide vastu. Samuti võimaldab see neil luua kõrvalekaldeid, suunates ametiasutused teiste kasutajate poole. Seega on neil inimestel kahekordne eesmärk.

Coinjoiniga on mündi ajalugu katki, isegi kui teie münt on segatud jälgitavate bitcoinidega, mis tagab usutava eitatavuse, mida ei ole olemas salajase omandiõiguse üleandmise protokollides nagu coinswap või atomic swap.

BTC204

Kui Alice soovib vältida igasugust riski, peab ta tingimata kasutama meetodit, et katkestada B müntide ajalugu, näiteks edastades seda läbi mündiühenduste. See tõstatab küsimuse, kas salajase omandiõiguse üleandmise ja coinjoin'i kombineerimine on kasulik. Müntide ühendamine, murdes mündi ajaloo, pakub Alice'ile juba piisavat salastatuse taset. Seega on minu arvamus, et kui Alice soovib kaitsta oma privaatsust, oleks targem minna otse mündivahetuse juurde, kui teha mündivahetus, millele järgneb mündivahetus.

Selleks, et salajase omandiõiguse üleandmise meetodid oleksid tõeliselt tõhusad ja väldiksid riski, et A kasutaja ajalugu seostatakse B kasutajaga, oleks paradoksaalselt vajalik, et nende kasutamine oleks laialdaselt teada. Kui müntide vahetamist kasutatakse massiliselt ja ametiasutused on sellest levinud tavast teadlikud, siis võiks luua usutava eitamise vormi. Kuid seni, kuni nende ülekannete kasutamine jääb marginaalseks, jäävad need meetodid minu arvates kasutajate jaoks liiga riskantseks.

Seni oleme uurinud peamiselt konfidentsiaalsusmeetodeid tehingute tasandil. Järgmises peatükis vaatleme küsimusi võrgu tasandil ja tehingu levitamisel.

Privaatsus P2P-võrgus

Neljandas osas arutasime, kui oluline on kasutada täielikku sõlme, et kaitsta oma tehingute konfidentsiaalsust. Siiski on oluline mõista, et teie sõlme võivad ka teie enda vastu suunatud rünnakud, mille eesmärk on teie tegevust puudutava teabe väljavõtmine. Seetõttu vaatleme selles peatükis erinevaid meetmeid, mida saate võtta oma privaatsuse kaitsmiseks mitte tehingute endi või bitcoini voogude tasandil, vaid võrgu tasandil.

Võilill

Üks võimalus vältida erinevaid deanonüümimise ründeid on kasutada Dandelioni ettepanekut. See ringhäälinguprotokoll vormistati BIP156s, kuid seda ei ole kunagi Bitcoinis rakendatud.

Dandelioni idee on parandada tehingu marsruutimise konfidentsiaalsust Bitcoini võrgus, et võidelda erinevate rünnakute vastu. Selle peamine eesmärk on varjata võrgus tehingu algselt edastanud lähtesõlme. Selle sõlme avalikustamine võib võimaldada Bitcoini tehingu sidumist konkreetse IP-aadressiga (kui sõlme tegutseb clearnetis), mis võib pakkuda sisenemispunkti ahela analüüsiks.

Selline seos Bitcoini tegevuse ja IP-aadressi vahel kujutab endast märkimisväärset ohtu kasutaja konfidentsiaalsusele. Paljud üksused on tõepoolest võimelised IP-aadressi hõlpsasti isikuga seostama. Siia kuuluvad valitsused ja Interneti-teenuste pakkujad. Veelgi enam, see teave võib muutuda avalikult kättesaadavaks, näiteks kui teie IP-aadress ja isikuandmed lekivad, kui veebisaidi andmebaasi häkitakse.

Klassikalise Bitcoini toimimise puhul edastatakse kasutaja poolt tema rahakoti tarkvaras tehtud tehingud tema isiklikku sõlme. See sõlmpunkt edastab uue tehingu kohe kõigile eakaaslastele, kellega ta on ühendatud.

BTC204

Seejärel kontrollivad need kolleegid tehingut, et tagada selle vastavus konsensuse ja kohalikele standardimisreeglitele. Kui tehing on kinnitatud, edastab iga eakaaslane omakorda tehingu oma eakaaslastele ja nii edasi.

BTC204

Selline plokki integreerimist ootavate tehingute jaotus on üsna tasakaalustatud ja statistiliselt prognoositav. Seda nõrkust võivad ära kasutada spioonisõlmed, kes teevad koostööd võrgu jälgimiseks ja analüüsimiseks, et tuvastada esimene tehingu edastanud sõlm. Kui vaatlejal õnnestub allikasõlme leida, võib ta oletada, et tehing pärineb selle sõlme operaatorilt. Seda tüüpi vaatlust saab kasutada selleks, et siduda tavaliselt anonüümseid tehinguid konkreetsete IP-aadressidega.

BTC204

BIP156 eesmärk on selle probleemi lahendamine. Selleks kehtestatakse uue tehingu levitamisel täiendav etapp, et säilitada anonüümsus enne laialdast avalikku levitamist. Dandelion kasutab kõigepealt "varre" faasi, kus tehing saadetakse läbi juhusliku sõlmede tee.

BTC204

Seejärel edastatakse tehing kogu võrgustikule "Fluff" etapis.

BTC204

Vars ja „Fluff“ viitavad tehingu leviku käitumisele võrgus, mis meenutab võilille (inglise keeles "Dandelion") kuju ja arengut.

Seega võivad nuhk-node potentsiaalselt jälgida tehingut tagasi sõlmeni, mis käivitas „Fluff“ faasi (masslevi), kuid see sõlm ei ole see, kes tehingu esimesena levitas, kuna ta sai selle varre viimaselt sõlmelt. Kui nuhk-node ei suuda varre jälgida, ei suuda nad ka allikasõlme tuvastada.

BTC204

Isegi spioonisõlmede olemasolul tüveprotsessi ajal jääb alati kahtlus, sest niipea, kui nad kohtavad ausat sõlme levikegraafis, ei suuda spioonid kindlaks teha, kas see sõlme on algne allikas või lihtsalt vahendaja.

BTC204

Selline marsruutimismeetod ähmastab jälgi, mis viivad tagasi lähtesõlme, mistõttu on raske jälgida tehingut läbi võrgu tagasi selle päritoluni. Dandelion parandab seega konfidentsiaalsust, piirates vastaste võimet võrgu anonüümsuse kaotamiseks. See meetod on veelgi tõhusam, kui tehing läbib "tümitamisetapis" sõlme, mis krüpteerib oma võrgusuhtluse, nagu Tor või P2P Transport V2.

BIP156 ei ole integreeritud Bitcoin Core'i ja on praegu klassifitseeritud kui "tagasi lükatud". Üks peamisi probleeme selle protokolliga on see, et tehingud tuleb enne verifitseerimist tüveprotsessi ajal edastada läbi vahepealsete sõlmede. Nagu me nägime, kontrollib tavalise Bitcoini mudeli puhul iga sõlmpunkt esmalt tehingu enne selle edastamist oma eakaaslastele. Kui tehing ei vasta sõlme konsensusreeglitele või kohalikele standardimisreeglitele, ignoreerib sõlm seda ja ei levita seda. See protsess on oluline DoS-rünnakute tõrjumiseks, kuna kogu võrku edastatakse ainult kehtivad tehingud. Mittekehtivad tehingud, mis võivad tekkida massiliselt võrgu ülekoormamiseks, peatatakse esimeses sõlmes ja need ei levi. Dandelioni peamine oht on, et see uus protokoll võib tekitada uusi DoS-rünnakute vektoreid, võimaldades kehtetute tehingute edastamist üle kogu võrgu.

P2P transport V2

P2P transport V2 on teine võrguprotokoll, mis on esitatud BIP324-s. See on uus versioon Bitcoini P2P transpordiprotokollist, mis sisaldab oportunistlikku krüpteerimist, et parandada sõlmedevahelise side konfidentsiaalsust ja turvalisust.

Selle täienduse eesmärk on lahendada mitmeid P2P-protokolli põhiversiooni probleeme. Ühest küljest muudab see vahetatavad andmed passiivse vaatleja jaoks eristamatuks muudest Internetis liikuvatest andmetest. Peamine eesmärk on takistada valitsustel, Interneti- ja VPN-teenuste pakkujatel Bitcoini kasutajate massilist jälgimist. Samuti muudab see nende üksuste jaoks keerulisemaks kindlaks teha, kas internetikasutaja on ka Bitcoini kasutaja, st kas ta opereerib täielikku sõlme.

P2P V2 aitab ka vähendada tsensuuri ja rünnakute ohtu, tuvastades andmepakettide spetsiifilisi mustreid. See muudab keerulisemaks ja kulukamaks eri tüüpi Sybil-rünnakute läbiviimise võrgu tasandil. Sybil-rünnak toimub siis, kui toimija loob mitu valeidentiteeti, et saada ebaõiglane eelis. Bitcoini võrgu kontekstis väljendub see sageli selles, et tegutseja kontrollib suurt arvu täielikke sõlmi ja kasutab neid agressiivselt ühenduste mitmekordistamiseks. Sybil-rünnakud võivad olla passiivsed, et koguda teavet ja ohustada kasutajate konfidentsiaalsust, või aktiivsed, Eclipse-rünnakute kujul. Viimased isoleerivad konkreetse sõlme ülejäänud võrgust, kas tsenseerides kasutajat või muutes tema poolt vastu võetud andmeid. Lõpuks muudab P2P V2 ka Man-In-The-Middle (MITM) rünnakud kulukamaks ja kergemini avastatavaks.

P2P V2 rakendatud krüpteerimine ei sisalda autentimist, et mitte lisada asjatut keerukust või ohustada asjaolu, et ühendus võrguga jääb lubadeta. Sellegipoolest pakub see uus P2P-transpordiprotokoll paremat turvalisust passiivsete rünnakute vastu ning muudab aktiivsed rünnakud oluliselt kulukamaks ja avastatavamaks. Pseudosituatsioonilise andmevoo lisamine võrgusõnumitesse muudab ründajate jaoks keerulisemaks side tsenseerimise või manipuleerimise.

P2P V2 transport lisati valikuna (vaikimisi välja lülitatud) Bitcoin Core'i versiooni 26.0, mis võeti kasutusele 2023. aasta detsembris. Seejärel lülitati see vaikimisi sisse 2024. aasta aprilli versioonis 27.0. Seda saab muuta konfiguratsioonifaili valikuga v2transport=.

Tor

Teine lihtne lahendus, et vältida võrgusõlme konfidentsiaalsuse kaotamise ohtu, on käivitada see täielikult Tori all.

Tor on releeserverite (sõlmede) võrgustik, mis anonüümsustab TCP-ühenduste päritolu Internetis. See toimib andmete kapseldamise teel mitme krüpteerimiskihiga. Iga releesõlm eemaldab ühe kihi, et paljastada järgmise sõlme aadress, kuni lõpliku sihtkohani jõutakse. Tor-võrk tagab anonüümsuse, takistades vahendussõlmedel teada saada nii andmete päritolu kui ka sihtkohta, mistõttu on vaatlejal väga raske jälgida kasutaja tegevust.

BTC204

Tor mitte ainult ei krüpteeri andmeid, vaid maskeerib ka side päritolu ja sihtkoha. Kasutades Tor'i oma isikliku sõlme sidepidamiseks, tugevdate oma tehingute konfidentsiaalsust: teie Interneti-teenuse pakkuja ei saa sidet dekrüpteerida ja teised Bitcoini võrgu sõlmed ei saa tuvastada lähtesõlme IP-aadressi. Veelgi enam, Tor varjab ka teie enda Bitcoini kasutamist teie Interneti-teenuse pakkuja eest.

Selle meetodi peamine risk on see, et Tor on Bitcoinist sõltumatu protokoll. Kui teil on Tori all töötav Bitcoini sõlmpunkt ja Tor lakkab töötamast, siis ei saa teie Bitcoini sõlmpunkt enam suhelda.

Samuti on oluline märkida, et Toril toimuv side on aeglasem. See viivitus on eriti häiriv sõlme algse käivitamise ajal, kuna IBD (Initial Block Download) nõuab palju suhtlust. Selle tulemusena võib teie esialgne sünkroniseerimine Bitcoini võrguga võtta Tori kasutades oluliselt kauem aega. Samuti on võimalik teostada IBD clearnetis, seejärel aktiveerida Tor teise sammuna. Kuigi see meetod avalikustab teie Bitcoini sõlme olemasolu teie Interneti-teenuse pakkujale, kaitseb see teie isiklikke tehinguandmeid, kui te lülitute Torile.

Olles uurinud erinevaid konfidentsiaalsusmeetodeid võrgu tasandil, tahaksin teile järgmistes peatükkides tutvustada ka kahte elegantset lahendust aadresside korduvkasutamise vältimiseks: BIP47 ja Silent Payments.

BIP47 ja korduvkasutatavad maksekoodid

Nagu nägime 3. osas, on aadresside korduvkasutamine tõsine takistus kasutajate konfidentsiaalsusele Bitcoini protokollis. Nende riskide vähendamiseks on tungivalt soovitatav luua iga uue rahakotti laekunud makse jaoks tühi vastuvõtuaadress. Kuigi uue aadressi genereerimine on nüüd tänu kaasaegse tarkvara ja hierarhiliste deterministlike rahakottide kasutamisele lihtsustatud, võib see praktika tunduda vastunäidustatud.

BTC204

Traditsioonilises pangandussüsteemis oleme näiteks harjunud jagama oma IBANi, mis jääb alati samaks. Kui oleme selle kellelegi andnud, saab ta saata meile mitu makset, ilma et ta peaks meiega uuesti suhtlema. Neopangad pakuvad ka moodsamaid võimalusi, näiteks unikaalsete e-posti aadresside kasutamine PayPalis või RevTagide kasutamine Revolutis. Isegi väljaspool finantssfääri on meie igapäevased tunnused, nagu meie postiaadress, telefoninumber ja e-posti aadress, samuti unikaalsed ja püsivad. Me ei pea neid iga uue suhtluse puhul uuendama.

BTC204

Bitcoin töötab aga teisiti: iga sissetuleva tehingu jaoks tuleb luua uus vastuvõtuaadress. See kompromiss kasutusmugavuse ja konfidentsiaalsuse vahel ulatub tagasi Bitcoini valge raamatu algusaegadesse. Juba oma dokumendi esimese versiooni avaldamisel 2008. aasta lõpus hoiatas Satoshi Nakamoto meid selle ohu eest:

**Tuletõkke lisana võiks iga tehingu jaoks kasutada uut võtmepaari, et need ei oleks seotud ühise omanikuga

On mitmeid viise, kuidas saada mitu makset ühe identifikaatori kohta, ilma et peaks aadressi uuesti kasutama. Igal neist on omad kompromissid ja puudused. Nende meetodite hulgas on Justus Ranvieri väljatöötatud ja 2015. aastal avaldatud ettepanek BIP47 . Selle ettepaneku eesmärk on luua korduvkasutatavad maksekoodid, mis võimaldavad teha mitu tehingut ühe ja sama isiku vastu, vältides samal ajal aadressi korduvkasutamist. Lühidalt öeldes on BIP47 eesmärk pakkuda maksesüsteemi, mis on sama intuitiivne kui unikaalne identifikaator, säilitades samal ajal tehingute konfidentsiaalsuse.

BTC204

BIP47 ei paranda otseselt kasutajate konfidentsiaalsust, kuna BIP47 makse pakub sama suurt konfidentsiaalsust kui klassikaline Bitcoini tehing, mille puhul kasutatakse tühja aadressi. Siiski muudab see Bitcoini kasutamise mugavamaks ja intuitiivsemaks, mis tavaliselt ohustab konfidentsiaalsust. Tänu BIP47-le saavutab see kasutusmugavus sama konfidentsiaalsuse taseme kui klassikaline tehing. Seetõttu on BIP47 nii väärtuslik vahend privaatsuse säilitamiseks.

Esialgu tehti ettepanek integreerida BIP47 Bitcoin Core'i, kuid seda ei rakendatud kunagi. Mõned tarkvararakendused otsustasid seda siiski ise rakendada. Näiteks Samourai rahakoti meeskonnad on välja töötanud oma BIP47 rakendamise nimega "PayNym".

BIP47 ja PayNym üldpõhimõte

BIP47 eesmärk on võimaldada suure hulga maksete vastuvõtmist ilma aadresside korduvkasutamiseta. See põhineb korduvkasutatava maksekoodi kasutamisel, mis võimaldab erinevatel emitentidel saata mitu makset ühele koodile, mis kuulub teisele kasutajale. Selle tulemusena ei pea saaja iga tehingu puhul esitama uut, tühja aadressi, mis lihtsustab oluliselt andmevahetust, säilitades samas konfidentsiaalsuse.

BTC204

Seega võib kasutaja oma maksekoodi täiesti vabalt jagada, kas sotsiaalvõrgustikes või oma veebisaidil, ilma et ta riskiks konfidentsiaalsuse kaotamisega, erinevalt tavapärasest vastuvõtja aadressist või avalikust võtmest.

Tehingu sooritamiseks vajavad mõlemad osapooled BIP47 rakendusega Bitcoini rahakotti, näiteks PayNym on Samurai Wallet või Sparrow Wallet. Nende maksekoodide ühine kasutamine loob nende vahel salajase kanali. Selle kanali tõhusaks loomiseks peab väljastaja tegema Bitcoini plokiahelas konkreetse tehingu, mida nimetatakse "teavitustehinguks" (sellest lähemalt hiljem).

Kahe kasutaja maksekoodide kombineerimine tekitab ühiseid saladusi, mis omakorda loovad suure hulga unikaalseid Bitcoini vastuvõtuaadresse (täpselt 2^32 ehk umbes 4 miljardit). Seega ei ole BIP47 kaudu tehtud maksed tegelikult adresseeritud mitte maksekoodile endale, vaid pigem klassikalistele vastuvõtuaadressidele, mis on tuletatud asjaomaste kasutajate maksekoodidest.

Maksekood on seega virtuaalne identifikaator, mis on tuletatud portfelli seemnest. Portfelli hierarhilises tuletamisstruktuuris asub maksekood 3. tasandil, st kontotasandil.

BTC204

BIP47 tuletamise sihtmärk on identifitseeritud indeksiga "47" ("0x8000002F"), mis viitab BIP47-le. Taaskasutatava maksekoodi tuletamise tee näide on järgmine:

m/47'/0'/0'/

Et anda teile aimu, kuidas maksekood välja näeb, on siin minu oma:

PM8TJSBiQmNQDwTogMAbyqJe2PE2kQXjtgh88MRTxsrnHC8zpEtJ8j7Aj628oUFk8X6P5rJ7P5qDudE4Hwq9JXSRzGcZJbdJAjM9oVQ1UKU5j2nr7VR5

Seda koodi saab kodeerida ka QR-koodina, et lihtsustada suhtlemist, nagu tavalist vastuvõtuaadressi.

Mis puutub PayNym Bots, robotid, mida mõnikord Twitteris näha, siis need on Samourai rahakoti poolt loodud maksekoodi visuaalsed kujutised. Need genereeritakse hash-funktsiooni abil, mis annab neile peaaegu unikaalsuse. Nad on väikese tähemärkide jada kujul, mis algab tähega + :

+throbbingpond8B1
+twilightresonance487
+billowingfire340

Neid avatare saab esitada ka piltidena:

BTC204

Kuigi neil robotitel ei ole konkreetset tehnilist funktsiooni BIP47 raamistikus, mängivad nad siiski rolli kasutajate suhtluse hõlbustamisel, pakkudes kergesti äratuntavat visuaalset identiteeti.


Käesoleva peatüki järgmistes BIP47-le pühendatud osades vaatame üksikasjalikult, kuidas see töötab, pöörates erilist tähelepanu kasutatud krüptograafilistele meetoditele. Nende mõnevõrra tehniliste selgituste täielikuks mõistmiseks on esmalt oluline mõista HD-kontode struktuuri, võtme tuletamise protseduure ja elliptilise kõveruse krüptograafia põhialuseid. Kui soovite neisse mõistetesse süveneda, siis on veel üks tasuta koolituskursus saadaval Plan ₿ Network :

https://planb.network/courses/46b0ced2-9028-4a61-8fbc-3b005ee8d70f

Soovitan teil neid siiski jälgida, sest BIP47 tehnilise toimimise mõistmine teeb teile palju lihtsamaks teiste sarnaste ettepanekute mõistmise, mida arutame järgmistes peatükkides


Taaskasutatav maksekood

Nagu eespool mainitud, asub korduvkasutatav maksekood HD rahakoti 3. sügavusel, mis teeb selle võrreldavaks "xpubiga" nii oma positsiooni poolest rahakoti struktuuris kui ka oma rolli poolest.

80 baidi pikkune maksekood jaguneb järgmiselt:

Siin on minu eelmises punktis juba esitatud korduvkasutatava maksekoodi heksadetsimaalne esitus:

0x010002a0716529bae6b36c5c9aa518a52f9c828b46ad8d907747f0d09dcd4d9a39e97c3c5f37c470c390d842f364086362f6122f412e2b0c7e7fc6e32287e364a7a36a00000000000000000000000000
BTC204

Seejärel tuleb lisada algusse eesliite "P", mis näitab selgelt, et tegemist on maksekoodiga. Seda baiti tähistab "0x47":

0x47010002a0716529bae6b36c5c9aa518a52f9c828b46ad8d907747f0d09dcd4d9a39e97c3c5f37c470c390d842f364086362f6122f412e2b0c7e7fc6e32287e364a7a36a00000000000000000000000000

Lõpuks, et tagada maksekoodi terviklikkus, arvutatakse kontrollsumma, kasutades HASH256, mis koosneb kahekordsest hashist, kasutades SHA256 funktsiooni. Seejärel ühendatakse selle hashi esimesed neli baiti maksekoodi lõppu:

0x47010002a0716529bae6b36c5c9aa518a52f9c828b46ad8d907747f0d09dcd4d9a39e97c3c5f37c470c390d842f364086362f6122f412e2b0c7e7fc6e32287e364a7a36a00000000000000000000000000567080c4
BTC204

Kui need sammud on lõpetatud, on maksekood valmis. Lõpliku versiooni saamiseks tuleb see vaid teisendada baas 58-ks:

PM8TJSBiQmNQDwTogMAbyqJe2PE2kQXjtgh88MRTxsrnHC8zpEtJ8j7Aj628oUFk8X6P5rJ7P5qDudE4Hwq9JXSRzGcZJbdJAjM9oVQ1UKU5j2nr7VR5

Maksekoodi loomisel kasutame kokkusurutud avalikku võtit ja string-koodi. Mõlemad tuletatakse deterministlikult ja hierarhiliselt rahakoti seemnest. Selleks kasutatav tuletamise tee on :

m/47'/0'/0'/

Konkreetselt öeldes, et genereerida kokkusurutud avalik võti ja korduvkasutatava maksekoodiga seotud string-kood, alustame rahakoti seemnest peamise privaatvõtme arvutamisega. Seejärel jätkame tütrivõtmete paari tuletamist, kasutades indeksit 47 + 2^31 (tugevdatud tuletamine). Sellele järgneb veel kaks järjestikust tütrepaari tuletamist, kasutades indeksit 2^31 (tugevdatud tuletamine).

BTC204

Diffie-Hellmani võtmevahetus elliptilistel kõveratel (ECDH)

BIP47 keskmes olev krüptograafiline protokoll on tuntud lühendi ECDH all, mis tähendab Elliptic-Curve Diffie-Hellman. See meetod on algse Diffie-Hellmani võtmevahetuse variant.

  1. aastal kasutusele võetud Diffie-Hellmani protokoll on võtmekokkuleppe protokoll, mis võimaldab kahel osapoolel, kellel mõlemal on võtmepaar (avalik ja privaatne), leppida kokku ühises saladuses, isegi kui nad suhtlevad ainult avaliku, turvamata kanali kaudu.
BTC204

Seda jagatud saladust (antud juhul sinist võtit) saab seejärel kasutada teisteks toiminguteks. Tavaliselt saab seda jagatud saladust kasutada side krüpteerimiseks ja dekrüpteerimiseks turvamata võrgus:

BTC204

Selle saavutamiseks kasutab Diffie-Hellman jagatud saladuse arvutamiseks moodulaararitmeetikat. Siin on, kuidas see töötab maakeelselt:

BTC204

Selles populariseerimises tähistab pruun värv Alice'i ja Bobi jagatud saladust. Kujutage ette, et tegelikkuses on ründajal võimatu eraldada oranži ja rohelist värvi, et leida Alice'i või Bobi salajane värv.

Nüüd vaatame, kuidas see protokoll tegelikult toimib, mitte värvianaloogiate, vaid reaalarvude ja moodularvutuse abil!

Enne kui me käsitleme Diffie-Hellmani mehhanisme, lubage mul lühidalt meelde tuletada kahte olulist matemaatilist mõistet, mida me vajame:

Diffie-Hellmani võtmevahetus Alice'i ja Bobi vahel toimub järgmiselt:

A on võrdne g võimsusega a moodulitega p :

A = g^a \bmod p

B on võrdne g võimsusega b moodulitega p :

B = g^b \bmod p

z on võrdne B võimsusega a moodulitega p :

z = B^a \bmod p

Meeldetuletus:

B = g^b \bmod p

Tulemuseks on :

z = B^a \bmod p
z = (g^b)^a \bmod p

Kohaldades võimsuseeskirju :

(x^n)^m = x^{nm}

Tulemuseks on :

z = g^{ba} \bmod p

z on võrdne A võimsusega b moodulitega p :

z = A^b \bmod p

Tulemuseks on :

z = (g^a)^b \bmod p
z = g^{ab} \bmod p
z = g^{ba} \bmod p

Tänu modulo-operaatori distributiivsusele saavad Alice ja Bob täpselt sama väärtuse z. See arv esindab nende ühist saladust, mis on samaväärne pruuni värviga eelmises populariseerimises värvipurkidega. Nüüd saavad nad seda ühist saladust kasutada oma side sümmeetriliseks krüpteerimiseks turvamata võrgus.

BTC204

Ründaja, isegi kui ta teab p, g, A ja B (avalikud väärtused), ei saa arvutada a, b või z (privaatsed väärtused). Selleks tuleks eksponentimine ümber pöörata, mis on võimatu, kui ei proovita kõiki võimalusi ükshaaval, sest see võrdub diskreetse logaritmi, st eksponendi pöördväärtuse arvutamisega piiratud tsüklilises rühmas.

Niisiis, kui a, b ja p väärtused on piisavalt suured, on Diffie-Hellmani protokoll turvaline. Tavaliselt oleks 2048-bitiste parameetrite (600-kohaline kümnendarv) korral kõigi võimalike a ja b võimaluste testimine ebapraktiline. Praeguseks peetakse seda algoritmi selliste arvude puhul turvaliseks.

Siin peitubki Diffie-Hellmani protokolli peamine puudus. Et olla turvaline, peab algoritm kasutama suuri numbreid. Seepärast eelistame tänapäeval kasutada ECDH (Elliptic Curve Diffie-Hellman) algoritmi, mis on Diffie-Hellmani variant, mis põhineb algebralisel kõveral, täpsemalt elliptilisel kõveral. See lähenemisviis võimaldab töötada palju väiksemate arvudega, säilitades samas samaväärse turvalisuse, vähendades seega arvutamiseks ja salvestamiseks vajalikke ressursse.

Algoritmi üldine põhimõte jääb samaks. Kuid selle asemel, et kasutada juhuslikku arvu a ja arvu A, mis arvutatakse a põhjal modulaarse ekponentseerimise teel, kasutame me elliptilisel kõveral loodud võtmepaari. Selle asemel, et tugineda modulo-operaatori jaotatavusele, kasutame elliptiliste kõverate grupiseadust, täpsemalt selle seaduse assotsiatiivsust.

Lühidalt selgitades krüptograafia põhimõtet elliptiliste kõverate puhul, kujutab privaatne võti endast juhuslikku arvu vahemikus 1 kuni n-1, kus n tähistab kõvera järjekorda. Avalik võti seevastu on konkreetne punkt sellel kõveral, mis saadakse privaatvõttest, lisades ja kahekordistades punkte genereerivast punktist vastavalt võrrandile :

K = k \cdot G

Selles valemis tähistab K avalikku võtit, k privaatvõtit ja G genereerimispunkti.

Nende võtmete oluline omadus on see, et K on lihtne arvutada k ja G põhjal, samas kui k leidmine K ja G põhjal on praktiliselt võimatu. See asümmeetria tekitab ühesuunalise funktsiooni. Teisisõnu, avaliku võtme arvutamine on lihtne, kui on teada privaatne võti, kuid avaliku võtme põhjal on privaatse võtme leidmine võimatu. Seda turvalisust toetab veelgi diskreetse logaritmi arvutuslik keerukus.

Kasutame seda omadust, et kohandada meie Diffie-Hellmani algoritmi. ECDH tööpõhimõte on järgmine:

K_a = k_a \cdot G
K_b = k_b \cdot G
(x,y) = k_a \cdot K_b
(x,y) = k_b \cdot K_a

Nad saavad sama ühise saladuse, sest :

(x,y) = k_a \cdot K_b = k_a \cdot (k_b \cdot G) = (k_a \cdot k_b) \cdot G = (k_b \cdot k_a) \cdot G = k_b \cdot (k_a \cdot G) = k_b \cdot K_a

Võimalik ründaja, kes jälgib turvamata avalikku võrku, saab teada ainult iga isiku avalikud võtmed ja valitud elliptilise kõveruse parameetrid. Nagu eespool selgitatud, ei piisa ainult sellest teabest isiklike võtmete kindlaksmääramiseks. Järelikult ei saa ründaja leida Alice'i ja Bobi vahel jagatud saladust.

ECDH on seega võtmevahetusalgoritm. Seda kasutatakse sageli koos teiste krüptograafiliste meetoditega, et luua terviklik protokoll. Näiteks ECDH on TLS-i (Transport Layer Security), Interneti transpordikihi jaoks kasutatava krüpteerimis- ja autentimisprotokolli keskmes. TLS kasutab ECDHE-d võtmevahetuseks, mis on ECDH variant, kus võtmed on ajutised, et tagada püsiv konfidentsiaalsus. Lisaks kasutab TLS autentimisalgoritme, nagu ECDSA, krüpteerimisalgoritme, nagu AES, ja hash-funktsioone, nagu SHA256.

TLS vastutab "s" eest sõnas "https" ja tabaluku eest teie brauseri aadressiribal - need on krüpteeritud side sümbolid. Selle kursuse läbimisel kasutate ECDH-d ja suure tõenäosusega kasutate seda igapäevaselt, ilma et te sellest isegi teaksite.

Teatamistehing

Nagu nägime eelmises punktis, on ECDH Diffie-Hellmani andmevahetuse variant, mis kasutab elliptilisel kõveral loodud võtmepaare. Hea, et meil on juba palju seda standardit järgivaid võtmepaare meie Bitcoini rahakottides! BIP47 idee on kasutada mõlema osapoole hierarhiliste deterministlike Bitcoini rahakottide võtmepaare, et luua nende vahel jagatud, efemeersed saladused. BIP47 kasutab selle asemel ECDHE (Elliptic Curve Diffie-Hellman Ephemeral).

BTC204

ECDHE-d kasutatakse kõigepealt BIP47-s, et edastada maksekood saatjalt saajale. See on kuulus teavitustehing. See etapp on oluline, sest BIP47 tõhusaks toimimiseks peavad mõlemad osapooled (saatja ja vastuvõtja) teineteise maksekoode tundma. See teadmine võimaldab tuletada ajutisi avalikke võtmeid ja seega ka nendega seotud tühje vastuvõtuaadresse.

Enne seda vahetust on saatja loogiliselt juba teadlik saaja maksekoodist, olles selle saanud väljaspool ahelat, näiteks oma veebisaidilt, arvelt või sotsiaalvõrgustikust. Kuid saaja ei ole tingimata teadlik saatja maksekoodist. Kood tuleb talle siiski edastada; vastasel juhul ei ole tal võimalik tuletada efektseid võtmeid, mis on vajalikud aadresside tuvastamiseks, kus tema bitcoinid on salvestatud, või juurdepääsuks oma rahalistele vahenditele. Kuigi saatja koodi edastamist saab tehniliselt teostada väljaspool ahelat muude sidevahendite abil, tekitab see probleemi, kui rahakotti soovitakse kätte saada ainult seemnest.

Selle põhjuseks on see, et erinevalt tavapärastest aadressidest ei tuletata BIP47-aadressid otse saaja seemnest - sellisel juhul oleks lihtsam kasutada "xpub"-i -, vaid need tulenevad kahe maksekoodi - saatja ja saaja koodi - kombineerimisest. Seega, kui saaja kaotab oma rahakoti ja üritab seda taastada oma seemnest, saab ta tagasi oma maksekoodi, mis on tuletatud otse tema seemnest. Kuid selleks, et taastada efemeriaalseid aadresse, vajab ta ka kõigi nende maksekoode, kes on talle BIP47 kaudu bitcoine saatnud. Siit ka teavitustehingu tähtsus, mis võimaldab seda teavet Bitcoini plokiahelasse salvestada, kuid samas on see väga lihtsalt leitav, ilma et peaks otsima läbi miljardite tehingute, mis on tehtud alates selle käivitamisest 2009. aastal.

BTC204

Seega oleks võimalik rakendada BIP47 ilma teavitustehingut kasutamata, tingimusel, et iga kasutaja säilitab varukoopiaid oma eakaaslaste maksekoodidest. Seda meetodit on aga keeruline hallata, kuni ei ole välja töötatud lihtsat, töökindlat ja tõhusat lahendust nende varukoopiate koostamiseks, säilitamiseks ja ajakohastamiseks. Praeguse seisuga on teavitustehing peaaegu vältimatu.

Järgmistes peatükkides vaatleme aga teisi protokolle, millel on sarnased eesmärgid nagu BIP47, kuid mis ei nõua teatamistehingut. Need alternatiivid toovad siiski kaasa oma kompromissid.

Lisaks maksekoodide salvestamise rollile on teavitustehingul, nagu nimigi ütleb, ka teavitamisfunktsioon saaja jaoks. See teavitab saaja klienti sellest, et uus maksetunnel on loodud, ja soovitab tal jälgida tekkinud eufemeriaalseid aadresse.

BIP47 konfidentsiaalsusmudel

Enne teatamistehingu tehnilise toimimise üksikasjalikku kirjeldamist on oluline arutada konfidentsiaalsusmudelit, mis on seotud piiripunktiga47 ja mis õigustab teatavaid meetmeid, mida võetakse selle esialgse tehingu loomisel.

Maksekood ise ei kujuta endast otsest ohtu konfidentsiaalsusele. Erinevalt traditsioonilisest Bitcoini mudelist, mille eesmärk on katkestada seos kasutaja identiteedi ja tema tehingute (mis on avalikud) vahel, säilitades võtmete ja aadresside anonüümsuse, saab maksekoodi avalikult seostada identiteediga, ilma et see kujutaks endast ohtu.

Seda seetõttu, et maksekoodi ei kasutata otseselt BIP47 makseid saavate aadresside tuletamiseks. Selle asemel genereeritakse need aadressid ECDH-rakenduse kaudu kahe osapoole maksekoodidest tuletatud võtmete vahel.

Seega ei põhjusta maksekood iseenesest otseselt konfidentsiaalsuse kaotust, sest sellest tuletatakse ainult teate aadress. Kuigi see aadress võib avaldada teatud teavet, ei avalda see tavaliselt osapooli, kellega te tehinguid teete, välja arvatud juhul, kui tehakse põhjalik ahelaanalüüs. Tõepoolest, kui saatja kasutab teatistehingu sooritamiseks UTXOsid, mida saab seostada tema identiteediga, siis on võimalik järeldada, et tema identiteet on tõenäoliselt seotud BIP47 maksetega teie maksekoodiga. See ei paljasta aluseks olevaid tehinguid, kuid näitab nende tõenäolist olemasolu.

Seetõttu on oluline säilitada see range eraldatus kasutajate maksekoodide vahel. Seda silmas pidades on koodi esialgne edastamine maksete konfidentsiaalsuse seisukohast kriitiline hetk, mis on protokolli nõuetekohaseks toimimiseks hädavajalik. Kui üks maksekoodidest on avalikult kättesaadav (näiteks veebisaidil), ei tohi teine kood, st saatja kood, mingil juhul olla seotud esimese koodiga.

Võtame konkreetse näite: Soovin teha annetuse poliitilisele liikumisele BIP47 kaudu:

Kuidas ma saan oma koodi riskivabalt edasi anda? Tavapäraste sidevahendite kasutamine võib viia teabe lekkimiseni ja seeläbi seostada mind selle poliitilise liikumisega. Teatistehing pakub lahenduse tänu krüpteerimiskihile, mis takistab just sellist seost kahe koodi vahel. Kuigi see ei ole ainus meetod saatja maksekoodi salajaseks edastamiseks, on see väga tõhus meetod.

Alloleval joonisel näitavad oranžid jooned punkte, kus infovoog peab olema katkestatud, ja mustad nooled näitavad ühendusi, mida kolmandad isikud võivad jälgida:

BTC204

Tegelikkuses on Bitcoini traditsioonilise konfidentsiaalsusmudeli puhul sageli keeruline täielikult eraldada teabevoolu võtmepaari ja kasutaja vahel, eriti kaugtehingute puhul. Näiteks annetuskampaania raames peab saaja paratamatult avalikustama aadressi või avaliku võtme oma veebisaidi või sotsiaalvõrgustike kaudu. BIP47 korrektne kasutamine, eriti teavitustehingu puhul, võimaldab seda probleemi vältida tänu ECDHE-le ja krüpteerimiskihile, mida me hiljem vaatleme.

Loomulikult kehtib Bitcoini klassikaline konfidentsiaalsusmudel endiselt efemeersete avalike võtmete suhtes, mis on tuletatud kahe maksekoodi kombinatsioonist. Need kaks mudelit on tegelikult üksteist täiendavad. Siinkohal tahan rõhutada, et erinevalt tavalisest avaliku võtme kasutamisest Bitcoini vastuvõtmiseks saab maksekoodi siduda konkreetse identiteediga, sest teave "Alice teeb tehinguid Bobiga" on teises etapis katkenud. Maksekoodi kasutatakse makseaadresside genereerimiseks, kuid üksnes plokiahela vaatluse põhjal on võimatu siduda BIP47 maksetehingut selle teostamiseks kasutatud maksekoodidega, välja arvatud juhul, kui asjaomased UTXOd olid juba varem identiteediga seotud ja kasutajad seostasid oma maksekoodid oma vastavate identiteetidega.

Kokkuvõtteks võib öelda, et BIP47 maksete pakutavat konfidentsiaalsusmudelit võib pidada paremaks kui Bitcoini põhimudelit, kuigi see ei tähenda, et see on maagiline.

Teavitustehingu koostamine

Nüüd vaatame, kuidas see teavitustehing toimib. Kujutame ette, et Alice soovib saata raha Bobile, kasutades BIP47. Minu näites on Alice saatja ja Bob vastuvõtja. Bob on oma veebilehel avaldanud oma maksekoodi. Alice teab seega juba Bobi maksekoodi.

1- Alice arvutab ECDH-ga jagatud saladuse :

a

B = b \cdot G $$

S = a \cdot B $$

$$ f = \text{HMAC-SHA512}(o, x) $$$

**2 - Alice konverteerib oma isikliku maksekoodi baasil 2 (binaarseks) **

3- See kasutab seda pimendustegurit võtmena, et teostada sümmeetrilist krüpteerimist oma maksekoodi kasuliku koormuse suhtes. Kasutatav krüpteerimisalgoritm on lihtsalt XOR. Tehtav operatsioon on võrreldav Vernami šifriga, mida tuntakse ka kui "One-Time Pad".

$$ f = f1 || f2 $$$

x' = x \oplus f1 $$

c' = c \oplus f2 $$

4- Alice'il on seega praegu oma maksekood koos krüpteeritud kasuliku koormusega. Ta koostab ja edastab tehingu, mis sisaldab tema avalikku võtit A sisendina, väljundit Bobi teavitusaadressile ja väljundit OP_RETURN, mis koosneb tema maksekoodist koos krüpteeritud kasuliku koormusega. See tehing on teavitustehing.

OP_RETURN on op-kood, mis tähistab Bitcoini tehingu väljundit kehtetuna. Tänapäeval kasutatakse seda Bitcoini plokiahelas teabe edastamiseks või ankurdamiseks. See võib salvestada kuni 80 baiti andmeid, mis seejärel kirjutatakse ahelasse ja on nähtav kõigile teistele kasutajatele.

Nagu me nägime eelmistes punktides, kasutatakse ECDH-d selleks, et luua jagatud saladus kahe kasutaja vahel, kes suhtlevad ebaturvalise võrgu kaudu ja mida ründajad võivad jälgida. BIP47-s kasutatakse ECDH-d Bitcoini võrgus suhtlemiseks, mis on oma olemuselt läbipaistev suhtlusvõrk ja mida paljud ründajad jälgivad. ECDH võtmevahetuse kaudu arvutatud jagatud saladust kasutatakse seejärel edastatava salajase teabe - saatja maksekoodi (Alice) - krüpteerimiseks.

Võtan kokku just nähtud sammud, mida me koos nägime, et viia läbi teavitustehing:

BTC204

Tehingu teatamine: praktiline uuring

Et mõista selle toimimist üksikasjalikumalt ja eelkõige OP_RETURN kasutamist, vaatame ühte reaalset teavitustehingut. Viisin sellise tehingu läbi testneti, mille leiate siia klõpsates.

BTC204

Vaadates seda tehingut, näeme juba, et sellel on üks sisend ja 4 väljundit:

Kõige huvitavam on ilmselt uurida väljundit 0, kasutades OP_RETURN. Vaatame lähemalt, mida see sisaldab. Siin on scriptPubKey heksadekaalarvudes :

6a4c50010002b13b2911719409d704ecc69f74fa315a6cb20fdd6ee39bc9874667703d67b164927b0e88f89f3f8b963549eab2533b5d7ed481a3bea7e953b546b4e91b6f50d800000000000000000000000000

Selles käsikirjas on mitu osa. Esiteks, :

6a4c

Operatsioonikoodide hulgas võime ära tunda 0x6a, mis tähistab OP_RETURN ja 0x4c, mis tähistab OP_PUSHDATA1.

Viimasele opkoodile järgnev bait näitab järgneva maksekoormuse suurust. See näitab 0x50 ehk 80 baiti:

6a4c50

Järgmisena on meil minu maksekoodi metaandmed selge tekstina:

010002

Minu maksekoodi avaliku võtme krüpteeritud abscissa :

b13b2911719409d704ecc69f74fa315a6cb20fdd6ee39bc9874667703d67b164

Minu maksekoodi krüpteeritud string-kood :

927b0e88f89f3f8b963549eab2533b5d7ed481a3bea7e953b546b4e91b6f50d8

Ja lõpuks täidetakse 80 baidini, mis on OP_RETURN standardne suurus:

00000000000000000000000000

Et aidata teil mõista, siin on minu maksekood tavalises tekstis baas 58 :

PM8TJQCyt6ovbozreUCBrfKqmSVmTzJ5vjqse58LnBzKFFZTwny3KfCDdwTqAEYVasn11tTMPc2FJsFygFd3YzsHvwNXLEQNADgxeGnMK8Ugmin62TZU

Ja baasil 16 :

4701000277507c9c17a89cfca2d3af554745d6c2db0e7f6b2721a3941a504933103cc42add94881210d6e752a9abc8a9fa0070e85184993c4f643f1121dd807dd556d1dc000000000000000000000000008604e4db

Kui me võrdleme minu lihtkirjas maksekoodi ja OP_RETURN, näeme, et HRP (0x47) ja kontrollsumma (0x8604e4db) ei ole edastatud. See on normaalne, sest see teave on mõeldud inimestele.

Järgmisena saame tuvastada versiooni (0x01), bitivälja (0x00) ja avaliku võtme pariteedi (0x02). Ja maksekoodi lõpus tühjad baitid (0x000000000000000000000000000000000000000000), mis võimaldavad polsterdamist, et saavutada kokku 80 baiti. Kõik need metaandmed edastatakse krüpteerimata.

Lõpuks võime täheldada, et avaliku võtme abscissa (0x77507c9c17a89cfca2d3af554745d6c2db0e7f6b2721a3941a504933103cc42a) ja string-kood (0xdd94881210d6e752a9abc8a9fa0070e85184993c4f643f1121dd807dd556d1dc) on krüpteeritud. See on maksekoodi kasulik koormus.

Mis on XOR?

Eelmistes punktides nägime, et maksekood edastatakse krüpteeritult XOR-operatsiooni abil. Vaatame lähemalt, kuidas see operaator töötab, sest seda kasutatakse krüptograafias laialdaselt.

XOR on biti kaupa loogiline operaator, mis põhineb Bool'i algebral. Arvestades kahte bittidena esitatud operandit, annab ta tagasi 1, kui sama astme bitid on erinevad, ja 0, kui sama astme bitid on võrdsed. Siin on XOR tõesustabel vastavalt operandide D ja E väärtustele:

| D | E | D XOR E |

| --- | --- | ------- |

| 0 | 0 | 0 |

| 0 | 1 | 1 |

| 1 | 0 | 1 |

| 1 | 1 | 0 |

Näiteks:

0110 \oplus 1110 = 1000

Või :

010011 \oplus 110110 = 100101

ECDH puhul on XOR-i kasutamine krüpteerimiskihina eriti järjekindel. Esiteks on krüpteerimine tänu sellele operaatorile sümmeetriline. See tähendab, et saaja saab maksekoodi dekrüpteerida sama võtmega, mida kasutati krüpteerimiseks. Krüpteerimis- ja dekrüpteerimisvõtmed arvutatakse ECDH abil jagatud saladusest. Selline sümmeetria on võimalik tänu XOR-operaatori kommutatiivsuse ja assotsiatiivsuse omadustele:

D \oplus D = 0
D \oplus 0 = D
D \oplus E = E \oplus D
D \oplus (E \oplus Z) = (D \oplus E) \oplus Z = D \oplus E \oplus Z

Kui :

D \oplus E = L

Siis :

D \oplus L = D \oplus (D \oplus E) = D \oplus D \oplus E = 0 \oplus E = E \\
\therefore D \oplus L = E

Teiseks on see krüpteerimismeetod väga sarnane Vernami (One-Time Pad) krüpteerimismeetodiga, mis on ainus seni teadaolev krüpteerimisalgoritm, millel on tingimusteta (või absoluutne) turvalisus. Selleks, et Vernami šifril oleks see omadus, peab krüpteerimisvõti olema täiesti juhuslik, sama suur kui sõnum ja seda tuleb kasutada ainult üks kord. BIP47 puhul kasutatud krüpteerimismeetodi puhul on võti tõepoolest sama suur kui sõnum ja pimendustegur on täpselt sama suur kui avaliku võtme abssiidiumi ja maksekoodi stringikoodi ahelat. Seda krüpteerimisvõtit kasutatakse ainult üks kord. Teisest küljest ei ole see võti tuletatud täiuslikust juhuslikkusest, kuna tegemist on HMAC-ga. Pigem on see pseudosjuhuslik. Seega ei ole tegemist Vernami salakirjaga, kuid meetod on sellele lähedane.

Teatistehingu kättesaamine

Nüüd, kui Alice on saatnud teatistehingu Bobile, vaatame, kuidas Bob seda tõlgendab. Meeldetuletuseks, et Bobil peab olema juurdepääs Alice'i maksekoodile. Ilma selle teabeta, nagu me järgmises osas näeme, ei saa ta tuletada Alice'i loodud võtmepaare ja seega ei saa ta juurdepääsu oma BIP47 kaudu saadud bitcoinidele. Hetkel on Alice'i maksekoodi maksekoormus krüpteeritud. Vaatame, kuidas Bob selle dekrüpteerib.

1- Bob jälgib tehinguid, mis loovad väljundeid tema teavitusaadressiga.

2- Kui tehingu teavitusaadressil on väljund, analüüsib Bob seda, et näha, kas see sisaldab OP_RETURN väljundit, mis vastab BIP47 standardile.

3- Kui OP_RETURN-i esimene bait on 0x01, alustab Bob võimaliku ECDH-ga jagatud saladuse otsimist:

A = a \cdot G $$

b

S = b \cdot A $$

$$ f = \text{HMAC-SHA512}(o, x) $$$

4- Bob tõlgendab OP_RETURN andmeid teatistehingus maksekoodina. Ta lihtsalt dekrüpteerib selle potentsiaalse maksekoodi kasuliku koormuse, kasutades f pimendustegurit:

x = x' \oplus f1 $$

c = c' \oplus f2 $$

5- Bob kontrollib, kas Alice'i maksekoodi avaliku võtme väärtus kuulub gruppi secp256k1. Kui jah, tõlgendab ta seda kui kehtivat maksekoodi. Kui mitte, ignoreerib ta tehingu.

Nüüd, kui Bob teab Alice'i maksekoodi, võib Alice saata talle kuni 2^32 makset, ilma et ta peaks kunagi kordama seda tüüpi teavitustehingut.

Miks see toimib? Kuidas saab Bob määrata sama pimendustegurit kui Alice ja seega dešifreerida tema maksekoodi? Vaatleme lähemalt ECDH tegevust, mida me just kirjeldasime.

Esiteks, me tegeleme sümmeetrilise krüpteerimisega. See tähendab, et krüpteerimisvõti ja dekrüpteerimisvõti on sama väärtus. See võti on teavitustehingus pimendav tegur:

$$ f = f1 || f2 $$$

Alice ja Bob peavad seega saama sama väärtuse f jaoks, ilma seda otse edastamata, sest ründaja võib selle varastada ja salajase teabe dekrüpteerida. See pimendustegur saadakse, kui rakendada HMAC-SHA512 2 väärtusele:

Seega vajab Bob Alice'i maksekoodi kasuliku koormuse dekrüpteerimiseks mõlemat nimetatud teavet. Sisendi UTXO saab Bob lihtsalt kätte, jälgides teavitustehingut. Salajase punkti jaoks peab Bob kasutama ECDH-d. Nagu eelmises Diffie-Hellmani käsitlevas osas näha, saavad Alice ja Bob lihtsalt oma vastavate avalike võtmete vahetamise ja oma privaatvõtmete salajase kohaldamise teel teineteise avaliku võtme suhtes leida täpse salajase punkti elliptilisel kõveral. Teatamistehing põhineb sellel mehhanismil:

B = b \cdot G $$

A = a \cdot G $$

S = a \cdot B = a \cdot (b \cdot G) = (b \cdot a) \cdot G = b \cdot A

BTC204

Nüüd, kui Bob teab Alice'i maksekoodi, saab ta tuvastada tema BIP47-makseid ja ta saab tuletada privaatvõtmed, mis blokeerivad saadud bitcoinid.

Võtan kokku äsja koos nähtud sammud, et saada ja tõlgendada teavitustehingut:

BTC204

BIP47 maksetehing

Vaatleme makseprotsessi koos BIP47-ga. Meenutada teile praegust olukorda :

Enne selle protsessi selgitamist on minu arvates oluline meeles pidada, milliste indeksitega me praegu töötame. Maksekoodi tuletamise tee on kirjeldatud järgmiselt: m/47'/0'/0'. Järgnev sügavus jagab indeksid järgmiselt:

Iga kord, kui Alice soovib saata makse Bobile, tuletab ta uue unikaalse tühja aadressi, kasutades jällegi ECDH-protokolli:

a

B = b \cdot G $$

S = a \cdot B $$

$$ S = (Sx, Sy) $$$

$$ s = \text{SHA256}(Sx) $$$

K0 = B + s \cdot G $$

Kui Alice on saanud Bobi K0 vastuvõtuaadressi, saab ta teha Bitcoini tehingu tavalisel viisil. Selleks valib ta enda omanduses oleva UTXO, mis on tagatud tema HD rahakoti teise haru võtmepaariga, ja tarbib selle, et rahuldada väljund Bobi K0-aadressile. Oluline on märkida, et see makse, kui aadress on tuletatud, järgib klassikalist protsessi ja ei sõltu enam BIP47-ga seotud võtmetest.

Võtan kokku just nähtud sammud, mida me koos nägime, et saata BIP47 makse:

BTC204

Kui Alice soovib teha teise makse, teeb ta samu samu samu samme nagu varem, kuid seekord valib ta teise avaliku võtme, mis on saadud Bobi maksekoodist. Täpsemalt kasutab ta järgmist kasutamata võtit. Nii saab ta uue Bobile kuuluva vastuvõtuaadressi, mille nimeks on K1 :

BTC204

See võib nii jätkata ja tuletada kuni 2^32 tühja aadressi, mis kuuluvad Bobile.

Väljastpoolt vaadates on plokiahelat vaadates teoreetiliselt võimatu eristada BIP47 makset tavalisest maksest. Siin on näide BIP47 maksetehingu kohta Testnetis:

94b2e59510f2e1fa78411634c98a77bbb638e28fb2da00c9f359cd5fc8f87254

See näeb välja nagu klassikaline tehing, kus on tarbitud sisend, makse väljund ja vahetuskurss:

BTC204

BIP47 makse saamine ja eravõti tuletamine

Alice on just teinud oma esimese makse Bobile kuuluvale tühjale BIP47 aadressile. Nüüd vaatame, kuidas Bob selle makse kätte saab. Samuti vaatame, miks Alice'il ei ole juurdepääsu äsja loodud aadressi privaatvõtmele ja kuidas Bob leiab selle võtme, et kulutada äsja saadud bitcoinid.

Niipea kui Bob saab Alice'ilt teatistehingu, tuletab ta avaliku võtme BIP47 K0 juba enne, kui tema korrespondent on saatnud makse. Seega jälgib ta mis tahes makseid seotud aadressile. Tegelikult tuletab ta kohe mitu aadressi, mida ta jälgib (K0, K1, K2, K3...). Siin on, kuidas ta tuletab selle avaliku võtme K0 :

b

A = a \cdot G $$

S = b \cdot A $$

$$ s = \text{SHA256}(Sx) $$$

K0 = B + s \cdot G $$

Kui Bobil on see avalik võti K0, saab ta tuletada sellega seotud privaatvõtme, et kulutada oma bitcoine. Ainult tema saab selle privaatvõtme genereerida:

k0 = b + s $$

Tänu elliptilise kõvera grupiseadusele saab Bob täpselt Alice'i kasutatud avalikule võtmele vastava isikliku võtme. Seega on meil :

K0 = k0 \cdot G $$

Võtan kokku just nähtud sammud, et saada BIP47 makse ja arvutada vastav privaatne võti:

BTC204

Kuna Alice ei saa b (Bobi privaatne võti), ei ole tal võimalik kindlaks teha k0 (Bobi BIP47 vastuvõtu aadressiga seotud privaatne võti). Skeemiliselt võime esitada jagatud saladuse S arvutamise järgmiselt:

BTC204

Kui jagatud saladus on ECDH abil leitud, arvutavad Alice ja Bob BIP47 makse avaliku võtme K0 ning Bob arvutab ka sellega seotud privaatvõtme k0 :

BTC204

BIP47 makse tagasimaksmine

Kuna Bob teab Alice'i korduvkasutatavat maksekoodi, on tal juba olemas kogu teave, mida ta vajab, et saata Alice'ile raha tagasi. Ta ei pea Alice'iga uuesti ühendust võtma, et küsida mingit teavet. Ta peab lihtsalt teavitama teda teavitustehinguga, et ta saaks oma BIP47-aadressid oma seemnega kätte ja seejärel saab ta saata talle ka kuni 2^32 makset.

Tagasimakse funktsioon on BIP47 eripära ja on üks selle eeliseid teiste meetodite, näiteks vaikivate maksete ees, mida me vaatleme hilisemates peatükkides.

Bob saab seejärel hüvitada Alice'ile sama moodi, kuidas ta talle makseid saatis. Rollid on ümberpööratud:

BTC204

*Suur tänu Fanis Michalakisele selle peatüki kirjutamise aluseks olnud artikli korrektuuri ja asjatundlike nõuannete eest!

https://planb.network/tutorials/privacy/on-chain/paynym-bip47-a492a70b-50eb-4f95-a766-bae2c5535093

Vaikivad maksed

BIP47 on laialdaselt kritiseeritud selle ebaefektiivsuse tõttu. Nagu eelmises peatükis selgitatud, nõuab see iga uue vastuvõtja puhul teatamistehingu sooritamist. See piirang muutub ebaoluliseks, kui me kavatseme luua selle saajaga jätkusuutliku maksekanali. Üks teatamistehing sillutab teed peaaegu lõpmatule arvule järgnevatele BIP47 maksetele.

Teatud olukordades võib teavitustehing siiski olla kasutajale takistuseks. Võtame näiteks ühekordse annetuse saajale: klassikalise Bitcoini aadressi puhul piisab annetuse lõpuleviimiseks ühest tehingust. BIP47 puhul on aga vaja kahte tehingut: üks teavitamiseks ja teine tegelikuks maksmiseks. Kui nõudlus plokiruumi järele on väike ja tehingutasud madalad, ei ole see täiendav samm tavaliselt probleemiks. Ülekoormuse ajal võivad aga tehingutasud ühe makse eest muutuda ülemääraseks, mis võib kasutaja jaoks kahekordistada kulusid võrreldes tavalise Bitcoini tehinguga, mis võib osutuda kasutajale vastuvõetamatuks.

Olukordade jaoks, kus kasutaja kavatseb teha ainult mõned maksed staatilisele identifikaatorile, on välja töötatud muid lahendusi. Nende hulka kuuluvad vaikivad maksed, mida on kirjeldatud dokumendis [BIP352] (https://github.com/bitcoin/bips/blob/master/bip-0352.mediawiki). See protokoll võimaldab kasutada staatilist identifikaatorit maksete vastuvõtmiseks ilma aadressi korduvkasutust tekitamata ja ilma, et oleks vaja kasutada teatamistehinguid. Vaatame, kuidas see protokoll töötab.


*Selle peatüki täielikuks mõistmiseks on oluline omandada ECDH (Elliptic Curve Diffie-Hellman) ja krüptograafilise võtme tuletamise tööpõhimõte HD rahakotis. Neid mõisteid käsitleti üksikasjalikult eelmises peatükis BIP47 kohta. Ma ei hakka neid siinkohal kordama. Kui te ei ole nende mõistetega veel tuttav, soovitan teil enne selle peatüki jätkamist tutvuda eelmise peatükiga. Ma ei hakka siinkohal veel kord üle vaatama vastuvõtuaadresside korduvkasutamisega seotud riske ega ka seda, kui oluline on unikaalne identifikaator maksete vastuvõtmiseks *, vaid mainin siinkohal vaid mõned punktid, mida tahaksin siinkohal välja tuua


Miks ei saa teadet liigutada?

Nagu on käsitletud peatükis BIP47 , on teatamistehingul kaks põhifunktsiooni:

Võib naiivselt arvata, et seda teavitamisprotsessi võiks teostada väljaspool ahelat. Teoreetiliselt on see täiesti teostatav: vastuvõtja peaks vaid näitama sidevahendi, et saada saatjatelt BIP47 maksekoodid. Selle lähenemisviisiga on aga kaks suurt probleemi:

Kõik need piirangud muudavad ahelateatise kasutamise BIP47 jaoks hädavajalikuks. Silent Payments püüab aga vältida seda teatamise etappi just selle maksumuse tõttu. Seega ei ole valitud lahendus mitte teatamise üleviimine, vaid selle täielik kaotamine. Selleks tuleb leppida kompromissiga: skaneerimine. Erinevalt BIP47-st, kus kasutaja teab täpselt, kust ta tänu teavitustehingutele oma raha leiab, peab kasutaja Silent Payments'i puhul uurima kõiki olemasolevaid Bitcoini tehinguid, et tuvastada talle mõeldud makseid. Selle operatiivkoormuse vähendamiseks piirdub Silent Payments'i otsing ainult tehingutega, mis tõenäoliselt sisaldavad selliseid makseid, st tehingutega, millel on vähemalt üks Taproot P2TR väljund. Samuti keskendub otsing ainult rahakoti loomise kuupäevast alates tehtud tehingutele (kui rahakott on loodud 2024. aastal, ei ole vaja otsida tehinguid, mis pärinevad aastast 2009).

Seega näete, miks BIP47 ja vaikimisi maksed, kuigi nende eesmärk on sarnane, hõlmavad erinevaid kompromisse ja seega vastavad tegelikult erinevatele kasutusviisidele. Ühekordsete maksete, näiteks ühekordsete annetuste puhul on vaikimisi maksed madalamate kulude tõttu sobivamad. Teisest küljest, kui tegemist on korrapäraste tehingutega samale saajale, näiteks vahetusplatvormide või kaevandamisbasseinide puhul, võib eelistada BIP47.

Vaadakem Silent Payments'i tehnilist toimimist, et paremini mõista, mis on kaalul. Selleks soovitan kasutada sama lähenemisviisi nagu BIP352 selgitavas dokumendis. Jagame järk-järgult läbi viidavad arvutused elementide kaupa, põhjendades iga uut lisandit.

Mõned mõisted, millest tuleb aru saada

Enne alustamist on oluline rõhutada, et Silent Payments tugineb ainult P2TR (Pay to Taproot) skriptitüüpide kasutamisele. Erinevalt BIP47-st ei ole vaja tuletada vastuvõtuaadressid lapse avalikest võtmetest hashimise teel. P2TR-standardis kasutatakse aadressis otse ja krüpteerimata tiritud avalikku võtit. Seega on Taproot-vastuvõtuaadress sisuliselt avalik võti koos mõningate metaandmetega. See kohandatud avalik võti on kahe teise avaliku võtme kombinatsioon: üks võimaldab otsest, traditsioonilist kulutamist lihtsa allkirja kaudu ja teine esindab MASTi Merkle'i juurt, mis lubab kulutamist, kui on täidetud üks Merkle'i puule potentsiaalselt sisse kirjutatud tingimustest.

BTC204

Otsusel piirata vaikimisi makseid ainult Taprootiga on kaks peamist põhjust:

Vaikiva makse avaliku võtme naiivne tuletamine

Alustame lihtsa näitega, et mõista, kuidas SP-d (vaiksed maksed) toimivad. Võtame Alice'i ja Bobi, kaks Bitcoini kasutajat. Alice soovib saata Bitcoine Bobile tühjale vastuvõtuaadressile. Sellel protsessil on kolm eesmärki:

Alice'il on UTXO oma turvalises Bitcoini rahakotis järgmise võtmepaariga:

Bobil on SP-aadress, mille ta on avaldanud internetis aadressil :

Bobi aadressi välja otsides saab Alice arvutada uue tühja aadressi, mis kuulub Bobile, kasutades ECDH-d. Nimetagem seda aadressi P :

P = B + \text{hash}(a \cdot B) \cdot G $$

Selles võrrandis on Alice lihtsalt arvutanud oma isikliku võtme a ja Bobi avaliku võtme B skalaartulemuse. Selle tulemuse on ta sisestanud kõigile teadaolevasse hash-funktsiooni. Seejärel korrutatakse saadud väärtus skalaarselt elliptilise kõvera secp256k1 genereerimispunktiga G. Lõpuks lisab Alice saadud punkti Bobi avalikule võtmele B. Kui Alice'il on see aadress P, kasutab ta seda tehingu väljundina, st ta saadab sellele bitcoine.

*Silent Payments'i kontekstis vastab "hash" funktsioon SHA256 hash-funktsioonile, mis on spetsiaalselt märgistatud "BIP0352/SharedSecret", mis tagab, et genereeritud hashid on unikaalsed selle protokolli jaoks ja neid ei saa teistes kontekstides uuesti kasutada, pakkudes samal ajal täiendavat kaitset allkirjades olevate mittetähenduste taaskasutamise vastu. See standard vastab standardile, mis on sätestatud BIP340-s Schnorr'i allkirjade jaoks "secp256k1" kohta Tänu ECDH aluseks oleva elliptilise kõvera omadustele teame, et :

a \cdot B = b \cdot A $$

Bob saab seega välja arvutada vastuvõtva aadressi, kuhu Alice on bitcoinid saatnud. Selleks jälgib ta kõiki vaikivate maksete kriteeriumidele vastavaid Bitcoini tehinguid ja rakendab igaühe suhtes järgmist arvutust, et näha, kas makse on adresseeritud talle (scanning):

P' = B + \text{hash}(b \cdot A) \cdot G $$

Kui ta skaneerib Alice'i tehingut, mõistab ta, et P' on võrdne P. Seega teab ta, et makse on adresseeritud talle:

P' = B + \text{hash}(b \cdot A) \cdot G = B + \text{hash}(a \cdot B) \cdot G = P $$

Siit saab Bob välja arvutada privaatvõtme p, mis võimaldab aadressi P kulutada:

p = (b + \text{hash}(b \cdot A)) \bmod n $$

Nagu näete, peab teil selle privaatvõtme p arvutamiseks olema privaatvõti b. Ainult Bobil on see privaatvõti b. Seega on ta ainus, kes saab oma Silent Payments'i aadressile saadetud bitcoin'e kulutada.

BTC204

Legend:

Siin on üsna naiivne esialgne lähenemine Bobi staatilise aadressi (märgitud B) kasutamiseks, et tuletada unikaalne aadress P, kuhu bitcoine saata. See meetod on siiski liiga lihtsustatud ja sellel on mitmeid puudusi, mis tuleb parandada. Esimene probleem seisneb selles, et selle skeemi puhul ei saa Alice ühe ja sama tehingu raames luua mitu väljundit Bobile.

Kuidas luua mitu väljundit?

Eelmises punktis toodud näites loob Alice ühe väljundi, mis läheb Bobile tema unikaalsele aadressile P. Sama sisendi valimisel ei ole Alice'il võimalik luua Bobile kahte eraldi tühja aadressi, sest kasutatav meetod annaks P jaoks alati sama tulemuse, st sama aadressi. Siiski võib esineda mitmeid olukordi, kus Alice soovib jagada oma makse Bobile mitmeks väiksemaks summaks, luues seega mitu UTXOd. Seetõttu on vaja leida meetod, kuidas seda saavutada.

Selle saavutamiseks muudame veidi arvutust, mida Alice teeb P tuletamiseks, nii et ta saab genereerida Bobile kaks erinevat aadressi, nimelt P_0 ja P_1.

Arvutuse muutmiseks ja 2 erineva aadressi saamiseks tuleb lihtsalt lisada täisarv, mis muudab tulemust. Seega lisab Alice arvutusele 0, et saada aadress P_0 ja 1, et saada aadress P_1. Nimetagem seda täisarvu i :

P_i = B + \text{hash}(a \cdot B \text{ ‖ } i) \cdot G $$

Arvutamisprotsess ei muutu võrreldes eelmise meetodiga, välja arvatud see, et seekord liita Alice enne hash-arvutuse jätkamist a \cdot B ja i. Seejärel muudetakse lihtsalt i, et saada uus Bobile kuuluv aadress. Näiteks:

P_0 = B + \text{hash}(a \cdot B \text{ ‖ } 0) \cdot G $$

P_1 = B + \text{hash}(a \cdot B \text{ ‖ } 1) \cdot G $$

Kui Bob otsib plokiahelas temale mõeldud Vaikseid makseid, kasutab ta alguses aadressi P_0 jaoks i = 0. Kui ta ei leia ühtegi makset aadressilt P_0, järeldab ta, et see tehing ei sisalda talle mõeldud vaikseid makseid, ja jätab skaneerimise pooleli. Kui aga P_0 on kehtiv ja sisaldab talle mõeldud makseid, jätkab ta sama tehingu P_1 abil, et kontrollida, kas Alice on teinud teise makse. Kui P_1 osutub kehtetuks, lõpetab ta selle tehingu otsimise; vastasel juhul jätkab ta järjestikuste i väärtuste testimist:

P_0 = B + \text{hash}(b \cdot A \text{ ‖ } 0) \cdot G $$

P_1 = B + \text{hash}(b \cdot A \text{ ‖ } 1) \cdot G $$

Kuna Bob peatub kohe i = 0 juures, kui P_0 ei tööta, ei lisa selle täisarvu kasutamine Bobile peaaegu mingit täiendavat töökoormust tehingu skaneerimise etapis.

Bob saab seejärel samamoodi arvutada isiklikud võtmed:

p_0 = (b + \text{hash}(b \cdot A \text{ ‖ } 0)) \bmod n
p_1 = (b + \text{hash}(b \cdot A \text{ ‖ } 1)) \bmod n
BTC204

Legend:

Selle meetodi abil hakkame saama kena protokolli, kuid on veel mõned probleemid, mida tuleb ületada, eelkõige aadressi korduvkasutamise vältimine.

Kuidas vältida aadressi korduvkasutust?

Nagu me nägime eelmistes punktides, kasutab Alice võtmepaari, mis kindlustab tema UTXO, mida ta kasutab ECDH jagatud saladuse arvutamiseks Bobiga. See saladus võimaldab tal tuletada unikaalse aadressi P_0. Alice'i kasutatav võtmepaar (a, A) võib aga kindlustada mitu UTXOd, kui ta on seda aadressi mitu korda korduvalt kasutanud. Kui Alice teeb kaks makset Bobi staatilisele aadressile B, kasutades kahte UTXOd, mis on tagatud sama võtmega A, siis on see Bobi jaoks aadressi korduvkasutamine.

Aadressi korduvkasutamine on kasutajate konfidentsiaalsuse seisukohast väga halb tava. Et teada saada, miks, soovitan teil tutvuda selle koolituse esimeste osadega. Tõepoolest, kuna unikaalne aadress P_0 on tuletatud A ja B põhjal, siis kui Alice tuletab teise aadressi teise makse jaoks B-le sama võtmega A, satub ta täpselt samale aadressile P_0. Et vältida seda riski ja vältida aadresside korduvkasutamist vaikivate maksete raames, peame oma arvutusi veidi muutma.

Me tahame, et iga UTXO, mida Alice kasutab makse sisendina, annaks Bobi poolel unikaalse aadressi, isegi kui mitu UTXOd on kaitstud sama võtmepaariga. Seega peame vaid lisama unikaalse aadressi P_0 arvutamisel viite UTXO-le. See viide on lihtsalt sisendina tarbitava UTXO hash:

\text{inputHash} = \text{hash}(\text{outpoint} \text{ ‖ } A)

Ja Alice lisab selle viite oma unikaalse aadressi P_0 arvutamise sisendiks:

P_0 = B + \text{hash}(\text{inputHash} \cdot a \cdot B \text{ ‖ } 0) \cdot G

Skaneerimisel saab Bob lisada ka \text{inputHash} , kuna ta peab ainult jälgima tehingut, et järeldada \text{outpoint} :

P_0 = B + \text{hash}(\text{inputHash} \cdot b \cdot A \text{ ‖ } 0) \cdot G $$

Kui ta leiab kehtiva P_0, saab ta arvutada vastava p_0 privaatvõtme:

p_0 = (b + \text{hash}(\text{inputHash} \cdot b \cdot A \text{ ‖ } 0)) \bmod n
BTC204

Legend:

Praegu eeldatakse meie arvutustes, et Alice kasutab tehingu tegemiseks ühte sisendit. Ta peaks siiski suutma kasutada mitut sisendit. Järelikult peaks Bob iga tehingu puhul, mis hõlmab mitut sisendit, teoreetiliselt arvutama ECDH iga sisendi kohta, et teha kindlaks, kas makse on mõeldud talle. See meetod ei ole rahuldav, seega peame leidma lahenduse töökoormuse vähendamiseks!

Avalike võtmete muutmine sisenditeks

Selle probleemi lahendamiseks kasutame selle asemel, et kasutada võtmepaari, mis kindlustab konkreetse sisendi Alice'i poolel, kõigi tehingu sisendites kasutatud võtmepaaride summat. Seda summat käsitletakse seejärel uue võtmepaarina. Seda tehnikat nimetatakse "tweaking'iks".

Kujutame näiteks ette, et Alice'i tehingul on 3 sisendit, millest igaüks on kaitstud erineva võtmepaariga:

BTC204

Eelnevalt kirjeldatud meetodi kohaselt peab Alice valima ühe võtmepaari a_0, a_1 ja a_2 hulgast, et arvutada ECDH-saladus ja genereerida Bobi staatilisest aadressist B üks makseaadress P. Selle lähenemisviisi puhul peab Bob siiski katsetama iga võimalust järjestikku, alustades a_0, seejärel a_1 ja nii edasi, kuni ta leiab paari, mis genereerib kehtiva P-aadressi. See protsess nõuab Bobilt ECDH-arvutuste tegemist kõigi tehingute kõigi sisendite kohta, mis suurendab oluliselt skaneerimise töökoormust.

Selle vältimiseks palume Alice'il arvutada P, kasutades kõigi sisendvõtmete summat. Kasutades meie näidet, arvutatakse muudetud privaatne võti a järgmiselt:

a = a_0 + a_1 + a_2 $$

Samamoodi saavad Alice ja Bob arvutada muudetud avaliku võtme:

A = A_0 + A_1 + A_2 $$

Selle meetodi puhul peab Bob arvutama ainult tehingu avalike võtmete summa ja seejärel arvutama ECDH-saladuse ainult A põhjal, mis vähendab oluliselt skaneerimise etapis vajalike arvutuste arvu.

Kuid pidage meeles eelmist lõiku. Me olime lisanud oma arvutustesse \text{inputHash} hashi, mida kasutatakse nonce'ina, et vältida aadressi korduvkasutamist:

\text{inputHash} = \text{hash}(\text{outpoint} \text{ ‖ } A)

Kuid kui teil on mitu sisendit tehingus, peate olema võimeline määrama, milline \text{outpoint} valitakse selles arvutuses. Vastavalt BIP352-le on \text{outpoint} valikukriteerium, mida tuleb kasutada, et valida leksikograafiliselt väikseim, mis tähendab, et valitakse UTXO, mis esineb tähestikulises järjekorras esimesena. See meetod standardiseerib igas tehingus valitava UTXO. Näiteks kui see leksikograafiliselt väikseim \text{outpoint} on \text{outpoint}_L, siis arvutatakse \text{inputHash} :

\text{inputHash} = \text{hash}(\text{outpoint}_L \text{ ‖ } A)

Arvutused jäävad siis samaks, mis eelmises jaotises, ainult et privaatvõti a ja vastav avalik võti A ei ole enam paar, mida kasutatakse ühe sisendi kindlustamiseks, vaid kujutavad nüüd kõigi sisendite võtmepaaride tweak'i.

Eraldi kulu- ja skaneerimisvõtmed

Hetkel oleme viidanud vaikiva makse staatilisele aadressile B kui unikaalsele avalikule võtmele. Pidage meeles, et just seda avalikku võtit B kasutab Alice jagatud saladuse ECDH loomiseks, mis omakorda arvutab unikaalse makseaadressi P. Bob kasutab seda avalikku võtit B ja vastavat privaatvõtit b skaneerimisetapis. Kuid ta kasutab ka privaatvõtit b selleks, et arvutada privaatvõti p, mis võimaldab aadressilt P teha kulutusi.

Selle meetodi puuduseks on see, et Bob kasutab tehingute skaneerimiseks ka b privaatvõtit, mida kasutatakse kõigi vaikimisi makseid saanud aadresside privaatvõtmete arvutamiseks. See samm nõuab, et b võti oleks kättesaadav internetiga ühendatud rahakoti tarkvaras, mis seab selle varguse ohule rohkem ohtu kui selle hoidmine külmas rahakotis. Ideaaljuhul oleks kasulik kasutada Silent Payments'i võimalusi, kuid hoida b privaatvõtit, mis kontrollib juurdepääsu kõikidele teistele privaatvõtmetele, turvaliselt riistvaralises rahakotis. Õnneks on protokoll kohandatud just seda võimaldama.

BIP352 nõuab selleks, et vastuvõtja kasutaks 2 erinevat võtmepaari:

Sel viisil saab Bob hoida privaatvõtit b_{\text{spend}} riistvaralises rahakotis ja kasutada privaatvõtit b_{\text{scan}} veebitarkvaras, et leida oma Vaikseid makseid, ilma et b_{\text{spend}} paljastataks. Teisalt on avalikud võtmed B_{\text{scan}} ja B_{\text{spend}} mõlemad avalikult avalikustatud, kuna need asuvad Bobi staatilises aadressil B :

B = B_{\text{scan}} \text{ ‖ } B_{\text{spend}}

Et arvutada Bobile kuuluv unikaalne makseaadress P_0, teeb Alice nüüd järgmise arvutuse:

P_0 = B_{\text{spend}} + \text{hash}(\text{inputHash} \cdot a \cdot B_{\text{scan}} \text{ ‖ } 0) \cdot G

Talle adresseeritud maksete leidmiseks teeb Bob järgmised arvutused:

P_0 = B_{\text{spend}} + \text{hash}(\text{inputHash} \cdot b_{\text{scan}} \cdot A \text{ ‖ } 0) \cdot G

Nagu näete, ei ole Bobil seni olnud vaja kasutada b_{\text{spend}}, mis on tema riistvara rahakotis. Kui ta tahab kulutada P_0 , võib ta teha järgmise arvutuse, et leida privaatne võti p_0 :

p_0 = (b_{\text{spend}} + \text{hash}(\text{inputHash} \cdot b_{\text{scan}} \cdot A \text{ ‖ } 0)) \bmod n

BTC204

Legend:

SP-aadresside kasutamine koos sildiga

Bobil on seega staatiline aadress B Vaiksete maksete jaoks, näiteks :

B = B_{\text{scan}} \text{ ‖ } B_{\text{spend}}

Selle meetodi probleem on selles, et see ei võimalda eraldada sellele aadressile saadetud erinevaid makseid. Näiteks kui Bobil on oma ettevõtte jaoks 2 erinevat klienti ja ta soovib makseid kummalegi eristada, vajab ta 2 erinevat staatilist aadressi. Naiivne lahendus praeguse lähenemisviisi puhul oleks Bobil luua kaks eraldi rahakotti, millel mõlemal oleks oma staatiline aadress, või isegi luua kaks erinevat staatilist aadressi ühe rahakoti sees. See lahendus nõuab aga kogu plokiahelat kaks korda (üks kord kummalegi aadressile), et tuvastada mõlemale aadressile mõeldud maksed. Selline kahekordne skaneerimine suurendab põhjendamatult Bobi töökoormust.

Selle probleemi lahendamiseks kasutab BIP352 märgistussüsteemi, mis võimaldab erinevaid staatilisi aadresse, ilma et see suurendaks põhjendamatult töömahtu, mis on seotud Silent Payments'i leidmisega plokiahelas. Selleks lisame avalikule kulutuste võtmele B_{\text{spend}} täisarvu m. See täisarv võib võtta esimese staatilise aadressi puhul väärtuse 1, teise puhul 2 jne. Kulutamisvõtteid B_{\text{spend}} nimetatakse nüüd B_m ja need konstrueeritakse sel viisil:

B_m = B_{\text{spend}} + \text{hash}(b_{\text{scan}} \text{ ‖ } m) \cdot G $

Näiteks esimese kuluklahvi puhul, millel on silt 1 :

B_1 = B_{\text{spend}} + \text{hash}(b_{\text{scan}} \text{ ‖ } 1) \cdot G

Bobi avaldatud staatiline aadress koosneb nüüd B_{\text{scan}} ja B_m. Näiteks esimene staatiline aadress märgisega 1 on :

B = B_{\text{scan}} \text{ ‖ } B_1

Alustame ainult sildist 1, sest silt 0 on reserveeritud muutuse jaoks. Alice omalt poolt tuletab ühe makse aadressi P samamoodi nagu varem, kuid kasutab B_{\text{spend}} asemel uut B_1 :

P_0 = B_1 + \text{hash}(\text{inputHash} \cdot a \cdot B_{\text{scan}} \text{ ‖ } 0) \cdot G

Tegelikkuses ei pruugi Alice isegi teada, et Bobil on märgistatud aadress, sest ta kasutab lihtsalt tema esitatud staatilise aadressi teist osa, ja sel juhul on see väärtus B_1, mitte B_{teksti{kulutada}}.

Maksete skaneerimiseks kasutab Bob alati oma esialgse staatilise aadressi väärtust koos B_{\text{spend}} sellisel viisil:

P_0 = B_{\text{spend}} + \text{hash}(\text{inputHash} \cdot b_{\text{scan}} \cdot A \text{ ‖ } 0) \cdot G

Seejärel ta lihtsalt lahutab igast väljundist ükshaaval P_0 väärtuse, mille ta leiab. Seejärel kontrollib ta, kas üks nende lahutuste tulemustest vastab ühe tema portfellis kasutatava sildi väärtusele. Kui näiteks väljund #4 vastab märgisele 1 , tähendab see, et see väljund on vaikiv makse, mis on seotud tema staatiliselt märgistatud aadressiga B_1 :

Out_4 - P_0 = \text{hash}(b_{\text{scan}} \text{ ‖ } 1) \cdot G

See toimib, sest :

B_1 = B_{\text{spend}} + \text{hash}(b_{\text{scan}} \text{ ‖ } 1) \cdot G

Tänu sellele meetodile saab Bob kasutada mitmeid staatilisi aadresse (B_1, B_2, B_3...), mis kõik on tuletatud tema põhilisest staatilisest aadressist (B = B_{\text{scan}} \text{ ‖ } B_{\text{spend}}}), et hoida kasutamine eraldi.

Pange siiski tähele, et selline staatiliste aadresside eraldamine kehtib ainult isikliku portfelli haldamise seisukohast, kuid ei erista identiteete. Kuna neil kõigil on sama B_{\text{scan}}, on väga lihtne seostada kõik staatilised aadressid omavahel ja järeldada, et nad kuuluvad ühele üksusele.

BTC204

Legend:

Kuidas luua vaikiva makse aadressi?

Vaiksete maksete jaoks mõeldud aadressi loomiseks peate esmalt tuletama 2 võtmepaari oma Bitcoin HD rahakotist:

Need paarid on tuletatud kasutades järgmisi teid (Bitcoin Mainnet):

scan : m / 352' / 0' / 0' / 1' / 0
spend : m / 352' / 0' / 0' / 0' / 0

Kui meil on need 2 võtmepaari, siis lihtsalt ühendame need (otsast lõpuni), et luua staatilise aadressi kasuliku koormuse:

B = B_{\text{scan}} \text{ ‖ } B_{\text{spend}}

Kui me tahame kasutada silte, siis asendame B_{\text{spend}} väärtusega B_m :

B = B_{\text{scan}} \text{ ‖ } B_m $$

Märgisega m :

B_m = B_{\text{spend}} + \text{hash}(b_{\text{scan}} \text{ ‖ } m) \cdot G $

Kui meil on see kasulik koormus olemas, lisame HRP (Human-Readable Part) sp ja versiooni q (= versioon 0). Samuti lisame kontrollsumma ja vormindame aadressi kujul bech32m.

Näiteks siin on minu vaikivate maksete staatiline aadress:

sp1qqvhjvsq2vz8zwrw372vuzle7472zup2ql3pz64yn5cpkw5ngv2n6jq4nl8cgm6zmu48yk3eq33ryc7aam6jrvrg0d0uuyzecfhx2wgsumcurv77e

Oluline punkt staatiliste aadresside kohta, millest olete võib-olla eelmistes punktides aru saanud, on see, et need aadressid ei ole Bitcoini tehingutes nähtavad. Ainult väljundites kasutatavad P makseaadressid ilmuvad plokiahelas standardses Taproot-formaadis. Seega on väljastpoolt vaadates võimatu eristada Silent Paymentiga seotud tehingut tavalisest tehingust, mis kasutab P2TR-väljundeid.

Nagu ka BIP47 puhul, ei ole võimalik luua seost staatilise aadressi B ja B-st tuletatud makseaadressi P vahel. Tõepoolest, isegi kui Eve, potentsiaalne ründaja, üritab Bobi staatilise B aadressi abil plokiahelat skaneerida, ei suuda ta teha arvutusi, mis on vajalikud P määramiseks. Selleks oleks tal vaja kas Bobi privaatvõtit b_{\text{scan}} või saatja privaatvõtit a, kuid mõlemad on loomulikult privaatsed. Seega on võimalik selgesõnaliselt siduda oma staatiline aadress mingi isikliku identiteediga.

Kuidas kasutada vaikseid makseid?

Silent Payments'i ettepanek on suhteliselt hiljutine ja seda on hetkel rakendanud vaid väga vähesed rahakotid. Minu teada on ainult 3 tarkvaratoodet, mis neid toetavad:

Varsti anname teile üksikasjaliku õpetuse, kuidas luua oma vaikiva makse staatiline aadress.

Kuna see funktsioon on uus, soovitame olla ettevaatlik ja vältida suurte summade puhul vaikivate maksete kasutamist Mainnetis.

Selle vaikimisi makseid käsitleva peatüki koostamiseks kasutasin vaikimisi makseid selgitavat veebilehte ja BIP352 selgitavat dokumenti.

Lõpusektsioon

Arvamused ja hinnangud

true

Lõpueksam

true

Kokkuvõte

true