Nulinių žinių įrodymai ir „zkSNARKs“: vadovas pradedantiesiems

Nulinių žinių įrodymai yra kriptografinė alchemija, kurios vertė slypi iš pažiūros paradoksalios savybės įrodyti teiginį nieko apie tai neatskleidžiant. Kalbant tam tikru būdu, tikrintojui, kuriam duotas nulinių žinių įrodymas, Dievas turėtų pasakyti, kad taip yra.

Tačiau Dievo funkcija nagrinėjamame kontekste yra vienas iš pagrindinių protokolo arba nustatymo, kuriame vyksta scenarijus. Ir svarbu, kad „blockchain“ agentūros, kaip institucinės įstaigos, galėtų priversti kenkėjiškus dalyvius į protokolą, pagal kurį jie vykdo pagal iš anksto nustatytus veiksmus, kad užtikrintų visuotinį saugumą kitaip apgaubtame privatume..

Jei turėčiau ne tą laiką, o jūs, bet smegenis.

– Lewisas Carrollas, „Snarko medžioklė“

P ir NP sudėtingumo zoologijos sodas

Norint įgyti gerą intuiciją apie „nulinių žinių“ įrodymus, svarbu suprasti kelias pagrindines sąvokas, nes jos susijusios su „blockchain“ technologija. Informatikos srityje P klasės problemos yra susijusios su problemomis, kurias galima išspręsti pakankamai greita programa tam tikro tipo kompiuteryje (Tiuringo mašina ar kitas modelis), arba, kitaip tariant, yra įgyvendinamas sprendimas, kurį galima patobulinti vadinamasis polinomas laikas (iš tikrųjų sinonimas greitam laikui).

Svarbiausia, kad daugianarės išraiškos (nuo graikų kalbos – „daug pavadinimų“) nėra eksponentinės funkcijos (ty pagal jų galią), bet susiejamos su linijinių, kvadratinių, kubinių ir panašių tipų aritmetinės grandinės problemomis, kur reikalaujamas žingsnių skaičius. priimtina, palyginti su problemos dydžiu. Tai yra problemos, susijusios su labirintais, dauginimu ir pan., Arba kurias galima sumažinti iki tokių problemų.

Poligrafo mašina

Poligrafas, dvigubo įrašo mašina

„Blockchain“ struktūroje, kur sandorių vykdymas yra masiškai atkartojamas vienaskaitos knygoje tarp daugelio paskirstytų mazgų, atkuriančių tuos pačius išėjimus (panašus į poligrafinius melo detektorius, iš esmės), svarbu, kad skaičiavimo žingsnių skaičius rinkinyje nurodymų yra kuo mažiau.

Štai kodėl „nulinių žinių“ įrodymai tokioje aplinkoje turi būti „glausti“ ir nereikalauti pakartoti vykdymo, kad būtų galima įrodyti tos vykdymo pagrįstumą.

Kita vertus, NP (nedeterministinio polinomo laiko) sudėtingumo klasė apibūdina problemas, kai jų sprendimų pagrįstumas turi įrodymų, kuriuos galima efektyviai patikrinti atlikus deterministinius skaičiavimus minėtame polinome, arba, tarkime, tiesinės-nuoseklios blokinės grandinės laiką.

Tai yra, protinis darbas, reikalingas tam tikrai problemai išspręsti, gali būti sumažintas arba paverstas paprastesne problema, galinčia mechanizuoti mąstymo procesą, vykstantį tam tikram dvejetainiam sprendimų medžiui..

Kadangi „blockchains“ kaip tokios reikalauja griežto determinizmo, kad būtų išlaikytas visuotinio sutarimo vientisumas (ta pati įvestis visada turi gaminti tą patį išėjimą be mažo ir jokio nukrypimo), jie keičiasi daug geriau, jei užsiima tik patikrinimu / skaitymu, o ne vykdymu / rašymu.

„zk-SNARKs“ šiame scenarijuje optimizuoja blokų grandinės naudojimo būdą kaip bendrojo skaičiavimo vientisumo tikrintoją ne grandinėje, o patikrinimo laikas grandinėje yra didesnis nei vykdymo laikas logaritme (tai yra atvirkštinė eksponavimo dalis). susiję žingsniai ar ciklai (matuojant dujų sąnaudas Ethereum blokų grandinėje).

Tai turi daugybę galimų programų, pradedant „blockchain“ agentūros naudojimu kaip institucinių sandorių tarpininku, baigiant didelių sumų likučių ir sandorių užklijavimu nuo piktavališkai smalsių akių dėmesio, užkertant kelią „vagono“ ir „bot“ veikiantiems „banginiams“ iki papildomų mastelio sprendimų ir galbūt įtraukiant „blockchain“ kaip tam tikras kenkėjiškų programų detektorius.

Ir galbūt dar plačiau, kaip brangiausias visuomenės pasitikėjimo šaltinis kaip toks yra performuluojamas ir elgesio vertimas atgal palengvinant žmogaus bendradarbiavimą žaidimų teoriniuose scenarijuose, kurie anksčiau nebuvo pusiausvyros.

Nulinių žinių įrodymai

Nulinių žinių įrodymai iš esmės yra kriptografinės konstrukcijos, kurios tiria, kiek formalios logikos galima nuveikti sprendžiant sudėtingas problemas. ZKP patarlėje Peggy ir tikrintojas Viktoras (vietoj patarlės Alice ir Bobo) sąveikauja daugybe žingsnių taip, kad Peggy galėtų įrodyti Viktorui kai kurių teiginių pagrįstumą nieko neatskleisdamas apie tą teiginį. , atsižvelgiant į tai, kad abu laikosi to paties protokolo apribojimų.

Pagrindinė mintis iliustruojama įprastu kriptografijos folkloru su gerai žinomu Ali Baba urvo pavyzdžiu. Įsivaizduokite žiedo formos urvą su įėjimu ir stebuklingomis durimis kitame gale, blokuojančiu šonus.

Peggy nori įrodyti Viktorui savo žinias apie slaptą frazę, kuri atveria duris neatskleisdama šios frazės. Taigi, Viktoras šiek tiek laukia lauke, tada eina ir šaukia, iš kurios pusės nori, kad Peggy pasirodytų. Tai kartojama tol, kol tikimybė, kad Peggy paprasčiausiai pasirodys laiminga, artės prie nulio.

Nulinių žinių įrodymų pavyzdys

Ali Babos urvas. Mandagumo Scott Twombly

Interaktyvių žinių nepraleidžiančių sistemų samprata pirmą kartą buvo pristatytas parašė Shafi Goldwasser ir Silvio Micali devintojo dešimtmečio pabaigoje, ir bendra prielaida, kad tam tikro teiginio įrodymas turi daugiau žinių nei vienintelis teisingas / klaidingas to teiginio pagrįstumas (naudojant pagalbinius įvadus, „spąstus“ ir kt.) .) yra pagrindinė šiuolaikinės kriptografijos dalis.

Nulinių žinių įrodymas pagal apibrėžimą turi atitikti šias tris savybes:

  • Išsamumas: Jei teiginys yra teisingas ir abi šalys teisingai laikosi to paties protokolo, tikrintojas natūraliai įsitikina.
  • Tvirtumas: Jei teiginys yra melagingas, tikrintojas beveik neabejoja (tikriausiai patikrinamų įrodymų konstrukcijos remiasi kartojimu, kol melo ar paprastos monetos pasisekimo tikimybė priartės prie nulio).
  • Nulis žinių: Tikrintojas daugiau neišmoksta jokios informacijos.

Pasirinkę tai, Micali ir Manuelis Blumas netrukus pasekė toliau tiriant galimybės sutaupyti brangių išteklių, pašalinant sąveikos raundus (kurie paprastai yra brangiausi skaičiavimais) ir remdamiesi bendra nuoroda, gaunama iš bendro ar viešo atsitiktinio švyturio (pavyzdžiui, to paties Geigerio skaitiklio).

Per pastaruosius 20 metų mokslinių tyrimų, susijusių su žinių neturinčiomis sistemomis, palaipsniui gerėjo, daugiausia dėmesio skiriant jų efektyvumo optimizavimui konkrečioms programoms ir įvairių parametrų scenarijų patobulinimams, todėl dramatiškai sumažėjo tiek bendrosios etaloninės eilutės ilgis, tiek programos dydis. įrodymas.

zk-SNARKS: Nulinės žinios glaustas neinteraktyvus žinių instrumentas

„Zk-SNARK“ konstrukcijoje yra trys sąveikaujantys algoritmai:

  • Pagrindinis generatorius: Raktų poros generavimo parametrų nustatymas. Pvz., Patikimas žmonių rinkinys sukuria privačių / viešų raktų porą, sunaikina privačią dalį ir tada iš viešosios dalies sukuriama kita raktų pora, sukuriant įrodantį ir patvirtinantį raktą tam tikrai programai.
  • Patarėjas: Patarėjas paima pateiktą įrodymo raktą, viešą indėlį ir privatų liudytoją, kad jis atitiktų numatytą programos kontekstą, ir sukuria įrodymą.
  • Tikrintojas: Patvirtinimas apskaičiuojamas iš patikros rakto, viešojo indėlio ir pateikto įrodymo ir įvertinamas kaip teisingas ar neteisingas, atsižvelgiant į tai, ar įrodymas yra teisingas, ar ne (atsižvelgiant į tai, kas tikrinama, kad būtų galima patenkinti).

Norėdami tai vaizdingiau pavaizduoti, sukuriamos dvi daugianarės eilutės, kurios, tikimasi, daug nenukryps nuo susitarimo dėl suteikto teisėtumo laiko, ir tada savavališkose vietose atliekama keletas greitų atsitiktinių patikrinimų, siekiant užtikrinti, kad jie sutinka.

„ZCash“ įgyvendinimas

„Zcash“ moneta

Vaizdas per „Fotolia“

Kadangi bitkoino operacijas galima anonimizuoti sekdamas ir analizuodamas pinigų srautų modelius (net neatsižvelgiant į skalbinių maišytuvus), „ZCash“ sukuria decentralizuotą anoniminę mokėjimo schemą ant „Bitcoin“ kodo bazės, įgyvendindamas aukščiau nurodytus bendruosius mechanizmus (konkrečiuose diegimuose, pvz., Pinokio protokolas, iš pradžių sukurtas kaip praktinis metodas, leidžiantis patikrinti užsakomąsias skaičiavimus).

Jame pateikiami du „blockchain“ transliuojamų operacijų režimai: skaidrūs ir ekranuoti. Pirmieji yra panašūs į įprastas bitkoinų operacijas, tačiau vartotojams suteikiama neprivaloma privatumo funkcija – slėpti siuntėją, gavėją ir sandorio sumas, taigi jų operacijos vyksta paskutiniame, apsaugotame telkinyje. Diskretiškas „atrankinis atskleidimas“ leidžia įrodyti auditorių teisėtumą ir išvengti to, ką gali sukelti kiti radarai.

Patikimas „ZCash“ sąrankos etapas apima sudėtingą ceremoniją po a Daugelio šalių skaičiavimo protokolas dalyvių rinkinys, pasklidęs skirtingose ​​geolokacijose, bendradarbiaudami surenka viešąjį raktą ir sunaikina jų atitinkamas privačias šukes. Pateiktame protokole pakanka, kad tik vienas dalyvis sėkmingai ištrintų savo asmeninį raktą, kad būtų neįmanoma rekonstruoti viso privataus rakto, iš kurio vėliau gaunamas viešasis raktas.

Kvantams atspari alternatyva apeiti tokio tipo patikimą sąranką yra aktyvus „zk-STARK“ konstrukcijų („Scalable Transparent Argument for Knowledge“) tyrimas. Prof. Eli Benas Sassonas ir kiti – Technion, Izraelio technologijos institute.

„ZoKrates“: „Concept-of-Concept Toolbox“ diegimas „Ethereum“

ZoKrates yra prototipų rinkinys (dar ne per galingas), skirtas kurti ir patikrinti nulinių žinių įrodymus „Solidity Ethereum“ išmaniosiose sutartyse. Tai suteikia aukšto lygio kalbą (nors dar ankstyvoje eksperimento stadijoje) rašyti programas ir patikrinti jų vykdymą grandinėje palaikant sąrankos etapą, liudytojų skaičiavimą ir įrodymų generavimą..

Į pitoną panaši sintaksė susideda iš primityvių uint tipų (teigiamų skaičių), imperatyvių algebrinių sakinių, skirtų kilpoms, sąlyginių „if“ sakinių ir funkcijų apibrėžimų. Kompiliatorius paverčia sąlygas į aritmetinės grandinės (pagalvokite apie sudoku), iš kurios generuojamas zk-SNARK, apribojimų sistemą. Tada patvirtinimo raktą galima eksportuoti į išmaniąją sutartį, leidžiančią patikrinti „blockchain“ įrodymus.

Tikrinimo grandinėje algoritmo sudėtinės dalys yra blokų grandinėje kaip iš anksto įvykdytos sutartys, o patikrinimo algoritmo rezultatas pagal pateiktą įrodymą gali būti naudojamas kitai grandinės veiklai (t. Y. Jei tiesa, tada) sukelti..

Tai leidžia, pavyzdžiui, sudaryti žetonų sutartį su konfidencialiais likučiais, tuo pačiu leidžiant (per ERC-621 plėtinį) padidinti ir sumažinti meta valiutos ar žetono pasiūlą..

Tačiau vartotojai privalo sekti savo kliento pusiausvyrą (nes jie nerodomi „Etherscan“) ir, visų pirma, visada reikia atsiminti, kad „Ethereum“ platforma yra pagrindinė ekonominių teorijų ir idėjų išbandymo aikštelė, atsižvelgiant į išteklių apribojimus. realybė susiedama išlaidas dujoms, kurių sudedamoji dalis priverčia ekonominį mąstymą apie problemas.

Kvorumo blokų grandinės integracija

2017 m. Gegužės 22 d. „ZCash“ paskelbė apie savo privatumo sluoksnio technologijos įrodymą „JP Morgan“ įmonėje „Ethereum“ Kvorumas „blockchain“, po kurio kainų šuolis įvyko „ZCash“ (nes jie netrukus po to, kai prisijungė prie „Ethereum Enterprise Alliance“).

„Quorum“ yra minimali „Ethereum“ šakutė, turinti savo išmaniųjų sutarčių kalbą („Constellation“), sukurtą specialiai institucinėms finansų rinkoms, o kadangi „nulinių žinių“ įrodymai eina plona riba tarp asmens privatumo ir institucinio vientisumo, tai daro juos idealiais užtikrinant privačius atsiskaitymus už skaitmeninį turtą ant Kvorumo knygos.

Pažymėtina, kad kurdama savo įmonės „blockchain“ sistemą „JP Morgan“ praeityje iš esmės prisidėjo prie viešosios grandinės kūrimo ir sukietėjimo šiame procese..

Paveikslėlis per „Fotolia“

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me