MÅ«s jau ilgu laiku interesÄ anonimitÄtes tÄma kriptovalÅ«tÄs un cenÅ”amies sekot lÄ«dzi tehnoloÄ£iju attÄ«stÄ«bai Å”ajÄ jomÄ. Savos rakstos mÄs jau esam detalizÄti apsprieduÅ”i darbÄ«bas principus
2019. gada februÄrÄ« pÄtnieku grupa no Stenfordas UniversitÄtes un Visa Research
Par Ŕo datu modeļu struktūru
UTXO modelÄ« transakcija sastÄv no āievadiemā un āizvadiemā. TieÅ”s āizejuā analogs ir jÅ«su makÄ esoÅ”ie rÄÄ·ini: katrai āizejaiā ir noteikta nominÄlvÄrtÄ«ba. MaksÄjot kÄdam (veidojot darÄ«jumu), jÅ«s iztÄrÄjat vienu vai vairÄkas āizejasā, tÄdÄ gadÄ«jumÄ tÄs kļūst par darÄ«juma āievadiā, un blokÄ·Äde atzÄ«mÄ tÄs kÄ iztÄrÄtas. Å ajÄ gadÄ«jumÄ jÅ«su maksÄjuma saÅÄmÄjs (vai jÅ«s pats, ja nepiecieÅ”amas izmaiÅas) saÅem no jauna Ä£enerÄtos āizejasā. Shematiski to var attÄlot Å”Ädi:
Uz kontu balstÄ«tas blokÄ·Ädes ir strukturÄtas lÄ«dzÄ«gi jÅ«su bankas kontam. Tie attiecas tikai uz jÅ«su kontÄ esoÅ”o summu un pÄrskaitÄ«juma summu. PÄrskaitot kÄdu summu no sava konta, jÅ«s nesadedzinat nekÄdas āizejasā, tÄ«klam nav jÄatceras, kuras monÄtas ir iztÄrÄtas un kuras nav. VienkÄrÅ”ÄkajÄ gadÄ«jumÄ darÄ«juma pÄrbaude ir saistÄ«ta ar sÅ«tÄ«tÄja paraksta un viÅa bilancÄ esoÅ”Äs summas pÄrbaudi:
Tehnoloģiju analīze
TÄlÄk mÄs runÄsim par to, kÄ Zether slÄpj darÄ«juma summu, saÅÄmÄju un sÅ«tÄ«tÄju. Aprakstot tÄs darbÄ«bas principus, atzÄ«mÄsim atŔķirÄ«bas konfidenciÄlajÄ un anonÄ«majÄ versijÄ. TÄ kÄ uz kontu balstÄ«tÄs blokÄ·Ädes ir daudz vienkÄrÅ”Äk nodroÅ”inÄt konfidencialitÄti, daži no anonimizÄcijas noteiktajiem ierobežojumiem nebÅ«s aktuÄli tehnoloÄ£ijas konfidenciÄlajai versijai.
Atlikumu un pÄrskaitÄ«jumu summu slÄpÅ”ana
Å ifrÄÅ”anas shÄma tiek izmantota, lai Å”ifrÄtu atlikumus un pÄrsÅ«tÄ«tu summas Zether
kur C - Å”ifrÄta summa, D - palÄ«gvÄrtÄ«ba, kas nepiecieÅ”ama Ŕīs summas atÅ”ifrÄÅ”anai, G - fiksÄts punkts eliptiskajÄ lÄ«knÄ, reizinot ar slepeno atslÄgu, tiek iegÅ«ta publiskÄ atslÄga.
Kad Bobs saÅem Ŕīs vÄrtÄ«bas, viÅÅ” vienkÄrÅ”i pievieno tÄs savam Å”ifrÄtajam atlikumam tÄdÄ paÅ”Ä veidÄ, tÄpÄc Ŕī shÄma ir Ärta.
TÄpat Alise no sava bilances atÅem tÄs paÅ”as vÄrtÄ«bas, tikai kÄ Y izmanto jÅ«su publisko atslÄgu.
SaÅÄmÄja un sÅ«tÄ«tÄja slÄpÅ”ana
āIzvadesā sajaukÅ”ana UTXO ir datÄta ar kriptovalÅ«tu pirmsÄkumiem un palÄ«dz slÄpt sÅ«tÄ«tÄju. Lai to izdarÄ«tu, pats sÅ«tÄ«tÄjs, veicot pÄrskaitÄ«jumu, savÄc nejauÅ”as āizejasā blokÄ·ÄdÄ un sajauc tos ar savÄjo. PÄc tam viÅÅ” paraksta āizejasā ar gredzenveida parakstu ā kriptogrÄfijas mehÄnismu, kas viÅam ļauj pÄrliecinÄt pÄrbaudÄ«tÄju, ka sÅ«tÄ«tÄja monÄtas ir starp iesaistÄ«tajÄm āizvadÄmā. PaÅ”as jauktÄs monÄtas, protams, netiek iztÄrÄtas.
TomÄr mÄs nevarÄsim Ä£enerÄt viltotus rezultÄtus, lai paslÄptu adresÄtu. TÄpÄc UTXO katrai āizejaiā ir sava unikÄla adrese, un tÄ ir kriptogrÄfiski saistÄ«ta ar Å”o monÄtu saÅÄmÄja adresi. PaÅ”laik nav iespÄjams noteikt attiecÄ«bas starp unikÄlo izvades adresi un saÅÄmÄja adresi, nezinot tÄs slepenÄs atslÄgas.
Uz kontu balstÄ«tajÄ modelÄ« mÄs nevaram izmantot vienreizÄjas adreses (pretÄjÄ gadÄ«jumÄ tas jau bÅ«s āizejuā modelis). TÄpÄc adresÄts un sÅ«tÄ«tÄjs ir jÄsajauc starp citiem blokÄ·Ädes kontiem. Å ajÄ gadÄ«jumÄ no jauktajiem kontiem tiek debetÄta Å”ifrÄta 0 monÄta (vai tiek pievienota 0, ja saÅÄmÄjs ir jaukts), faktiski nemainot to reÄlo atlikumu.
TÄ kÄ gan sÅ«tÄ«tÄjam, gan saÅÄmÄjam vienmÄr ir pastÄvÄ«ga adrese, pÄrsÅ«tot uz vienÄm un tÄm paÅ”Äm adresÄm, miksÄÅ”anai ir jÄizmanto vienas un tÄs paÅ”as grupas. To ir vieglÄk aplÅ«kot ar piemÄru.
PieÅemsim, ka Alise nolemj dot ieguldÄ«jumu Boba labdarÄ«bÄ, bet dod priekÅ”roku, lai pÄrsÅ«tÄ«Å”ana bÅ«tu anonÄ«ma ÄrÄjam novÄrotÄjam. Tad, lai maskÄtos sÅ«tÄ«tÄja laukÄ, viÅa ieiet arÄ« Ädama un Adeles kontos. Un, lai paslÄptu Bobu, adresÄta laukÄ pievienojiet Bena un Bila kontus. Sniedzot nÄkamo ieguldÄ«jumu, Alise nolÄma viÅai blakus uzrakstÄ«t Aleksu un Amandu, bet blakus Bobam BrÅ«su un Benjenu. Å ajÄ gadÄ«jumÄ, analizÄjot blokÄ·Ädi, Å”ajos divos darÄ«jumos ir tikai viens krustojoÅ”s dalÄ«bnieku pÄris - Alise un Bobs, kas padara Å”os darÄ«jumus anonimizÄtus.
Darījumu sacīkstes
KÄ jau minÄjÄm, lai paslÄptu savu bilanci uz kontu balstÄ«tÄs sistÄmÄs, lietotÄjs Å”ifrÄ savu bilanci un pÄrskaitÄ«juma summu. TajÄ paÅ”Ä laikÄ viÅam jÄpierÄda, ka viÅa konta atlikums joprojÄm nav negatÄ«vs. ProblÄma ir tÄ, ka, veidojot darÄ«jumu, lietotÄjs izveido pierÄdÄ«jumu par sava tekoÅ”Ä konta statusu. Kas notiek, ja Bobs nosÅ«ta Alisei darÄ«jumu un tas tiek pieÅemts pirms Alises nosÅ«tÄ«tÄ? Tad Alises darÄ«jums tiks uzskatÄ«ts par nederÄ«gu, jo lÄ«dzsvara apliecinÄjums tika izveidots pirms Boba darÄ«juma pieÅemÅ”anas.
Pirmais lÄmums, kas tiek pieÅemts Å”ÄdÄ situÄcijÄ, ir konta iesaldÄÅ”ana lÄ«dz darÄ«juma veikÅ”anai. Bet Ŕī pieeja nav piemÄrota, jo papildus Å”Ädas problÄmas risinÄÅ”anas sarežģītÄ«bai sadalÄ«tÄ sistÄmÄ anonÄ«mÄ shÄmÄ nebÅ«s skaidrs, kura kontu bloÄ·Ät.
Lai atrisinÄtu Å”o problÄmu, tehnoloÄ£ija atdala ienÄkoÅ”os un izejoÅ”os darÄ«jumus: tÄriÅiem ir tÅ«lÄ«tÄja ietekme uz bilanci, savukÄrt ieÅÄmumiem ir aizkavÄta ietekme. Lai to izdarÄ«tu, tiek ieviests jÄdziens āepohaā - noteikta izmÄra bloku grupa. PaÅ”reizÄjo "laikmetu" nosaka, dalot bloka augstumu ar grupas lielumu. ApstrÄdÄjot darÄ«jumu, tÄ«kls nekavÄjoties atjaunina sÅ«tÄ«tÄja bilanci un uzglabÄ saÅÄmÄja lÄ«dzekļus uzglabÄÅ”anas tvertnÄ. UzkrÄtie lÄ«dzekļi tiek nodoti maksÄjuma saÅÄmÄjam tikai tad, kad sÄkas jauna āÄraā.
RezultÄtÄ lietotÄjs var nosÅ«tÄ«t darÄ«jumus neatkarÄ«gi no tÄ, cik bieži tiek saÅemti lÄ«dzekļi (protams, ciktÄl to atļauj viÅa bilance). Epoha lielums tiek noteikts, pamatojoties uz to, cik Ätri bloki izplatÄs tÄ«klÄ un cik Ätri transakcija nonÄk blokÄ.
Å is risinÄjums labi darbojas konfidenciÄlu pÄrsÅ«tÄ«Å”anu gadÄ«jumÄ, taÄu ar anonÄ«miem darÄ«jumiem, kÄ redzÄsim vÄlÄk, tas rada nopietnas problÄmas.
AizsardzÄ«ba pret atkÄrtoÅ”anas uzbrukumiem
Uz kontu balstÄ«tajÄs blokÄ·ÄdÄs katru darÄ«jumu paraksta sÅ«tÄ«tÄja privÄtÄ atslÄga, kas pÄrliecina pÄrbaudÄ«tÄju, ka darÄ«jums nav mainÄ«ts un to ir izveidojis Ŕīs atslÄgas Ä«paÅ”nieks. Bet ko darÄ«t, ja uzbrucÄjs, kurÅ” klausÄ«jÄs pÄrraides kanÄlu, pÄrtver Å”o ziÅojumu un nosÅ«ta tieÅ”i to paÅ”u otro? VerificÄtÄjs pÄrbaudÄ«s darÄ«juma parakstu un pÄrliecinÄsies par tÄ autorÄ«bu, un tÄ«kls atkal norakstÄ«s tÄdu paÅ”u summu no sÅ«tÄ«tÄja atlikuma.
Å o uzbrukumu sauc par atkÄrtotu uzbrukumu. UTXO modelÄ« Å”Ädi uzbrukumi nav aktuÄli, jo uzbrucÄjs mÄÄ£inÄs izmantot izlietotos izvadus, kas pats par sevi nav derÄ«gs un tÄ«kls tos noraida.
Lai tas nenotiktu, darÄ«jumÄ ir iebÅ«vÄts lauks ar nejauÅ”iem datiem, ko sauc par nonce jeb vienkÄrÅ”i āsÄliā. AtkÄrtoti iesniedzot darÄ«jumu ar sÄli, verificÄtÄjs pÄrbauda, āāvai nonce ir izmantota iepriekÅ”, un, ja nÄ, darÄ«jumu uzskata par derÄ«gu. Lai blokÄ·ÄdÄ netiktu saglabÄta visa lietotÄja nonces vÄsture, parasti paÅ”Ä pirmajÄ darÄ«jumÄ tas tiek iestatÄ«ts vienÄds ar nulli un pÄc tam tiek palielinÄts par vienu. TÄ«kls var tikai pÄrbaudÄ«t, vai jaunÄ darÄ«juma nonce atŔķiras no iepriekÅ”ÄjÄs.
AnonÄ«mÄs pÄrsÅ«tÄ«Å”anas shÄmÄ rodas problÄma ar darÄ«jumu neesÄ«bu validÄÅ”anu. MÄs nevaram nepÄrprotami saistÄ«t nonce ar sÅ«tÄ«tÄja adresi, jo, protams, tas padara pÄrsÅ«tÄ«Å”anu anonimizÄtu. MÄs arÄ« nevaram to pievienot visu iesaistÄ«to kontu nonces, jo tas var bÅ«t pretrunÄ ar citiem apstrÄdÄtajiem pÄrskaitÄ«jumiem.
Zether autori ierosina nonce Ä£enerÄt kriptogrÄfiski atkarÄ«bÄ no ālaikaā. PiemÄram:
Å eit x ir sÅ«tÄ«tÄja slepenÄ atslÄga un Gepoch ā papildu Ä£enerators laikmetam, kas iegÅ«ts, jaucot virkni formÄ āZether +ā. Tagad Ŕķiet, ka problÄma ir atrisinÄta - mÄs neatklÄjam sÅ«tÄ«tÄja nebijuÅ”us un neiejaucamies neiesaistÄ«to dalÄ«bnieku nonÄvÄjumos. TaÄu Ŕī pieeja uzliek nopietnu ierobežojumu: viens konts var nosÅ«tÄ«t ne vairÄk kÄ vienu darÄ«jumu vienÄ ālaikÄā. DiemžÄl Ŕī problÄma joprojÄm nav atrisinÄta, un paÅ”laik Zether anonÄ«mÄ versija, mÅ«suprÄt, nav piemÄrota lietoÅ”anai.
Nulles zinÄÅ”anu pierÄdÄ«jumu sarežģītÄ«ba
UTXO gadÄ«jumÄ sÅ«tÄ«tÄjam jÄpierÄda tÄ«klam, ka viÅÅ” netÄrÄ negatÄ«vu summu, pretÄjÄ gadÄ«jumÄ kļūst iespÄjams no zila gaisa Ä£enerÄt jaunas monÄtas (kÄpÄc tas ir iespÄjams, mÄs rakstÄ«jÄm vienÄ no iepriekÅ”Äjiem
Uz kontu balstÄ«tÄs blokÄ·Ädes anonÄ«majÄ versijÄ pierÄdÄ«jumu izteicieni ir daudz sarežģītÄki. SÅ«tÄ«tÄjs pierÄda, ka:
- NosÅ«tÄ«tÄ summa ir pozitÄ«va;
- Bilance paliek nenegatīva;
- SÅ«tÄ«tÄjs pareizi Å”ifrÄja pÄrskaitÄ«juma summas (ieskaitot nulli);
- Bilances atlikums mainÄs tikai sÅ«tÄ«tÄjam un saÅÄmÄjam;
- SÅ«tÄ«tÄjam pieder viÅa konta privÄtÄ atslÄga, un viÅÅ” faktiski ir sÅ«tÄ«tÄju sarakstÄ (starp tiem, kas ir iesaistÄ«ti);
- DarÄ«jumÄ izmantotais Nonce ir sastÄdÄ«ts pareizi.
Å Ädam sarežģītam pierÄdÄ«jumam autori izmanto maisÄ«jumu
RezultÄts?
MÅ«suprÄt, to Zether daļu, kas nodroÅ”ina privÄtumu uz kontu balstÄ«tÄm blokÄ·ÄdÄm, var izmantot jau tagad. TaÄu Å”obrÄ«d tehnoloÄ£ijas anonÄ«mÄ versija uzliek nopietnus ierobežojumus tÄs lietoÅ”anai un tÄs ievieÅ”anas sarežģītÄ«bu. TomÄr nevajadzÄtu noliegt, ka autori to izlaida tikai pirms dažiem mÄneÅ”iem, un, iespÄjams, kÄds cits atradÄ«s risinÄjumu mÅ«sdienu problÄmÄm. Galu galÄ tÄ notiek zinÄtne.
Avots: www.habr.com