Citesc această explicație despre zkSnark scrisă de Maksym Petkus - http://www.petkus.info/papers/WhyAndHowZkSnarkWorks.pdf
Aici el are un polinom
$p(x) = x^3 â 3x^2 + 2x$
iar criptarea homomorfă definită ca $E(c) = g^c \bmod 7$
Este puțin clar unde este definit polinomul $Z$ sau este definit peste $Z_7$ - a rămas puțin ambiguu în text.
Acest lucru contează în etapa în care verificatorul evaluează $E(h.t) = E(h)^t$. Îmi pot explica mai bine întrebarea cu $Z_{11}$ în loc de $Z_7$, deci folosesc $Z_{11}$ de mai jos.
Sa presupunem $E(c) = g^c \bmod 11$
Probe de verificare la s = 14
$E(s^0)= 5, E(s^1)= 9, E(s^2) = 5, E(s^3) = 9$
Prover calculează $E(p(s)) = (9 * 5^{-3} * 9^2) \bmod 11 = 9$
calculează $E(h(s)) = 5$. Trimite E(p)= 9 și E(h) = 9 la verificator
Verificatorul calculează t(s=14)
Luați în considerare două cazuri
Cazul 1: Polinomul s-a terminat $Z$
În acest caz, t(s=14) = (13*12) = 156
Asa de $E(h)^t$ = $9^156 \bmod 11 = 9$
Deci se verifică -> $E(p) = E(h)^t$
Cazul 2: Polinomul s-a terminat $Z_{11}$
În acest caz, t(s=14) = (13*12)%11 = 2
Asa de $E(h)^t$ = $9^2 \bmod 11 = 4$.
Aici nu se verifica.
Motivul pentru care nu se verifică este pentru că
$g^c \bmod m$ = $g^{c \bmod m-1} \bmod m$
adică t(s) trebuie redus cu 10 mai degrabă decât cu 11. Cu toate acestea, dacă polinomul este peste $Z_{11}$, apoi se reduce cu 11, nu cu 10.
Deci, pe baza acestui lucru, cred că polinomul este definit peste $Z$ mai degrabă decât peste $Z_7$.
Totuși, la pagina 7, scrie
în timp ce teoretic coeficienţi polinomi $c_i$ poate avea o gamă largă de valori, în realitate, ar putea fi destul de limitată (6 în exemplul anterior)
De unde au venit cei 6 de aici? Dacă s-a terminat $Z$, atunci coeficientul poate fi orice număr întreg. Dacă scrie e limitat la 6, atunci trebuie să fie peste ceva $Z_n$. Dacă s-a terminat $Z_7$, atunci ar fi limitat la 7 și nu la 6. Dacă s-ar fi terminat $Z_6$, atunci ar fi limitat la 6$.
La fel este definit polinomul sau $Z$ sau este definit peste $Z_7$ sau este definit peste $Z_6$?