EDIT: Vreau să specific ce știu despre securitatea schemelor:
- Scheme de autentificare: P poate dovedi lui V că este P și nimeni altcineva nu poate demonstra lui V că sunt P.
- Scheme de identificare: P poate dovedi lui V că este P, iar V nu poate dovedi nimănui că este P.
- Scheme de semnătură: P poate dovedi lui V că este P, iar V nu poate să-și demonstreze nici măcar singur că este P.
https://link.springer.com/content/pdf/10.1007%2F3-540-47721-7_12.pdf
Nu știu care este cea mai puternică schemă între Autentificare și Identificare.
Știu că o schemă de semnătură este cel mai puternic nivel de securitate și corectează-mă dacă greșesc, dar asta ar trebui să fie, practic, doar o schemă de identificare în care poți semna și un mesaj datorită funcțiilor unidirecționale din NIZK (spus foarte prost și scurt).
Acum, ceea ce nu știu este dacă în vreo schemă ZK doriți întotdeauna ca proprietatea „Dovada cunoștințelor” să fie verificată. Presupun că răspunsul este da, deoarece (cred) în toate trebuie să vă asigurați că un utilizator este cine spune că este... dar dacă este într-adevăr așa, atunci nu înțeleg diferența dintre o schemă de autentificare și o schemă de identificare în dovezile ZK.
Poate mă înșel și într-o schemă de autentificare (care ar trebui să fie cea mai „slabă” dintre ele?) nu aveți nevoie de proprietatea Proof of Knowledge, ci trebuie doar ca schema să fie zero-cunoștințe?
Sau poate e mai mult? Asta e îndoiala mea, mulțumesc!\