Citesc această explicație despre zkSnark scrisă de Maksym Petkus - http://www.petkus.info/papers/WhyAndHowZkSnarkWorks.pdf
Am înțeles totul în primele 15 pagini.
În 3.4 Restricționarea unui polinom (Pagina 16)
Limităm deja un probator în selectarea puterilor criptate ale lui s, dar o astfel de restricție nu este aplicată, de exemplu, s-ar putea folosi
orice mijloc posibil de a găsi niște valori arbitrare $z_p$ și $z_h$ care satisface ecuația $z_p = (z_h)^{t(s)}$ și să le furnizeze verificatorului în loc de $g^p$ și $g^h$. De exemplu, pentru unele r aleatoare $z_h = g^r$ și $z_p = (g^{t(s)})^{r}$, Unde $g^{t(s)}$ pot fi calculate din puterile criptate furnizate ale $s$. De aceea, verificatorul are nevoie de dovada că a furnizat doar criptări ale puterilor $s$ au fost folosite pentru a calcula
$g^p$ și $g^h$ si nimic altceva.
Nu pot să înțeleg cum un probator poate găsi niște valori arbitrare ale $z_p$ și $z_h$ care satisfac $z_p = (z_h)^{t(s)}$? De exemplu, pentru unele r aleatoare $z_h = g^r$ și $z_p = (g^{t(s)})^{r}$
Dovatorul nu știe $s$ si nici nu stie $g$, deci cum va face asta?
Pe scurt, nu pot să-mi dau seama care este atacul (de care să mă protejez) pentru care este nevoie de „restrângerea unui polinom”.