Citind De ce Zk-SNARK-urile sunt Argument of Knowledge dacă există un Knowledge Extractor? Mă simt confuz de prima declarație a OP:
Din câte știu, demonstrarea existenței unui Knowledge Extractor implică o soliditate perfectă.
Răspunsul se concentrează pe faptul că soliditatea nu este neapărat perfectă, dar pare să confirme implicit implicația de soliditate de către extractor.
În primul rând, permiteți-mi să afirm că atunci când citesc „soliditatea” mă gândesc la proprietatea IP-urilor care afirmă că nicio strategie Prover nu poate convinge Verificatorul de un simbol care nu aparține Limbului cu o probabilitate mai mult decât neglijabilă... ceea ce pare cu totul diferit. „obiect” decât un extractor „vărsând” martorul, așa că îmi este greu să-mi fac o idee cel puțin naivă a acestei presupuse implicații.
Totuși am început să cred, din cauza surselor pe care le-am găsit, de exemplu:
[...] proprietatea de soliditate este înlocuită cu o proprietate de extragere a cunoștințelor [...]
Când vine vorba de demonstrarea temeiniciei unei dovezi de cunoștințe, avem o abordare formală foarte frumoasă. La fel ca și în cazul Simulatorului despre care am discutat mai sus, trebuie să demonstrăm existența unui algoritm special. Acest algoritm se numește extractor de cunoștințe și face exact ceea ce pretinde. Un extractor de cunoștințe (sau doar âExtractorâ pe scurt) este un tip special de Verificator care interacționează cu un Prover și â dacă Proverul reușește să completeze dovada â Extractorul ar trebui să poată extrage Secretul original al Proverului.
Și asta răspunde la întrebarea noastră de mai sus. Pentru a dovedi temeinicia unei dovezi de cunoștințe, trebuie să arătăm că există un Extractor pentru fiecare Prover posibil.
CU toate acestea, în paragraful 4.5 „Ce zici de soliditate?” de Despre definirea dovezilor de cunoaștere unde Bellare și Goldreich se ocupă de formularea lor de PoK față de cele anterioare (https://www.wisdom.weizmann.ac.il/~oded/PS/pok.ps) Am găsit aceste cuvinte:
Menționăm că definiția noastră nu impune nicio cerință pentru caz $x$ nu în $L_R$. În special, soliditatea (adică o limitare a capacității doveditorului de a-l determina pe verificator să accepte $x$ nu în $L_R$) Nu este necesar. În consecință, un verificator de cunoștințe pentru $R$ nu definește neapărat o dovadă interactivă de apartenență la $L_R$. Acest lucru este în contrast cu definițiile anterioare; aveau condiția de „validitate” implică condiția de soliditate, astfel încât aceasta din urmă a avut mereu loc. Considerăm că „decuplarea” noastră a temeiniciei de valabilitate este justificată atât conceptual, cât și în lumina anumitor aplicații.
Apropo, este același punct de vedere al celebrului Golderich „Fundarea criptografiei”, secțiunea 4.7.
Deci, din nou, sunt îndoielnic despre: Knowledge Extractor $=>$ Soliditatea
Ar putea cineva să declare explicit dovada implicației sau cel puțin să-mi dea indicii despre asta?
Sau poate că existența Knowledge Extractor evită într-un fel de la sine ca Verificatorul să fie convins de un „martor” necunoscut cu adevărat de către Prover, așa că ar putea fi considerat un fel de „proprietate sănătoasă”, chiar dacă de natură diferită față de obișnuit. cele? (acest punct de vedere pare confirmat de Geoffroy Couteau în schimbul de întrebări/răspuns citat inițial când scrie:
Da, există mai multe dimensiuni în aroma solidității: dacă aveți „soliditatea de membru” sau „soliditatea cunoștințelor” este una (de obicei spun „extractabilitatea cunoștințelor” în lucrarea mea pentru a distinge de soliditatea obișnuită)
totuși, dacă acesta este cazul, m-aș fi așteptat ca el să corecteze acest „implica” prin OP)
Scuze că am fost pronunțat, sper să fi descris îndoielile mele într-un mod de înțeles.