Ko slišijo besedo »CoinJoin«, so prve stvari, ki pridejo v glavo mnogim sorazmerno novim bitcoincem verjetno ZeroLink izvedbe Wasabi Wallet in Samourai Wallet. V zadnjih nekaj letih sta ta dva projekta zasebnost bitcoinov prevzela kvazimainstream, zaradi česar je veliko preprostejša in dostopnejša.
Če pa ste novi v prostoru, se morda ne zavedate dejstva, da je projekt Pridružite se Marketu uporabnikom bitcoinov od leta 2015 ponuja orodja CoinJoin.
Sodelujoče transakcije zmotiti predpostavke o skupnem lastništvu je bila zamisel, ki jo je januarja 2013 predstavil razvijalec bitcoinov Greg Maxwell in kasneje formalizirana v koncept CoinJoin avgusta istega leta.
Ideja je obstajala dve leti, preden je bilo nekaj izdano za njeno izvajanje, in za to je obstajal razlog: težava s celotno idejo, ki je privedla do neuspehov pri prejšnjih poskusih, kot je npr. Temna denarnica avtorja Amirja Taakija, je bilo privabljanje likvidnosti. CoinJoin je lahko zelo uporabno orodje, a če ni nihče, ki bi bil pripravljen CoinJoin z vami, ali če ga ni mogoče najti, to ne bo koristilo.
Težava je bila v tem, kako prepričati ljudi, da se pridružijo temu začetnemu združenju, da bi ga snežili v večji bazen likvidnosti in uporabnikov. Rešitev JoinMarket je bila v tistem času precej preprosta, a briljantna: zagotoviti tržni mehanizem, tako da lahko dosledni ponudniki likvidnosti dejansko zaslužijo denar za zagotavljanje likvidnosti združenjem CoinJoin.
JoinMarket deluje okoli tega, kar je dejansko tržnica, ki temelji na knjigi naročil, ki jo sestavljajo tako oblikovalci trga kot prevzemniki trga, ki kupujejo in prodajajo likvidnost CoinJoin, da anonimizirajo svojo dejavnost v verigi.
Izdelovalci lahko z odprtimi ponudbami sedijo in čakajo, kolikor dolgo traja, dokler ne pridejo uporabniki, ki želijo plačati svoje storitve. Rešuje uporabniško težavo sedenja in večnega čakanja, da se nekdo pomeša s kom. Ustvarjalce trga, ki želijo zaslužiti, so s provizijami, ki jih zaračunavajo, spodbujeni, da so vedno na spletu in čakajo na uporabnike; in prevzemniki, ki iščejo zasebnost, so spodbujeni k plačilu teh pristojbin. To je dogovor, ki koristi vsem.
JoinMarket v svoji arhitekturi in potencialu za nadgradnjo koordinacije ponuja potencialno bolj decentralizirano različico mešanja kovancev v primerjavi z bolj znanim ZeroLink. Evo kako.
Kako je mešanje usklajeno: ZeroLink vs. JoinMarket
Celotna arhitektura ZeroLink-a je v primerjavi z JoinMarketom zelo drugačna.
V primeru Wasabi in Samourai obstaja en sam koordinatorski strežnik, ki ga upravlja izdelovalec denarnice, kodiran v denarnici. Vsi uporabniki sodelujejo v CoinJoin tako, da stopijo v stik s tem osrednjim strežnikom in se "registrirajo", da počakajo, dokler se ne registrira dovolj uporabnikov za izdelavo CoinJoin. Ko je zahtevano število uporabnikov prisotno in registrirano, koordinatorski strežnik podpiše slepo poverilnico, ki predstavlja pravico do ustvarjanja izhoda v transakciji CoinJoin, uporabnik pa prekine povezavo in se znova poveže prek nove povezave Tor, da registrira svoje izhode transakcije.
To preprečuje koordinatorju, da bi se naučil, kateri vhodi se preslikajo na katere izhode. Uporabniki plačajo pristojbino koordinatorju za njegovo vlogo pri omogočanju CoinJoin-a. V tem modelu ni nobene spodbude za zagotavljanje likvidnosti, razen za pridobivanje zasebnosti, in kljub težavam s preteklimi poskusi, kot je Dark Wallet, se zdi, da to dobro deluje za Wasabi in Samourai.
JoinMarket ima po drugi strani knjigo naročil, v kateri se izdelovalci oglašujejo, kar omogoča prejemnikom, da izbirajo med razpoložljivimi ponudbami izdelovalcev (to se trenutno izvaja prek internetnega relejnega klepeta [IRC]).
Izdelovalci se bodo povezali z knjigo naročil z edinstvenim ID-jem, nato pa bodo v knjigo naročil objavili ponudbo, ki bo vsebovala naslednje podatke: pristojbino, ki jo zaračunava izdelovalec za mešanje z prevzemniki, znesek, ki ga bo izdelovalec prispeval k provizijam za rudarjenje in nato minimalno in največjo vrednost poimenovanja, v kateri bodo naredili mešano denominirane izhode. Objavljajo tudi način, da se ljudje zasebno povežejo z njimi.
Ko se uporabniki želijo pridružiti CoinJoin, prenesejo knjigo naročil in njihova stranka na podlagi svojih nastavitev izbere proizvajalce, s katerimi se meša. Ko odjemalec izbere izdelovalca, bo prejemnik objavil začasni javni ključ za šifriranje in začel komunicirati z izdelovalcem prek šifriranih sporočil prek IRC-ja (omeniti je treba, da je možno več prejemnikov povezati z enim izdelovalcem hkrati čas). Če se vse strani strinjajo, podpišejo transakcijo, vključno s provizijo prevzemnika izdelovalcu, in jo predložijo omrežju.
Zaradi tega, kako to usklajevanje deluje, se izdelovalci naučijo rezultatov prevzemnikov v procesu usklajevanja konstrukcije CoinJoin. Da bi to ublažil, ima JoinMarket funkcijo »prevrnitve«, pri kateri bo prejemnikova stranka večkrat mešala z različnimi proizvajalci, dokler ne doseže nastavljenega števila mešanic. To zagotavlja, da noben izdelovalec ne bo mogel odviti celotne zgodovine mešanja enega samega prejemnika, ker se vsak izdelovalec na "prevrnjeni poti" nauči le povezav v tej eni transakciji.
Te razlike imajo veliko splošnih posledic v smislu oblikovalske arhitekture za JoinMarket, saj bomo videli, da bomo skozi nekaj trenutnega stanja projekta in tudi načrte za prihodnost.
Kako se ublažijo napadi na Sybil: ZeroLink vs. JoinMarket
Napadi na Sybil – v tem kontekstu en sam uporabnik, ki se pretvarja, da je veliko uporabnikov, da bi spodkopal zasebnost z ustvarjanjem lažne »množice«, v kateri se drugi lahko skrijejo, medtem ko dejansko sestavljajo celotno »množico« – so temeljna težava katerega koli protokola mešanja v Bitcoinu. . Če celotno množico sestavljate vi in napadalec Sybil in nihče drug, napadalec pozna vse vaše kovance in niste pridobili nobene zasebnosti z njegovega položaja. Konec koncev ni temeljne rešitve za to težavo, vse kar lahko storite, da jo ublažite, je, da povečate stroške za izvedbo napada.
V primeru ZeroLink-a težavo blažijo tako, da koordinator zaračuna pristojbine. Dokler so stroški rudarskih pristojbin višji od prihodkov od pristojbin, ki jih strežnik koordinatorja pobere v pristojbinah, bi celo koordinator utrpel čisto izgubo, če bi poskušal Sybil napadti lastne uporabnike.
Za JoinMarket je zadeva nekoliko bolj zapletena. Prejemnike morate zaščititi, v njihovem primeru pred izdelovalci Sybil, ki napadejo knjigo naročil, tako da se prejemnik samo pomeša z njimi in zlonamernemu izdelovalcu razkrije celotno zgodovino mešanja. Vendar morate tudi odjemalce zaščititi pred napadi na ustvarjalce tako, da zahtevate CoinJoins in nato izstopite iz protokola, potem ko izdelovalec razkrije njihove rezultate prejemniku.
To zlonamernemu prevzemniku omogoča, da loči vnose tega izdelovalca v prihodnjih transakcijah od prevzemnikov, s katerimi se meša. Če bi to ponovili večkrat zaporedoma proti istemu izdelovalcu, bi jim omogočili, da deanonimizirajo uporabnike, ki so se pomešali z njimi.
V tem sistemu obstajata dva mehanizma, ki nudita ustrezno obrambo za vsak razred napadov: Prvi, ki se ukvarja z odjemalci, ki vohunijo za ustvarjalci, je dokaz diskretne logaritemske enakovrednosti (obramba številka dva v ta zapis, znan tudi kot PoDLE).
Osnovna ideja je, da lahko za par zasebnih/javnih ključev za Bitcoin UTXO ustvarite drugi različni javni ključ, ki ustreza zasebnemu ključu, in ustvarite dokaz brez znanja (ZKP), ki kaže, da si oba delita isti zasebni ključ. Ko izdelovalcu zagotovi drugi ključ in dokazilo, prevzemnik razkrije prvi javni ključ(-e), ki ustreza izhodu(-om), ki ga želi mešati.
Zdaj ta nastavitev izdelovalcu omogoča objavo drugega javnega ključa in ZKP vsem drugim izdelovalcem, ne da bi doxxing dejanskih izhodov prevzemnika – na ta način, če prevzemnik, ki se usklajuje s prvotnim izdelovalcem, poskuša ponovno uporabiti ta izhod za vohunjenje za več izdelovalci na hkrati pa bodo vsi drugi izdelovalci videli, da se prejemnikov prvi javni ključ ujema z objavljenim drugim ključem in ZKP. Nato ne bodo razkrili lastnih rezultatov zlonamernemu uporabniku. To poviša stroške prevzemnikov, ki vohunijo za izhodi izdelovalcev, saj zahtevajo, da ima prevzemnik edinstvene izhode za vsakega izdelovalca, za katerim vohuni, namesto da bi lahko znova uporabil iste izhode za napad na več izdelovalcev.
Drugi obrambni mehanizem je zaščititi prejemnike pred zlonamernimi izdelovalci, ki se pretvarjajo, da so številni različni izdelovalci v knjigi naročil, s čimer se zlonamernemu izdelovalcu omogoči, da razkrije mešanje prejemnikov, ki se na koncu le pomešajo z napadalcem.
Ta mehanizem se imenuje a vez zvestobe, ki v bistvu pomeni samo jemanje velike količine bitcoinov in časovno zaklepanje. Izdelovalci, ki to storijo, lahko nato podpišejo in objavijo sporočila s tem ključem, da dokažejo nadzor nad časovno zaklenjenimi kovanci. Če so stranke prejemnikov konfigurirale svojo stranko za uporabo obveznic zvestobe, bodo nato pretehtale svoj izbor izdelovalcev, ki jih bodo uporabili, da bodo dale prednost tistim, ki imajo višje količine časa vrednosti, zaklenjene v obveznicah zvestobe. Obveznice zvestobe so ponderirane s kvadratom števila kovancev, ki so zaklenjeni, tj. če zaklenete štiri bitcoine, bodo ponderirani kot 16; pet bo ponderiranih kot 25; šest bo ponderiranih kot 36 itd.
Utemeljitev tukaj je, da kot izdelovalec dobite več kovancev, ki jih zaklenete (pogosteje vas izberejo stranke, ki jemljejo), tako da če nekaj poštenih izdelovalcev ustvari zelo velike obveznice zvestobe, drastično zvišajo stroške za izdelovalce Sybiling ki bi moral ponoviti ta velik znesek obveznice zvestobe za vsako svojo lažno identiteto v knjigi naročil. Če torej trije pošteni izdelovalci vsak vložijo 10 bitcoinov v obveznice zvestobe, bi moral napadalec porabiti 30 bitcoinov, da bi imel 50-odstotno možnost, da ga izberejo za mešanje, 60-odstotno možnost, da bi imel 66-odstotno možnost, da biti izbran itd.
Bolj pošteni izdelovalci, ki uporabljajo obveznice zvestobe, višji so stroški napada na spojine Sybil za zlonamerne izdelovalce.
Kako bi se mehanizem za usklajevanje JoinMarketa lahko nadgradil
V primeru ZeroLink vsi koordinirajo prek centraliziranega strežnika koordinatorja – to je izrecni del zasnove sistema in modela zaupanja v smislu zanesljivosti. Če koordinator pade, nihče ne more CoinJoin, dokler se ne vrne.
JoinMarket deluje v sistemu naročilnice, da bi se poskušal izogniti tej osrednji točki neuspeha, a kot je navedeno zgoraj, trenutno uporablja IRC kot plast gostovanja in komunikacije za knjigo naročil. IRC je potencialna osrednja točka neuspeha za JoinMarket, tako kot je strežnik koordinatorja za ZeroLink. Kot projekt, ki temelji na koordinaciji CoinJoins na decentraliziran način, je treba dolgoročno to odvisnost od IRC nadomestiti z nečim bolj robustnim.
Eden najbolj razvitih predlogov je izvajanje neke vrste shema imeniškega strežnika podobno kot uporablja projekt Tor. V omrežju Tor se odjemalci povežejo z nizom strežnikov, ki jih vodijo sodelavci Tor in jim pošljejo vsa vozlišča v omrežju Tor, skozi katera lahko zgradijo čebulne poti.
Zamisel JoinMarketa bi bila imeti podoben nabor strežnikov, ki strankam napajajo vse izdelovalce z odprtimi ponudbami. Te strežnike bi moral upravljati nekdo drug kot izdelovalci, ker bi imel vsak izdelovalec spodbudo, da se oglašuje samo na lastnem imeniškem strežniku, da bi zbral več pristojbin. Prav tako bi se moralo težko pridružiti naboru imeniških strežnikov, sicer bi lahko zlonamerne entitete zagnale veliko število njih in Sybil bi napadla vse uporabnike, ki se povezujejo le z zlonamernimi strežniki.
Obveznice zvestobe bi lahko tukaj rešile težavo Sybil in ustvarile odvračanje izdelovalcev, da bi poskusili zagnati imeniške strežnike. Zaklepanje kovancev v obveznico zvestobe za imeniški strežnik bi jim pustilo manj kovancev, ki bi jih lahko zaklenili v obveznico izdelovalca, kar bi lahko vodilo do tega, da bi jih manj odjemalcev izbralo za mešanice.
Obstaja tudi dokaz koncepta in snubitev od Adama Gibsona za integracijo c-lightninga v JoinMarket za uporabo kot sloj za sporočanje. V kontekstu imeniških strežnikov bi to lahko olajšalo metodo monetizacije zanje kot ločene entitete, ki uporabljajo Lightning Network. Imeniški strežniki bi lahko proizvajalcem zaračunavali majhne zneske preko Lightninga, da bi se oglaševali v imeniku.
Kako bi se lahko nadgradil protokol za usklajevanje JoinMarket
Kot je bilo razloženo zgoraj, se izdelovalci naučijo rezultatov prejemnikov med posameznimi CoinJoins, zato obstaja način tumbler, ki omogoča, da se prejemniki mešajo med več izdelovalci in to ublažijo.
Obstaja pa boljša rešitev, vsaj v primeru, ko se z enim izdelovalcem pogovarja več prejemnikov hkrati in se lahko medsebojno usklajujejo neposredno in ne samo prek izdelovalca (če je prejemnik samo en). pogovor z izdelovalcem, to ne bo pomagalo, ker izdelovalec ve, da vsak izhod, ki ni njegov, pripada prejemniku). CoinShuffle je protokol za učinkovito izvajanje tega, kar slepe poverilnice dosežejo v ZeroLink, da ostanejo stvari zasebne pred koordinatorjem, razen na decentraliziran način za skupino brez osrednjega koordinatorja.
Predstavljajte si, da imate Alice, Boba in Charlieja, ki si vsi med seboj želijo CoinJoin (dogovorili so se že o poimenovanju za izhode CoinJoin), in vsi trije ustvarijo začasni javni ključ, s katerim bodo sporočila šifrirana.
Charlie da svoj javni ključ Bobu, nato Bob da Alice svoj javni ključ in Charliejevega. Imamo torej situacijo, ko ima Alice Bobov in Charliejev javni ključ, Bob ima Charliejev javni ključ, Charlie pa ima samo svojega.
Alice vzame naslov, na katerega želi poslati svoj izhod, in ga šifrira v Charliejev ključ, nato pa vzame to šifrirano sporočilo in ga šifrira v Bobov javni ključ in ga ugnezdi kot ruske lutke. Nato to posreduje Bobu, ki dešifrira svoj sloj in najde šifrirano sporočilo Charlieju, ki ga ne more odpreti. Bob nato vzame naslov, na katerega želi, da se pošlje njegov izhod, in ga šifrira v Charliejev ključ. Obe sporočili posreduje Charlieju. Charlie zdaj dešifrira obe sporočili in najde naslove, na katere želita Alice in Bob poslati svoje izhode, vendar ne ve, kateri naslov komu pripada (in ne pozabite, niti Alice niti Bob nista izvedela naslovov drug drugega).
Charlie nato sestavi in podpiše CoinJoin, ga posreduje Alice in Bobu, da ga podpišeta, in je predložen v omrežje. Vsi v tem procesu vedo, da je bil njihov rezultat pravilno izdelan, vendar ne vedo, kdo je lastnik katerega od drugih dveh naslovov. Ta postopek je mogoče razširiti za veliko večje skupine, in če bi prevzemniki lahko neposredno komunicirali med seboj, preden se obrnejo na izdelovalce, bi lahko ta protokol uporabili za zaščito zasebnosti jemalcev pred posameznimi izdelovalci, ne da bi morali večkrat premetavati kovance z različnimi strankami.
Kako bi se lahko nadgradila struktura transakcij JoinMarket
Največja podobnost med ZeroLink in JoinMarket je zanašanje na podobne denominirane izhode za ustvarjanje dvoumnosti glede tega, kateri vhodi se preslikajo na katere izhode v transakciji.
Medtem ko JoinMarket uporablja poljubne zneske v nasprotju z vnaprej določenimi zneski v ZeroLink, morajo biti v okviru ene transakcije CoinJoin vse mešane apoene enake.
CoinjoinXT je Gibsonov predlog za morebitno odpravo potrebe po tako strogem zanašanju na to (to bi lahko izvajal tudi ZeroLink). Osnovna ideja je izkoristiti ECDSA Multiparty Computation ali MuSig zdaj, ko je Taproot aktiviran, in ustvarite verigo vnaprej podpisanih transakcij z uporabo naslovov z več podpisi, ki so videti kot običajni naslovi z enim podpisom.
Ko nekdo opazuje verigo blokov, sta pogosto narejeni dve veliki predpostavki: ena, da so vsi vnosi v transakciji v lasti ene osebe (velika predpostavka, da CoinJoins prekine); in dva, da plačilo pomeni prenos nadzora nad sredstvi.
Torej, kaj če bi več strank sodelovalo, da bi zaklenilo vsa svoja sredstva na naslov z več podpisi, ki ni videti kot eden, in vnaprej podpisalo dolgo verigo transakcij, ki so videti, kot da ena oseba počasi porablja denar čez čas, v resnici pa samo odluščiti denar in ga v majhnih delcih vrniti prvotnim lastnikom?
Kaj pa, če bi bili nekateri od teh izhodov plačil dejansko zasebni kanali Lightning med dvema udeležencema CoinjoinXT, da bi zagotovili, da opazovalec ne bi mogel slediti plačilni verigi in na neki točki v prihodnosti združiti zneskov?
To bi lahko odprlo povsem nova vrata v smislu prilagodljivosti za vrste CoinJoins, v katere ljudje sodelujejo, in stopnje zasebnosti, ki jih ustvarijo. Če običajni CoinJoin očitno kriči v sobo "Odšel bom in izginil zdaj!" potem bi CoinjoinXT lahko bil enakovreden temu, da bi se tiho in neopaženo izmuznil z zabave.
Decentralizirana prihodnost
Na splošno je bil JoinMarket pošteno nekoliko nišno orodje v ekosistemu, čeprav obstaja od leta 2015, glede na potrebo po zagonu celotnega vozlišča za njegovo uporabo. Šele ko je ZeroLink prišel na trg v obliki Wasabi in Samourai, je CoinJoin zares postal dostopno ter bolj razširjeno in razumljivo orodje.
Obe sta zelo dragoceni orodji, vendar sta na koncu dneva storitvi, zgrajeni okoli centraliziranih podjetij – sicer nezaupljivi storitvi, zgrajeni tako, da je nemogoče izgubiti denar v interakciji z njima – vendar sta vseeno storitvi. Kaj se zgodi, če podjetja zaprejo? Ali bo razvoj še šel tako naprej, glede na to, da ga trenutno financirajo ta podjetja?
V tem prostoru je absolutno prostor za takšna orodja, poleg tega pa so tudi pozitivna. Ista dinamika financiranja, ki postavlja pod vprašaj preživetje orodja, če podjetje propade, zagotavlja veliko sredstev za njegov razvoj, dokler podjetje preživi. Obstaja pa tudi prostor za decentralizirano orodje, ki ni odvisno od enega samega podjetja. Napredek je lahko počasnejši in probleme je morda težje rešiti, če pa uspe, bo končni rezultat veliko bolj robusten in prilagodljiv.
Nič ni narobe s storitvami in podjetji v tem prostoru, toda za vsako storitev in podjetje, kjer je mogoče zgraditi decentralizirano alternativo, mora ta alternativa obstajati kot druga možnost. Tako kot sam Bitcoin se lahko nekega dne znajdete v tem, da ga boste nujno potrebovali.
To je gostujoča objava Shinobija. Izražena mnenja so povsem njihova in ne odražajo nujno mnenj BTC Inc oz Bitcoin Magazine.
Vir: https://bitcoinmagazine.com/technical/joinmarket-zerolink-and-coinjoin-bitcoin-mixing
- "
- Prednost
- Oglaševanje
- vsi
- Dovoli
- Dvoumnost
- Arhitektura
- okoli
- Avgust
- največji
- Bit
- Bitcoin
- Bitcoin UTXO
- blockchain
- Obveznice
- BTC
- BTC Inc.
- izgradnjo
- Nakup
- kanali
- naboj
- polnjenje
- Coin
- Pridružite se skupaj
- Kovanci
- Skupno
- Komunikacija
- Podjetja
- podjetje
- povezava
- povezave
- Gradbeništvo
- Ustvarjanje
- Mandatno
- Trenutna
- Trenutno stanje
- dan
- ponudba
- Decentralizirano
- Defense
- Oblikovanje
- Razvojni
- Razvoj
- Moti
- ekosistem
- šifriranje
- Event
- Napaka
- ponaredek
- Feature
- pristojbine
- zvestoba
- najdbe
- konec
- prva
- prilagodljivost
- obrazec
- Naprej
- polno
- Polno vozlišče
- stvarno
- Financiranje
- Skladi
- Prihodnost
- Giving
- dobro
- skupina
- Gost
- Gost Prispevek
- tukaj
- Skrij
- zgodovina
- Kako
- Kako
- HTTPS
- Ideja
- Vključno
- Podatki
- Internet
- Vprašanja
- IT
- pridružite
- Ključne
- tipke
- velika
- vodi
- UČITE
- naučili
- učenje
- Led
- strele
- Lightning Network
- likvidnostno
- ponudniki likvidnosti
- Long
- avtomat
- Izdelava
- map
- Tržna
- tržnica
- sporočanje
- mešano
- Model
- Denar
- premikanje
- večznakovni
- net
- mreža
- vozlišča
- ponudba
- Ponudbe
- na spletu
- odprite
- Komentarji
- Možnost
- Da
- Ostalo
- Lastniki
- Plačajte
- Plačilo
- ljudje
- bazen
- Bazeni
- predstaviti
- zasebnost
- zasebna
- zasebni ključ
- Projekt
- projekti
- dokazilo
- dokaz koncepta
- snubitev
- zaščito
- protokol
- javnega
- javni ključ
- objavijo
- dvigniti
- povečuje
- Reality
- odvisnost
- viri
- prihodki
- Pot
- Run
- tek
- Storitve
- nastavite
- Delite s prijatelji, znanci, družino in partnerji :-)
- Znaki
- Enostavno
- SIX
- majhna
- So
- SOLVE
- Vesolje
- preživeti
- Poraba
- Spin
- kvadrat
- Začetek
- Država
- predložen
- sistem
- pogovor
- začasna
- čas
- orodja
- tor
- sledenje
- transakcija
- Transakcije
- Zaupajte
- Uporabniki
- vrednost
- Počakaj
- denarnica
- Kaj je
- WHO
- Wikipedia
- veter
- delo
- deluje
- vredno
- leto
- let