Puncte:0

Un circuit dintr-un zk-SNARK poate fi proiectat invers?

drapel br

Definiția zk-SNARK implică să nu se scurgă nicio informație din interacțiunea probator-verificator, dar cum rămâne cu scurgerea de informații din circuitul însuși? de exemplu, ar putea exista un circuit care să demonstreze că cunosc preimaginea s, Unde s este o semnătură generată prin secret X și algoritm de semnare HMAC(x, text simplu)? Acest circuit nu ar trebui să ofere informații despre ce X este.

Edit: pentru a-mi clarifica întrebarea, nici probatorul, nici verificatorul nu ar trebui să știe X; X ar trebui să fie doar în circuitul care, în mod ideal, nu poate fi descoperit prin inginerie inversă X.

drapel cn
Am înțeles greșit întrebarea ta, dar circuitul nu a *trebuie* să fie proiectat invers. Este cunoscut public și dat verificatorului în mod simplu. Cu toate acestea, în exemplul dvs., x nu ar face parte din descrierea circuitului, este martorul, adică *intrarea* în circuit.
nnsk avatar
drapel br
Mulțumesc, @Maeher. Am vrut să spun că x nu ar trebui să fie martor, pentru că nici nu vrem ca dovatorul să știe x. Este posibil să existe o dovadă în care nimeni nu știe x, dar poate verifica dacă HMAC(x, martor) = s?
drapel cn
Puteți demonstra că pentru un circuit cunoașteți o intrare astfel încât ieșirea să fie $s$. Pentru a ascunde $x$, circuitul ar trebui să fie cumva ofuscat, dar atunci întrebarea este cum verificați dacă circuitul obfuscat calculează cu adevărat HMAC.
ming alex avatar
drapel in
Nu, zk-SNARK este un fel de NIZK, care poate asigura că martorul, de exemplu, secretul x, nu este dezvăluit cu excepția dovezii $\pi$ și a afirmației s. Deci, pentru HMAC, complierul îl convertește într-un circuit aritmetic și în cele din urmă generează o instanță QAP/QSP. Duo la QAP este greu, apoi este dificil să invers pentru a obține informațiile martorilor.
nnsk avatar
drapel br
Am editat puțin problema pentru a clarifica: ideal, nici probatorul, nici verificatorul nu știe x. Dovatorul trebuie doar să arate că cunoaște o pereche validă (semnătură, text simplu). Dacă am înțeles bine, x nu este un martor în acest caz, ci mai degrabă o parte a circuitului
ming alex avatar
drapel in
Vrei să spui că probatorul, care are doar o pereche de semnături $(s, msg)$, dar cheia de semnătură secretă $x$, este doar pentru a dovedi că deține o semnătură validă generată dintr-un circuit public? Dacă da, este doar o problemă de calcul verificabilă, mai degrabă una cu zero cunoștințe. În plus, întrebarea dvs. ar trebui să fie abstractă, cum să demonstrați că un rezultat a fost generat corect de la o funcție publică? Funcția publică poate fi văzută ca HMAC($x, \cdot$), care cu siguranță poate fi convertită într-un circuit aritmetic. În acest caz, un adversar care obține circuitul poate inversa cu ușurință valoarea secretă $x$.
nnsk avatar
drapel br
Este corect; `x` este doar pentru a dovedi deținerea unei semnături valide și nu ar trebui să fie cunoscut de nimeni, cu excepția celui care emite semnătura. Procesul de semnare nu este public, dar verificarea este. Deci întrebarea este cum să aveți verificarea publică a unei semnături HMAC fără a anunța publicul `x`.
ming alex avatar
drapel in
Dacă funcția publică este $HMAC(k, x)$, unde $k$ este o cheie fixă ​​și $x$ ca intrare, atunci prin tehnologia zkSNARKs, $HMAC(k, x)$ poate fi convertit într-un exemplu de QAP în primul rând, Cu toate acestea, în acest pas, adversarul poate recupera și valoarea secretă $k$ dacă gradul polinoamelor este $poly(\cdot)$ size. Apoi, punând polinoame pe baza exponenților $g$, de exemplu, $g^{l_i(y)}$ unde $y$ este o valoare aleatorie, acest lucru ar putea păstra secretul $k$ din cauza durității problemei DL. În cele din urmă, publică $vk$ și $ek$ atât pentru demonstrator, cât și pentru verificator.
ming alex avatar
drapel in
Pentru demonstrator, poate calcula $s=HMAC(k,msg)$ și, prin urmare, valorile variabilelor corespunzătoare ${w_i}, i \in [n]$. Aceste valori {$w_i$} pot fi văzute ca martori. Prin urmare, demonstratorul realizează algoritmul de demonstrare și scoate o demonstrație $\pi$ și ${s,msg}$ verificatorului. Procesul pe care l-am descris mai sus este nedovedit, mai ales, metoda de a păstra secretul $k$.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.