Avaleht
Artiklid
KrĂŒpto lĂ€bipaistvuse parandamine kasutades teadmise puudumise tĂ”endit

KrĂŒpto lĂ€bipaistvuse parandamine kasutades teadmise puudumise tĂ”endit

Keskmine
Avaldatud Feb 10, 2023VĂ€rskendatud Jan 5, 2024
10m

TL;DR

Teadmise puudumise tĂ”end vĂ”imaldab ĂŒhel osapoolel (tĂ”endajal) mÀÀrata teise osapoole (tĂ”estaja) esitatud vĂ€ite tĂ”esust ilma vĂ€ite sisu teadmata. NĂ€iteks vĂ”ib Binance tahta tĂ”estada, et tagab oma kasutajate rahalisi vahendeid tĂ€ies ulatuses, ilma et avalikustaks kĂ”iki ĂŒksikute kasutajate saldosid.

Merkle'i puud saab kasutada „reservide tĂ”endi“ koostamiseks, mis kaitseb tema siseandmete, antud juhul kogu klientide netosaldo, mis on börsi kohustused kasutajate ees, vĂ”ltsimise eest. Seda saab seejĂ€rel kombineerida zk-SNARK-iga (teadmiste puudumise tĂ”endi protokoll), mis tagab, et kasutajad saavad kontrollida oma saldot, mis moodustab osa kasutaja kogu netovarade saldost, teadmata ĂŒksikuid saldosid.

Sissejuhatus

KrĂŒptovarade turvalisus on turusĂŒndmuste valguses muutunud kriitiliseks teemaks. Plokiahela kasutajad hindavad kĂ”rgelt lĂ€bipaistvust ja avatust, kuid toetavad ka privaatsust ning konfidentsiaalsust. See loob haldurite hoitavate vahendite reservide tĂ”endamisel dilemma. Sageli tehakse lĂ€bipaistvuse, usalduse ja andmete konfidentsiaalsuse vahel kompromiss.

See ei pea aga tingimata nii olema. Kombineerides teadmiste puudumise tÔendi protokolle nagu zk-SNARK-id Merkle'i puudega, leiame tÔhusa lahenduse kÔigile osapooltele.

Mis on teadmise puudumise tÔend?

Teadmise puudumise tĂ”end vĂ”imaldab ĂŒhel osapoolel (tĂ”endajal) mÀÀrata teise osapoole (tĂ”estaja) esitatud vĂ€ite tĂ”esust ilma vĂ€ite sisu teadmata. Vaatame lihtsat nĂ€idet.

Sa oled lukustanud seifi, mille koodi tead ainult sina. Seifi ei saa nÀite huvides muukida, jÔuga avada ega muul viisil avada kui kombinatsiooni teades. Sellest faktist saab aimu, seda kontrollib ja teab ka sinu katses osalev sÔber.

Ütled oma sĂ”brale, et tead seda kombinatsiooni, kuid ei taha seda talle anda ega tema ees kasti avada. Seifi peal on avavus, millest sĂ”ber saab mĂ€rkmeid lĂ€bi lasta. Et see oleks teadmiste puudumise tĂ”end, ei tohiks sinu sĂ”bral olla protsessi kohta muud teavet kui antud vĂ€ide.

Saad oma sÔbrale tÔestada, et tead kombinatsiooni, avades seifi, öeldes talle, mis oli sedelil kirjutatud, ja sulgedes selle uuesti. Kuid sa pole kunagi kombinatsiooni kellelgi andnud.

TÀpsema nÀite saamiseks vaata artiklit Mis on teadmise puudumise tÔend ja kuidas see plokiahelat mÔjutab?

Miks me kasutame teadmise puudumise tÔendit?

Teadmise puudumise tÔendid sobivad millegi tÔestamiseks ilma tundlikku teavet vÔi detaile paljastamata. See vÔib juhtuda juhul, kui sa ei soovi avaldada oma finants- vÔi isiklikku teavet, mida vÔidakse sobimatult kasutada.

KrĂŒptoraha puhul saad tĂ”estada, et sul on privaatvĂ”ti, ilma seda avaldamata vĂ”i midagi digitaalselt allkirjastamata. KrĂŒptorahabörs vĂ”ib samuti tahta tĂ”estada oma reservide olemasolu, avaldamata oma kasutajate kohta konfidentsiaalset teavet, sealhulgas nende isiklikke kontojÀÀke. 

Nende (ja paljude teiste) nĂ€idete puhul kasutaks teadmise puudumise tĂ”end algoritme, mis vĂ”tavad andmesisendi ja tagastavad vĂ€ljundina „tĂ”ene“ vĂ”i „vÀÀr“. 

Teadmise puudumise tÔendite mÀÀratlemine tehniliste terminitega

Tehnilises mÔttes jÀrgib teadmise puudumise tÔend kindlat struktuuri ja teatud kriteeriume. Oleme juba kÀsitlenud tÔestaja ja kontrollija rolle, kuid on ka kolm kriteeriumi, mida teadmise puudumise tÔend peaks kÀsitlema:

  1. TÀielikkus. Kui vÀide vastab tÔele, veenab tÔendaja esitatud tÔendeid, ilma et oleks vaja muud teavet vÔi kontrolli teostada.

  2. MittevasturÀÀkivus. Kui vÀide on vale, ei saa kontrollija esitatud tÔend vÀite Ôigsuses veenda.

  3. Teadmise puudumine. Kui vÀide on tÔene, ei saa tÔendaja teada muud teavet peale selle, et vÀide on tÔene.

Mis on zk-SNARK?

Zk-SNARK (teadmise puudumise lĂŒhike mitteinteraktiivne argumentatsioon teadmiste kohta) on tĂ”estusprotokoll, mis jĂ€rgib eelnevalt kirjeldatud teadmise puudumise pĂ”himĂ”tteid. Zk-SNARK-i abil saad tĂ”estada, et tead algset rĂ€sivÀÀrtust (seda kĂ€sitletakse allpool), ilma et peaksid avaldama, mis see on. Samuti saad tĂ”estada tehingu kehtivust ilma konkreetsete summade, vÀÀrtuste vĂ”i aadresside kohta teavet avaldamata.

zk-SNARK-e kasutatakse ja nendest rÀÀgitakse tavaliselt plokiahela ja krĂŒptoraha maailmas. Kuid vĂ”id kĂŒsida, miks keegi viitsib zk-SNARK-i kasutada, kui nad saavad teabe kaitsmiseks kasutada lihtsat avaliku ja privaatvĂ”tme paari meetodit. Kuid me ei saaks rakendada matemaatilist tĂ”estust tagamaks, et Merkle'i puu summas ei sisalduks negatiivseid saldosid. 

Tahame börsi reservide puhul tĂ”estada, et klientide saldod on ĂŒks ĂŒhele tagatud ilma iga konto identifikaatorit ja saldot avalikustamata.Lisaks muudab zk-SNARK tehnoloogia andmete vĂ”ltsimise veelgi ebatĂ”enĂ€olisemaks.

Mis on Merkle'i puu?

Binance'i kasutajate kontode summeeritud rahaliste vahendite esitamine nĂ”uab suure andmestikuga töötamist. Merkle'i puu kasutamine on ĂŒks vĂ”imalus selle suure andmehulga krĂŒptograafiliseks esitamiseks. Sellesse saab tĂ”husalt salvestada tohutul hulgal teavet ja selle krĂŒptograafiline olemus muudab selle terviklikkuse hĂ”lpsasti kontrollitavaks.

RĂ€sifunktsioonid

Sisendi lĂŒhidalt kodeerimiseks sĂ”ltub Merkle'i puu rĂ€sifunktsioonide kasutamisest. LĂŒhidalt viitab rĂ€simine protsessile, kus muutuva suurusega sisendist genereeritakse fikseeritud suurusega vĂ€ljund. TeisisĂ”nu, kui mis tahes pikkusega sisend rĂ€sitakse lĂ€bi algoritmi, annab see krĂŒptitud fikseeritud pikkusega vĂ€ljundi.

Kuni sisend jÀÀb samaks, jÀÀb ka vÀljund samaks. See tÀhendab, et saame vÔtta tohutul hulgal tehinguandmeid ja rÀsida need hallatavaks vÀljundiks. Kui sisendis mingit teavet muudetakse, on vÀljund on kardinaalselt erinev.

NÀiteks vÔiksime vÔtta 100 raamatu sisu ja sisestada need SHA-256 rÀsifunktsiooni. SeejÀrel annaks see vÀljundina midagi sellist:

801a9be154c78caa032a37b4a4f0747f1e1addb397b64fa8581d749d704c12ea

Kui me seejĂ€rel muudaksime sisendis ĂŒhte mĂ€rki (need 100 raamatut), oleks rĂ€si tĂ€iesti erinev, nĂ€iteks:

abc5d230121d93a93a25bf7cf54ab71e8617114ccb57385a87ff12872bfda410

See on rÀsifunktsioonide oluline omadus, kuna see vÔimaldab andmete tÀpsust hÔlpsalt kontrollida. Kui keegi kordab nende samade 100 raamatu rÀsimise protsessi kasutades SHA-256 algoritmi, saab ta vÀljundina tÀpselt sama rÀsi. Kui vÀljund on erinev, vÔime kindel olla, et sisendit muudeti. See tÀhendab, et pole vaja eraldi vÔi kÀsitsi kontrollida sisendite erinevusi, mis vÔib olla töömahukas.

Merkle'i puud krĂŒptoraha maailmas

Plokiahelasse tehinguandmete salvestamisel esitatakse iga uus tehing lÀbi rÀsifunktsiooni, mis genereerib kordumatud rÀsivÀÀrtused. Kujuta ette, et meil on kaheksa tehingut (A kuni H), mida me nende rÀsivÀljundi saamiseks eraldi rÀsime. Neid me nimetame Merkle'i puulehe sÔlmedeks. Alloleval pildil on vÔimalik nÀha iga tÀhe ainulaadset rÀsivÀÀrtust: hA tÀhistab A, hB on B, hC tÀhistab C jne.

SeejÀrel saame vÔtta rÀsivÀljundite paarid, need kombineerida ja saada uue rÀsivÀljundi. NÀiteks hA ja hB koos rÀsituna annaksid meile uue hAB rÀsivÀljundi, mida tuntakse Merkle'i puu haruna. Pea meeles, et iga kord, kui uus vÀljund genereeritakse, on sellel vastavalt kasutatud rÀsifunktsioonile fikseeritud pikkus ja suurus.

NĂŒĂŒd on meil kahe tehingu (nt A ja B) andmed kombineeritud ĂŒhte rĂ€sisse (hAB). Pane tĂ€hele, et kui muudame A vĂ”i B teavet ja kordame protsessi, oleks meie rĂ€sivĂ€ljund hAB tĂ€iesti erinev.

Protsess jĂ€tkub, kui ĂŒhendame uued rĂ€sipaarid, et neid uuesti rĂ€sida (vt allolevat pilti). RĂ€sime hAB-i hCD-ga, et saada unikaalne rĂ€si hABCD, ja teeme sama hEF-i ja hGH-ga, et saada hEFGH. LĂ”puks saame ĂŒhe rĂ€si, mis esindab kĂ”igi eelmiste tehingute rĂ€sivĂ€ljundeid. TeisisĂ”nu, rĂ€sivĂ€ljund hABCDEFGH esindab kogu teavet, mis oli enne seda.

Ülaltoodud graafikut nimetatakse rĂ€sipuuks ja rĂ€sivĂ€ljund hABCDEFGH on Merkle'i juur. Kasutame plokkide pĂ€istes Merkle'i juuri, kuna need vĂ”tavad plokis krĂŒptograafiliselt kokku kĂ”ik tehinguandmed. Samuti saame kiiresti kontrollida, kas andmeid on blokis rikutud vĂ”i muudetud.

Merkle'i puude puudused

Tuleme tagasi meie CEX-reservide nĂ€ite juurde. CEX soovib tĂ”estada kĂ”igi oma klientide varade ĂŒks ĂŒhele tagamist ja loob Merkle'i puu, mis rĂ€sib tokeni tasemel kokku oma klientide UID-d nende netovarade osalusega (tasaarvestab varad ja kohustused). PĂ€rast vabastamist (ja allkirjastatud Merkle'i juure omandiĂ”iguse tĂ”endamist) ei saa ĂŒksikkasutaja enam kontrollida, kas Merkle'i puu on kehtiv, ilma juurdepÀÀsuta kĂ”igile selle sisenditele.

Börs vÔis mÔned sisendid vahele jÀtta. Samuti vÔib see kogukohustuse muutmiseks luua negatiivse saldoga vÔltskontosid. NÀiteks kuigi klientide varade kogusumma vÔib olla 1 000 000 dollarit, vÔidakse lisada vÔltskonto, mille saldo on -500 000 dollarit. Selle tulemusena peab reserve olema vaid 500 000 dollarit.

Reservide olemasolu tÔendamise juhtum erineb ploki Merkle'i juurtest, kuna kasutajad nÀevad plokiahela uurijas kÔiki tehinguid, mida plokk sisaldab. Kuid CEX ei soovi turvalisuse ja andmete privaatsuse huvides iga konto saldot avaldada. Ka kliendid ei oleks oma kontojÀÀkide avalikustamisega rahul. Sel juhul ei saa CEX tÔestada, kas kasutajate saldod annavad kokku Ôige summa, ilma et muude kasutajate saldod nÀhtavad oleks.

Üks lahendus, mille kasutamist börsid vĂ”iksid kaaluda, on usaldusvÀÀrse kolmanda osapoole audiitori kasutamine. Audiitor saab kontrollida individuaalseid kontosid ja reserve, enne kui saab lĂ”plikult kinnitada esitatud Merkle'i juure kehtivust. Selle meetodi puhul peavad kasutajad aga usaldama audiitorit ja auditis kasutatavaid andmeid. Kui saad andmeid usaldada, ei pea sa lootma kolmandale osapoolele.

Zk-SNAR-ide kombineerimine Merkle'i puudega

Ülaltoodud probleem sobib suurepĂ€raselt zk-SNARK-ide kasutamiseks. Tahame tĂ”estada, et reservid katavad tĂ€ielikult kasutaja kohustused ega ole vĂ”ltsitud. Me ei taha aga privaatsuse ja turvalisuse huvides tĂ”endajale nĂ€idata kasutajate saldode ja reservide tĂ€pset koostist. 

Kasutades zk-SNARK-i, saab krĂŒptobörs tĂ”estada, et kĂ”ik Merkle'i puulehtede sĂ”lmede saldokomplektid (st kasutajakontode saldod) aitavad kaasa börsi vĂ€idetavale kogukasutaja varade saldole. Iga kasutaja pÀÀseb hĂ”lpsalt juurde oma lehe sĂ”lmele, kuna see on protsessi kaasatud. Zk-SNARK tagab ka, et mis tahes loodud Merkle'i puu ei sisalda kasutajaid, kelle netovara kogusaldo on negatiivne (mis tĂ€hendaks andmete vĂ”ltsimist, kuna kĂ”ik laenud on ĂŒletagatisega). Kasutatakse ka Binance'i globaalse oleku arvutust, st iga Binance'i kliendi iga vara kogu netosaldo loendit.

Vaatame, kuidas Binance olukorraga tegeleb. Alustuseks mÀÀratleb Binance arvutamise piirangud, mida ta soovib tÔestada, ja mÀÀratleb need programmeeritava ahelana. Allpool on toodud kolm piirangut, mida Binance oma mudelis kasutab. 

Iga kasutaja saldokomplekti (Merkle'i puulehtede sĂ”lm) puhul tagab meie sĂŒsteem, et:

  1. Kasutaja varade saldod kaasatakse Binance'i kasutaja netosaldode summa arvutamisse.

  2. Kasutaja kogu netojÀÀk on nullist suurem vÔi sellega vÔrdne.

  3. Merkle'i puu juure muutus kehtib (st ei kasuta vÔltsitud teavet) pÀrast kasutaja teabe vÀrskendamist lehesÔlme rÀsisse.

Binance saab seejĂ€rel genereerida vastavalt sĂŒsteemile zk-SNARK-i tĂ”endi Merkle'i puu konstruktsioonile. See tĂ€hendab, et börs teostab kasutajate ID-de ja saldode rĂ€simise suure arvutustehte, tagades samal ajal, et tĂ”estus ĂŒletab piirangud.

TĂ”endaja uurib tĂ”endit (ja selle avalikult avaldatud avatud lĂ€htekoodiga koodi), et olla veendunud, et arvutus viiakse lĂ€bi samal ajal, kui kĂ”ik piirangud on tĂ€idetud. TĂ”endamise arvutamine vĂ”tab tĂ”estamisajaga vĂ”rreldes vĂ€ga lĂŒhikest aega.

Börs avaldab kÔik reservide tÔendid nende vÀljalaskmisel:

1. Merkle'i tÔend igale kasutajale.

2. SĂŒsteemi kĂ”ikide kasutajate zk-SNARK-i tĂ”end ja avalik sisend (iga vara kogu netojÀÀgi loendi rĂ€si ja Merkle'i juur).

Huvitatud osapooled saavad Merkle'i tĂ”estust kontrollida, tagades, et nende individuaalsed saldod sisalduvad Merkle'i puu juures. Samuti saavad nad kontrollida zk-SNARK-i tĂ”endit, et Merkle'i puu konstruktsioon vastaks sĂŒsteemis mÀÀratletud piirangutele. Teavet zk-SNARK-i lahenduse kohta ja selle toimivuse ĂŒksikasjalikumat selgitust on vĂ”imalik leida meie blogi artiklist Kuidas zk-SNARK-id tĂ€iustavad Binance'i reservide tĂ”endamise sĂŒsteemi .

LÔppmÀrkused

zk-SNARK-id pakuvad tehnoloogiat, mis on vajalik, et tagada samaaegselt nii andmete terviklikkus kui ka privaatsus. Plokiahelatööstuse vastu peaks aitama luua usaldust selle kasutamine reservide tÔendamiseks ja CEX-i lÀbipaistvuse suurendamiseks. Paljud on sellist arengut kaua oodatud ja see saabub CEX-ide jaoks pöördelisel ajal.

See on meie zk-SNARK-i esimene versioon ja ootame kogukonna tagasisidet, et saaksime sĂŒsteemi tĂ€iustada.

Lisalugemist