Mahitungod sa anonymity sa mga blockchain nga nakabase sa account

Kami interesado sa hilisgutan sa dili pagpahibalo sa mga cryptocurrencies sa dugay nga panahon ug naningkamot sa pagsunod sa pagpalambo sa mga teknolohiya niini nga dapit. Sa among mga artikulo nahisgotan na namo sa detalye ang mga prinsipyo sa operasyon kompidensyal nga mga transaksyon sa Monero, ug gihimo usab comparative review mga teknolohiya nga anaa niini nga natad. Bisan pa, ang tanan nga wala mailhi nga mga cryptocurrencies karon gitukod sa modelo sa datos nga gisugyot sa Bitcoin - Unspent Transaction Output (pagkahuman niini UTXO). Alang sa mga blockchain nga nakabase sa account sama sa Ethereum, adunay mga solusyon alang sa pagpatuman sa dili mailhan ug kompidensyal (pananglitan, Mobius o Aztec) misulay sa pagsundog sa modelo sa UTXO sa mga smart nga kontrata.

Niadtong Pebrero 2019, usa ka grupo sa mga tigdukiduki gikan sa Stanford University ug Visa Research gibuhian preprint "Zether: Ngadto sa pagkapribado sa kalibutan sa mga smart nga kontrata." Ang mga tagsulat mao ang una nga nagsugyot og usa ka pamaagi sa pagsiguro nga dili mailhan sa mga blockchain nga nakabase sa account ug gipresentar ang duha ka bersyon sa usa ka smart nga kontrata: alang sa mga kompidensyal (nagtago sa mga balanse ug mga kantidad sa pagbalhin) ug wala mailhi (nagtago sa nakadawat ug nagpadala) nga mga transaksyon. Nakita namon ang gisugyot nga teknolohiya nga makapaikag ug gusto nga ipaambit ang disenyo niini, ingon man maghisgot kung ngano nga ang problema sa dili pagpahibalo sa mga blockchain nga nakabase sa account giisip nga lisud kaayo ug kung ang mga tagsulat nakahimo sa pagsulbad niini sa hingpit.

Mahitungod sa istruktura niini nga mga modelo sa datos

Sa UTXO model, ang usa ka transaksyon naglangkob sa "inputs" ug "outputs". Ang direkta nga analogue sa "mga output" mao ang mga bayronon sa imong pitaka: ang matag "output" adunay pipila ka denominasyon. Kung nagbayad ka sa usa ka tawo (pagporma usa ka transaksyon) naggasto ka usa o daghan pa nga "mga output", diin kini nahimo nga "mga input" sa transaksyon, ug ang blockchain nagtimaan niini nga gigasto. Sa kini nga kaso, ang nakadawat sa imong bayad (o ikaw mismo, kung kinahanglan nimo ang pagbag-o) makadawat sa bag-ong nahimo nga "mga output". Mahimo kining irepresentar sa eskematiko sama niini:

Mahitungod sa anonymity sa mga blockchain nga nakabase sa account

Ang mga blockchain nga nakabase sa account gi-istruktura sama sa imong bank account. Nag-atubang ra sila sa kantidad sa imong account ug sa kantidad sa pagbalhin. Kung gibalhin nimo ang pila ka kantidad gikan sa imong account, dili nimo masunog ang bisan unsang "mga output", dili kinahanglan nga hinumdoman sa network kung unsang mga sensilyo ang nagasto ug wala. Sa pinakasimple nga kaso, ang pag-verify sa transaksyon moabut sa pagsusi sa pirma sa nagpadala ug ang kantidad sa iyang balanse:

Mahitungod sa anonymity sa mga blockchain nga nakabase sa account

Pagtuki sa teknolohiya

Sunod, atong hisgutan kung giunsa pagtago ni Zether ang kantidad sa transaksyon, nakadawat, ug nagpadala. Samtang atong gihulagway ang mga prinsipyo sa operasyon niini, atong mamatikdan ang mga kalainan sa mga kompidensyal ug wala mailhi nga mga bersyon. Tungod kay mas sayon ​​​​ang pagsiguro sa pagkakompidensyal sa mga blockchain nga nakabase sa account, ang pipila sa mga pagdili nga gipahamtang pinaagi sa anonymization dili angay alang sa kompidensyal nga bersyon sa teknolohiya.

Pagtago sa mga balanse ug mga kantidad sa pagbalhin

Ang usa ka encryption scheme gigamit sa pag-encrypt sa mga balanse ug pagbalhin sa kantidad sa Zether El Gamal. Naglihok kini sama sa mosunod. Kung gusto ni Alice nga ipadala si Bob b mga sensilyo pinaagi sa adres (publiko nga yawe) Y, mopili siyag random nga numero r ug gi-encrypt ang kantidad:

Mahitungod sa anonymity sa mga blockchain nga nakabase sa account
diin C - naka-encrypt nga kantidad, D - auxiliary nga kantidad nga gikinahanglan aron mahibal-an kini nga kantidad, G - usa ka piho nga punto sa elliptic curve, kung gipadaghan sa sekreto nga yawe, ang publiko nga yawe makuha.

Kung nadawat ni Bob kini nga mga kantidad, gidugang ra niya kini sa iyang naka-encrypt nga balanse sa parehas nga paagi, mao nga kini nga laraw kombenyente.

Sa susama, gipaubos ni Alice ang parehas nga mga kantidad gikan sa iyang balanse, ingon lamang Y naggamit sa imong public key.

Pagtago sa tigdawat ug nagpadala

Ang pag-shuffle sa "mga output" sa UTXO nagsugod sa unang mga adlaw sa mga cryptocurrencies ug makatabang sa pagtago sa nagpadala. Sa pagbuhat niini, ang nagpadala sa iyang kaugalingon, sa diha nga sa paghimo sa usa ka pagbalhin, mangolekta random "outputs" sa blockchain ug sagol kanila uban sa iyang kaugalingon. Sunod, gipirmahan niya ang "mga output" gamit ang usa ka pirma sa singsing-usa ka mekanismo sa cryptographic nga nagtugot kaniya sa pagkombinser sa verifier nga ang mga sensilyo sa nagpadala anaa sa mga "output" nga nalambigit. Ang sinagol nga mga sensilyo mismo, siyempre, wala gigasto.

Bisan pa, dili kami makahimo og peke nga mga output aron matago ang nakadawat. Busa, sa UTXO, ang matag "output" adunay kaugalingon nga talagsaon nga adres, ug kini cryptographically nalambigit sa adres sa nakadawat niini nga mga sensilyo. Sa pagkakaron, wala'y paagi sa pag-ila sa relasyon tali sa talagsaon nga address sa output ug sa adres sa tigdawat nga wala mahibalo sa sekreto nga mga yawe niini.

Sa modelo nga nakabase sa account, dili kami makagamit sa usa ka higayon nga mga adres (kung dili kini usa na ka modelo nga "paggawas"). Busa, ang tigdawat ug nagpadala kinahanglang isagol sa ubang mga account sa blockchain. Sa kini nga kaso, ang usa ka naka-encrypt nga 0 nga mga sensilyo ang gi-debit gikan sa nagkasagol nga mga account (o 0 ang idugang kung ang nakadawat gisagol), nga wala gyud usba ang ilang tinuud nga balanse.

Tungod kay ang nagpadala ug ang nakadawat kanunay adunay permanente nga adres, kinahanglan nga gamiton ang parehas nga mga grupo alang sa pagsagol kung magbalhin sa parehas nga mga adres. Mas sayon ​​ang pagtan-aw niini gamit ang usa ka pananglitan.

Ingnon ta nga nakahukom si Alice nga mohimo ug kontribusyon sa charity ni Bob, apan mas gusto nga ang pagbalhin magpabilin nga dili mailhan sa usa ka tigpaniid sa gawas. Dayon, aron magtakuban sa iyang kaugalingon sa sender field, gisulod usab niya ang mga asoy ni Adan ug Adele. Ug aron itago si Bob, idugang ang mga account ni Ben ug Bill sa natad sa nakadawat. Mihimo sa sunod nga kontribusyon, nakahukom si Alice nga sulatan si Alex ug Amanda tupad niya, ug si Bruce ug Benjen tupad ni Bob. Sa kini nga kaso, sa pag-analisar sa blockchain niining duha ka mga transaksyon, adunay usa lamang ka intersecting nga parisan sa mga partisipante - si Alice ug Bob, nga nag-de-anonymize niini nga mga transaksyon.

Mahitungod sa anonymity sa mga blockchain nga nakabase sa account

Mga lumba sa transaksyon

Sama sa nahisgotan na namo, aron itago ang imong balanse sa mga sistema nga nakabase sa account, gi-encrypt sa user ang iyang balanse ug ang kantidad sa pagbalhin. Sa samang higayon, kinahanglan niyang pamatud-an nga ang balanse sa iyang account nagpabilin nga dili negatibo. Ang problema mao nga sa paghimo sa usa ka transaksyon, ang user nagtukod og usa ka pruweba mahitungod sa iyang kasamtangan nga account status. Unsa ang mahitabo kung magpadala si Bob ug transaksyon ngadto kang Alice, ug dawaton kini sa wala pa ang gipadala ni Alice? Unya ang transaksyon ni Alice maisip nga dili balido, tungod kay ang pruweba sa balanse gitukod sa wala pa gidawat ang transaksyon ni Bob.

Mahitungod sa anonymity sa mga blockchain nga nakabase sa account

Ang una nga desisyon nga moabut sa ingon nga kahimtang mao ang pag-freeze sa account hangtod mahuman ang transaksyon. Apan kini nga pamaagi dili angay, tungod kay dugang pa sa pagkakomplikado sa pagsulbad sa ingon nga problema sa usa ka giapod-apod nga sistema, sa usa ka anonymous nga pamaagi dili kini klaro kung kinsa nga account ang babagan.

Aron masulbad kini nga problema, ang teknolohiya nagbulag sa umaabot ug paggawas nga mga transaksyon: ang paggasto adunay diha-diha nga epekto sa balanse, samtang ang mga resibo adunay nalangan nga epekto. Aron mahimo kini, gipaila ang konsepto sa "panahon" - usa ka grupo sa mga bloke sa usa ka piho nga gidak-on. Ang kasamtangan nga "panahon" gitino pinaagi sa pagbahin sa gitas-on sa block sa gidak-on sa grupo. Kung nagproseso sa usa ka transaksyon, ang network nag-update dayon sa balanse sa nagpadala ug nagtipig sa mga pondo sa nakadawat sa usa ka tangke sa pagtipig. Ang natipon nga mga pundo magamit sa nagbayad lamang kung ang usa ka bag-ong "panahon" magsugod.

Ingon usa ka sangputanan, ang tiggamit mahimo’g magpadala mga transaksyon bisan kung unsa ka sagad madawat ang mga pondo (kutob sa gitugotan sa iyang balanse, siyempre). Ang gidak-on sa panahon gitino base sa kung unsa ka paspas ang mga bloke nga mikaylap pinaagi sa network ug kung unsa ka paspas ang usa ka transaksyon nga mosulod sa usa ka bloke.

Maayo kini nga solusyon alang sa mga kompidensyal nga pagbalhin, apan sa mga wala mailhi nga mga transaksyon, ingon sa atong makita sa ulahi, nagmugna kini mga seryoso nga problema.

Proteksyon batok sa mga pag-atake sa replay

Sa mga blockchain nga nakabase sa account, ang matag transaksyon gipirmahan sa pribado nga yawe sa nagpadala, nga nagkumbinser sa verifier nga ang transaksyon wala giusab ug gimugna sa tag-iya niini nga yawe. Apan unsa man kung ang usa ka tig-atake nga naminaw sa transmission channel makapugong niini nga mensahe ug nagpadala sa parehas nga ikaduha? Ang verifier magpamatuod sa pirma sa transaksyon ug makombinsir sa awtor niini, ug ang network mosulat sa samang kantidad gikan sa balanse sa nagpadala pag-usab.

Kini nga pag-atake gitawag nga replay attack. Sa modelo sa UTXO, ang ingon nga mga pag-atake dili angay, tungod kay ang tig-atake mosulay sa paggamit sa gigasto nga mga output, nga sa iyang kaugalingon dili balido ug gisalikway sa network.

Aron mapugngan kini nga mahitabo, usa ka uma nga adunay random nga datos ang gitukod sa transaksyon, nga gitawag nga nonce o yano nga "asin". Kung gisubmit pag-usab ang usa ka transaksyon nga adunay asin, ang verifier nagtan-aw aron makita kung ang nonce gigamit na kaniadto ug, kung wala, gikonsiderar nga balido ang transaksyon. Aron dili tipigan ang tibuok kasaysayan sa mga user nonces sa blockchain, kasagaran sa una nga transaksyon kini gitakda nga katumbas sa zero, ug unya gidugangan sa usa. Ang network mahimo lamang nga susihon nga ang nonce sa bag-ong transaksyon lahi gikan sa nauna nga usa-usa.

Sa anonymous nga pamaagi sa pagbalhin, ang problema sa pag-validate sa mga nonces sa transaksyon mitungha. Dili nato klaro nga ihigot ang nonce sa adres sa nagpadala, tungod kay, klaro, kini nga de-anonymize sa pagbalhin. Dili usab kami makadugang usa sa mga nonces sa tanan nga mga partisipante nga mga account, tungod kay kini mahimong sukwahi sa ubang mga pagbalhin nga giproseso.

Ang mga tagsulat sa Zether nagsugyot sa paghimo sa nonce cryptographically, depende sa "panahon". Pananglitan:

Mahitungod sa anonymity sa mga blockchain nga nakabase sa account
kini mao ang x mao ang sekreto nga yawe sa nagpadala, ug Gepoch - usa ka dugang nga generator alang sa panahon, nakuha pinaagi sa pag-hash sa usa ka hilo sa porma nga 'Zether +'. Karon ang problema daw nasulbad na - dili namo ibutyag ang nonce sa nagpadala ug dili manghilabot sa mga nonces sa wala'y labot nga mga partisipante. Apan kini nga pamaagi nagpahamtang og usa ka seryoso nga limitasyon: ang usa ka account dili makapadala og labaw sa usa ka transaksyon kada "panahon". Kini nga problema, sa walay palad, nagpabilin nga wala masulbad, ug karon naghimo sa anonymous nga bersyon sa Zether, sa among opinyon, halos dili angay alang sa paggamit.

Ang Pagkakomplikado sa Zero nga Mga Pamatuod sa Kahibalo

Sa UTXO, kinahanglan nga pamatud-an sa nagpadala sa network nga wala siya mogasto og negatibo nga kantidad, kung dili mahimo’g makahimo og bag-ong mga sensilyo gikan sa manipis nga hangin (nganong posible kini, gisulat namon ang usa sa nauna mga artikulo). Ug pirmahi usab ang mga "input" nga adunay pirma sa singsing aron pamatud-an nga sa mga sensilyo nga gisagol adunay mga pundo nga iya.

Sa anonymous nga bersyon sa account-based blockchain, ang mga ekspresyon alang sa pruweba mas komplikado. Ang nagpadala nagpamatuod nga:

  1. Positibo ang kantidad nga gipadala;
  2. Ang balanse nagpabilin nga dili negatibo;
  3. Sakto nga gi-encrypt sa nagpadala ang mga kantidad sa pagbalhin (lakip ang zero);
  4. Ang balanse sa balanse nagbag-o lamang alang sa nagpadala ug nakadawat;
  5. Ang nagpadala tag-iya sa pribadong yawe sa iyang account ug siya sa tinuod anaa sa listahan sa mga nagpadala (lakip sa mga nalambigit);
  6. Ang Nonce nga gigamit sa transaksyon gikomposo sa husto.

Alang sa ingon ka komplikado nga pamatuod, ang mga tagsulat naggamit usa ka sagol Dili nga bala (usa sa mga tagsulat, sa dalan, miapil sa paglalang niini) ug Sigma protocol, nga gitawag og Sigma-bullets. Ang pormal nga pamatuod sa ingon nga pahayag usa ka lisud nga buluhaton, ug kini naglimite sa gidaghanon sa mga tawo nga andam nga ipatuman ang teknolohiya.

Unsa man ang sa katapusan?

Sa among opinyon, ang bahin sa Zether nga nagdala sa pagkapribado sa mga blockchain nga nakabase sa account mahimong magamit karon. Apan sa pagkakaron, ang anonymous nga bersyon sa teknolohiya nagpahamtang ug seryoso nga mga pagdili sa paggamit niini, ug ang pagkakomplikado niini sa pagpatuman niini. Bisan pa, dili kinahanglan nga ibaliwala nga gipagawas kini sa mga tagsulat pipila lang ka bulan ang milabay, ug tingali adunay lain nga mangita usa ka solusyon sa mga problema nga naglungtad karon. Human sa tanan, ingon niini ang gibuhat sa siyensya.

Source: www.habr.com

Idugang sa usa ka comment