Home
Glossario
Dimostrazioni a conoscenza zero (Zero-knowledge proof)

Dimostrazioni a conoscenza zero (Zero-knowledge proof)

Avanzato

Una dimostrazione a conoscenza zero, talvolta indicata anche come protocollo zk, è un metodo di verifica che avviene tra un dimostratore e un verificatore. In un sistema di dimostrazioni a conoscenza zero, il dimostratore è in grado di dimostrare al verificatore di essere a conoscenza di una particolare informazione (come la soluzione di un'equazione matematica) senza rivelare l'informazione stessa. Questi sistemi di prova possono essere utilizzati dai moderni crittografi per fornire maggiori livelli di privacy e sicurezza.

Il concetto di dimostrazioni a conoscenza zero è stato descritto per la prima volta in un documento del MIT del 1985, pubblicato da Shafi Goldwasser e Silvio Micali. Questi dimostrarono che era possibile verificare alcune proprietà di un numero senza rivelare il numero o altre informazioni aggiuntive su di esso. Questo articolo portò anche alla scoperta matematicamente significativa che le interazioni tra un dimostratore e un verificatore potevano ridurre la quantità di informazioni necessarie per dimostrare un dato teorema. 

Una prova zk deve soddisfare due requisiti fondamentali, noti come completezza e solidità. La completezza si riferisce alla capacità del dimostratore di dimostrare la conoscenza delle informazioni rilevanti con un alto grado di probabile accuratezza. Affinché la prova sia solida, il verificatore deve essere in grado di determinare in modo affidabile se il dimostratore è effettivamente in possesso delle informazioni. Infine, per essere veramente a conoscenza zero, la prova deve raggiungere sia la completezza che la solidità senza che le informazioni in questione vengano mai comunicate tra il dimostratore e il verificatore.

Le dimostrazioni a conoscenza zero sono utilizzate soprattutto per applicazioni in cui la privacy e la sicurezza sono essenziali. I sistemi di autenticazione, ad esempio, possono utilizzare le prove zk per verificare credenziali o identità senza divulgarle direttamente. Per fare un semplice esempio, possono essere utilizzate per verificare che una persona sia in possesso di una password per un sistema informatico senza la necessità di rivelare quale sia la password. 

Una delle principali applicazioni nel mondo reale delle dimostrazioni a conoscenza zero si trova nel mondo delle criptovalute e della tecnologia blockchain. Utilizzando un tipo di prova nota come zero-knowledge Succinct Non-interactive Argument of Knowledge (zk-SNARK), le criptovalute incentrate sulla privacy come Zcash sono in grado di offrire ai loro utenti transazioni su blockchain con maggiori livelli di privacy. Ethereum lavora anche con le prove zk-SNARK dal suo aggiornamento a Byzantium nel 2017.