Vai al contenuto

ZKP: Cosa Sono le Prove a Conoscenza Zero?

ZKP: sai solo che è vero.. ma non sai cos’è

Stiamo parlando della frontiera delle tecniche crittografiche, con utilizzi ancora di nicchia ma con prospettive interessanti, sia nel mondo delle cryptovalute che in molteplici altri ambiti.

Ma di cosa si tratta? In termini terra terra, sostanzialmente di quello che dice il titolo, nulla più che far sapere al proprio interlocutore il minimo indispensabile. Pensiamo a quante volte questo requisito non viene soddisfatto. Ad esempio, se un certo servizio è riservato ai maggiorenni, per accedere in genere si deve esibire un documento di identità, che oltre alla maggiore età rende noto, data di nascita, nome, cognome, sesso  etc.). Di fatto, molto di più di quello che serve.

ZKP

Vediamo un caso più semplice e relativa soluzione. Tizio ha in mano un mazzo di carte di 52 carte, ne estrae una e vuole convincere Caia che la carta che ha estratto  è rossa. La cosa più semplice sarebbe girarla e mostrarla, ma così facendo renderebbe noto a Caia anche seme e valore, molto di più di quello che era necessario. In questo caso, il modo per convincere Caia sulla veridicità della affermazione (statement) che la carta scelta è rossa è semplice. Basta che Tizio giri tutte le 26 carte nere del mazzo per cui quella estratta non può essere che rossa. Appunto l’info di cui voleva convincere Caia.  E qua già si intravvede un punto nodale della questione. Invece di girare una sola carta ne giro ben 26, 26 volte di più, 26 volte più energia. Cioè, in questo caso, mantenere la riservatezza mi costa 26 volte di più. Nulla su questo pianeta (e forse nemmeno sugli altri) viene gratis. In definitiva, ZKP è energivoro perché computazionalmente impegnativo. La riservatezza si paga.

In termini un pochino più rigorosi, Zero Knowledge Proof (ZKP – prova a conoscenza zero ) è un protocollo crittografico in cui una parte (il prover, “dimostratore”) può convincere un’altra parte (il verifier, “verificatore”) che un’affermazione è vera senza rivelare alcuna informazione oltre alla veridicità dell’affermazione stessa. In sostanza, consente al prover di dimostrare la conoscenza di un segreto senza rivelare il segreto stesso.

Più nel dettaglio:

  • Prover: La parte che vuole dimostrare che un’affermazione è vera.
  • Verifier: la parte che deve essere convinta della veridicità dell’affermazione.
  • Affermazione: L’affermazione che il prover vuole dimostrare.
  • Zero-Knowledge: il prover non rivela alcuna informazione sulla conoscenza segreta che supporta l’affermazione, a parte il fatto che l’affermazione è vera.

Ci sono  diversi modi per raggiungere questo risultato, tutti ovviamente piuttosto complessi che richiedono padronanza delle tecniche di crittografia più avanzate e che non rientra ovviamente negli scopi di questo blog. 

Più alla portata è, invece, vedere a cosa possono servire queste tecniche ZKP. Di seguito alcune casistiche

 

🔐 1. Verifica dell’identità che preserva la privacy

  1. Caso d’uso: dimostra la tua età, cittadinanza o appartenenza senza rivelare dettagli personali.
  2. Esempio: verifica di avere più di 18 anni senza rivelare la tua data di nascita.

📊 5. Sistemi di voto riservati

  • Caso d’uso: Abilita elezioni sicure e verificabili senza compromettere la privacy del voto.
  • Esempio: il voto elettronico a conoscenza zero consente agli elettori di dimostrare di aver votato correttamente senza rivelare il proprio voto.

🌐 3. Autenticazione Web sicura e privata

  1. Caso d’uso: accedere a un sito web senza inviare una password.
  2. Esempio: sostituire le password con l’autenticazione basata su ZKP per prevenire il phishing e la perdita di credenziali.

🔄 4. Scalabilità e privacy della blockchain

  1. Caso d’uso: compressione di prove di calcoli e transazioni di grandi dimensioni per ridurre il carico on-chain.
  2. Esempio: le soluzioni Layer-2 come zk-Rollups su Ethereum consentono di verificare migliaia di transazioni con un’unica prova.

📂 5. Condivisione sicura dei dati e controllo degli accessi

  1. Caso d’uso: dimostrare i diritti di accesso o il possesso di informazioni senza rivelare i dati stessi.
  2. Esempio: dimostrare di avere le credenziali mediche corrette per visualizzare i dati sensibili dei pazienti.

⚖️ 6. Conformità normativa (senza perdita di dati)

  1. Caso d’uso: dimostrare la conformità (ad es. AML/KYC) alle autorità di regolamentazione senza rivelare dati interni sensibili.
  2. Esempio: un istituto finanziario che dimostra di non avere utenti sanzionati senza esporre l’elenco completo degli utenti.

📦 7. Trasparenza della catena di approvvigionamento

  1. Caso d’uso: dimostrare che le merci sono passate attraverso determinati passaggi verificati o soddisfano gli standard, senza rivelare tutti i dettagli.
  2. Esempio: verifica dell’autenticità dell’origine di un prodotto senza rivelare dati proprietari della catena di approvvigionamento.

Fear and Greed Index

 

Per un commento