Prova a conoscenza zero
(Zero-Knowledge Proof)
Una prova a conoscenza zero è un metodo crittografico per dimostrare che un'affermazione è vera, ad esempio "il detentore ha più di 18 anni", senza rivelare nessuno dei dati sottostanti su cui si basa l'affermazione, come la data di nascita effettiva.
Mentre la divulgazione selettiva permette a un titolare di rivelare i dati scelti così come sono, una zero-knowledge proof non rivela nulla: il verificatore apprende soltanto che l'affermazione è vera, garantita da una prova che può controllare rispetto alla firma dell'emittente. Si tratta di una garanzia di privacy più forte della divulgazione selettiva, e di un'area attiva di standardizzazione per i futuri formati di credenziale usati nell'ecosistema dell'EUDI Wallet. La prova è costruita in modo che chiunque possa verificarla rispetto a parametri pubblici e alla firma dell'emittente, ma nessuna combinazione di prove consegnate a verificatori diversi può essere ricollegata alla stessa credenziale o tra loro, il che elimina il rischio di correlazione derivante dal mostrare ripetutamente lo stesso valore firmato. Una semplice credenziale a divulgazione selettiva permette ancora a due verificatori in collusione di confrontare un dato hashato e concludere che lo stesso titolare ha visitato entrambi, mentre una zero-knowledge proof della stessa identica affermazione appare diversa ogni volta che viene generata. Il compromesso è il costo computazionale e la complessità: generare e verificare una zero-knowledge proof richiede più potenza di elaborazione rispetto al controllo di una semplice firma, e gli schemi crittografici coinvolti, come le firme BBS+ o gli zk-SNARK, sono più recenti e meno standardizzati rispetto alla divulgazione selettiva basata su hash già impiegata in SD-JWT. Diverse implementazioni di riferimento e progetti pilota dell'EUDI Wallet stanno valutando le tecniche a conoscenza zero come futuro percorso di aggiornamento per gli attributi in cui la non collegabilità conta di più, come i controlli di età o nazionalità ripetuti su molti servizi non correlati.
Termini correlati
Usare una zero-knowledge proof significa che il verificatore deve fidarsi ciecamente del titolare?
No. Il verificatore continua a basarsi sulla crittografia piuttosto che sulla fiducia nel titolare. La prova lega matematicamente l'affermazione alla firma originale dell'emittente, cosicché un verificatore possa essere certo che un dato sia genuino e non alterato pur senza mai vedere i dati sottostanti, la stessa garanzia offerta da un normale controllo della firma, solo senza esporre il valore che vi sta dietro.