Cos’è una dimostrazione a conoscenza zero?

Una dimostrazione a conoscenza zero è un protocollo digitale che consente la condivisione di dati tra due parti senza l’uso di una password o altre informazioni associate con la transazione

Nel suo senso più elementare, una dimostrazione a conoscenza zero, dall’inglese Zero-Knowledge Proof (comunemente chiamata anche ZKP) può essere vista come un protocollo attraverso cui è possibile facilitare un processo di autenticazione digitale senza l’uso di password o altri dati sensibili. Di conseguenza, nessuna informazione, né dalla parte del mittente né da quella del destinatario, può essere compromessa in alcun modo.

Si tratta di una proprietà piuttosto utile, dato che un tale livello di sicurezza fornisce agli appassionati di tecnologia un modo per comunicare tra loro senza dover rivelare i contenuti delle interazioni con una terza parte.

L’idea alla base delle dimostrazioni a conoscenza zero risale al 1985, quando gli sviluppatori Shafi Goldwasser, Charles Rackoff e Silvio Micali hanno presentato al mondo la nozione di “complessità conoscitiva” - un concetto che ha fatto da precursore alle ZKP.

Come suggerisce il nome, la complessità conoscitiva agisce come una misurazione standardizzata per determinare la quantità di conoscenza richiesta per fare in modo che qualsiasi transazione (tra un dimostratore e un verificatore) possa essere considerata valida.

Dove si utilizzano le ZKP?

Le dimostrazioni a conoscenza zero vengono utilizzate dalle agenzie governative per determinare l’origine di certi dati senza dover dimostrare come o dove hanno ottenuto tali informazioni.

Fin dalla loro creazione, le dimostrazioni a conoscenza zero sono state impiegate attraverso una vasta gamma di domini digitali. Per esempio, i ricercatori hanno usato questa tecnologia per creare nuovi meccanismi di identificazione digitale che non richiedono agli utenti di rivelare informazioni sensibili ad essi collegate.

A tale proposito, esistono diversi esempi di piattaforme di identità autonome che permettono a personale di terze parti, come le forze dell’ordine, di determinare se un individuo possiede una patente valida senza che la persona debba consegnare nulla oltre al proprio numero ID.

Analogamente, anche i governi possono usare le ZKP per determinare le capacità nucleari di varie forze armate senza dover spiare o ispezionare i loro inventari. A questo proposito, a luglio di quest’anno, la Defense Advanced Research Projects Agency, o DARPA, ha rilasciato un comunicato in cui ha affermato di essere a lavoro su un nuovo progetto chiamato SIEVE (Securing Information for Encrypted Verification and Evaluation) che utilizza le ZKP per determinare l’origine di dati ad alta sicurezza senza che il governo statunitense debba rivelare il modo in cui sono stati acquisiti.

Le ZKP possono essere integrate nelle piattaforme blockchain?

Le dimostrazioni a conoscenza zero offrono diversi benefici ai sistemi blockchain che utilizzano la tecnologia. Ad esempio, aiutano a rendere le transazioni crypto estremamente sicure grazie al loro elevato livello di cifratura.

Sì, una dimostrazione a conoscenza zero può essere usata molto facilmente nel contesto di un ecosistema blockchain, soprattutto per quanto riguarda la convalida delle transazioni di criptovaluta senza rivelare alcun dato ad esse correlato - come l’origine delle transazioni, dove sono andate o quanto valore è stato trasferito.

Un caso d’uso nel mondo reale di questa tecnologia è Zcash, una piattaforma crypto che utilizza un'interazione speciale delle dimostrazioni a conoscenza zero (chiamata zk-SNARK) che consente alle transazioni native di rimanere totalmente criptate e allo stesso tempo verificabili secondo le regole di consenso del network.

Detto questo, anche se le dimostrazioni a conoscenza zero possiedono molto potenziale per cambiare il modo in cui i sistemi di dati odierni verificano le informazioni, questa tecnologia è considerata ancora nelle sue fasi iniziali - principalmente perché i ricercatori stanno cercando di capire come usare al meglio questo concetto, oltre a individuare qualsiasi potenziale difetto.

Quali sono i vantaggi offerti dalle dimostrazioni a conoscenza zero?

Le ZKP eliminano completamente la necessità di password, così come l’uso di qualsiasi altra informazione sensibile per facilitare una transazione.

Le dimostrazioni a conoscenza zero permettono di effettuare un trasferimento di informazioni tra due parti senza che il mittente debba usare una password o rivelare dati legati a lui/lei. Questo aiuta a eliminare molti dei potenziali rischi che hanno a che fare con l’uso di protocolli di autenticazione password-only. Inoltre, le ZKP aiutano anche a potenziare la sicurezza dei pagamenti/transazioni online e degli account sul cloud pubblici di una persona.

L’unico aspetto potenzialmente negativo legato all’uso delle dimostrazioni a conoscenza zero è che, nel caso in cui il creatore di una transazione dimentica il suo codice sorgente, tutti i dati associati al trasferimento andranno persi per sempre.

Casi d’uso importanti

Negli ultimi due o tre anni, diverse piattaforme hanno adottato le dimostrazioni a conoscenza zero per rafforzare le proprie capacità native di sicurezza/privacy.

ZoKrates è una toolbox digitale che può essere utilizzata da sviluppatori esperti per elaborare e verificare dimostrazioni a conoscenza zero utilizzando Solidity - un linguaggio di programmazione orientato agli oggetti usato nella creazione di smart contract basati su Ethereum.

Inoltre, un paio di anni fa JP Morgan Chase ha adottato la proof of concept basata su zk-SNARK di Zcash per potenziare la privacy del suo ecosistema blockchain nativo chiamato Quorum. In poche parole, Quorum è un fork della blockchain di Ethereum che utilizza un linguaggio smart contract proprio denominato Constellation.