Zero-Knowledge Proof (ZK) è un metodo di autenticazione che consente a un utente di dimostrare la veridicità di determinate informazioni senza trasmettere alcun dato aggiuntivo. In breve, una prova ZK consente di mantenere private le informazioni riservate durante uno scambio.
Per eseguire una prova ZK, devono essere soddisfatti tre requisiti fondamentali: completezza, solidità e conoscenza zero. Completezza si riferisce alla capacità del provatore di dimostrare la propria conoscenza delle informazioni. Solidità riguarda la capacità del verificatore di accertare se il provatore possiede effettivamente le informazioni. Infine, ciò che caratterizza una prova ZK è la capacità di garantire completezza e solidità senza rivelare ulteriori informazioni.
Il concetto di prova ZK è comunemente applicato quando la privacy e la sicurezza sono di massima importanza. Ad esempio, i sistemi di autenticazione possono utilizzare una prova ZK per verificare le credenziali e l’identità degli utenti senza rivelare le informazioni stesse. La prova ZK può essere utilizzata anche per criptovalute orientate alla privacy, come Zcash, che impiega una variante della prova ZK nota come Zero-Knowledge Succinct Non-Interactive Argument of Knowledge (ZK-SNARK).