Protocollo a conoscenza zero: come migliorare la privacy nella blockchain

Protocollo a conoscenza zero: come migliorare la privacy nella blockchain

Il protocollo a conoscenza zero o dimostrazione a conoscenza zero è una tecnica largamente utilizzata nel mondo della crittografia. Tra le sue applicazioni più interessanti rientrano le criptovalute, dove consente di eseguire la validazione delle transazioni inserite nella blockchain mantenendo l’anonimità degli utenti. 

Introduzione

Le criptovalute, in particolare quelle che utilizzano il meccanismo  della Proof of Work (PoW) per validare le transazioni inserite nella blockchain, fanno largo uso di tecniche crittografiche. Algoritmi come SHA-256 (Bitcoin), Keccak o SHA-3 (Ethereum) o persino la logica ternaria di IOTA, sono tutti caratterizzati da una solida componente crittografica. Come vedremo nel corso dell’articolo, il protocollo a conoscenza zero, indicato anche con il termine ZKP, acronimo di Zero Knowledge Proof, ha una forte dipendenza dalla crittografia. Verranno anzitutto esposti i principali concetti alla base di ZKP e del protocollo a conoscenza zero non interattivo, per esaminare poi alcune applicazioni significative della tecnica in ambito crittografico, con riferimento ad alcune criptovalute.

Protocollo a conoscenza zero: generalità

Il protocollo a conoscenza zero rappresenta senza ombra di dubbio uno dei concetti più affascinanti della crittografia. La garanzia di totale protezione dell’anonimato apre infatti la porta a innumerevoli applicazioni, non solo nel campo delle criptovalute: potenzialmente, infatti, questa tecnica potrebbe essere persino utilizzata in ambito militare (sostituendo ad esempio la classica parola d’ordine) o per gestire transazioni per le quali sono richiesti un elevato grado di riservatezza e di sicurezza, come ad esempio una procedura di votazione. Il principio su cui si basa la tecnica ZKP è molto semplice: un soggetto (detto prover) deve dimostrare a un altro soggetto (detto verifier) di conoscere un determinato valore x, senza trasmettere il valore x stesso. Il soggetto prover è in sostanza colui che deve fornire la prova di conoscenza, mentre il verifier è colui che deve eseguire la verifica di conoscenza. La natura fortemente innovativa della tecnica ZKP consiste proprio nel provare la conoscenza di una certa informazione senza rivelarla. Anche se ciò può sembrare impossibile o comunque molto difficile, vedremo che seguendo semplici regole la tecnica è non solo applicabile, ma fornisce anche ottimi risultati. Affinché possa ritenersi tale, una tecnica ZKP deve soddisfare le seguenti tre proprietà fondamentali:

  • completezza (completeness): significa che un soggetto verifier che agisca in modo onesto (seguendo cioè scrupolosamente le regole del protocollo) potrà ritenere superata la prova se a fornirla sarà un prover anch’esso onesto;
  • solidità (soundness): se la prova fornita dal prover è falsa, il prover stesso non avrà alcuna possibilità (ad eccezione di una bassissima probabilità) di ingannare un verifier onesto, facendogli credere che la prova sia vera;
  • conoscenza zero (zero knowledge): se la prova è vera, nessun verifier può ricavare alcun tipo di informazione da essa, se non accertarsi che la prova stessa sia vera. In altre parole, il semplice fatto di venire a conoscenza della prova (e non dell’informazione che si vuole mantenere segreta) è sufficiente a determinare se il prover è a conoscenza del segreto. Come è facile immaginare, si tratta di un meccanismo totalmente innovativo, che si discosta in modo netto da molte tecniche in cui le informazioni scambiate tra i due soggetti sono intimamente connesse a ciò che si vuole mantenere riservato o segreto. Non solo, questa tecnica offre anche un elevato grado di sicurezza nei confronti degli hacker, nel senso che anche intercettando i dati scambiati tra prover e verifier non sarà possibile risalire all’informazione originale.

Possiamo pertanto affermare che se completezza e solidità sono proprietà comuni a molte tecniche di Proof of Work (PoW) interattive, la conoscenza zero è il fattore chiave che trasforma il processo di verifica in una prova a conoscenza zero. Il protocollo ZKP non è una prova di tipo matematico in quanto, come accennato in precedenza, esiste sempre una piccola probabilità (nota anche come soundness error, o errore di solidità) che un prover disonesto sia in grado di convincere un verifier onesto che la prova fornita sia vera quando invece non lo è. Si dice anche che la prova a conoscenza zero è una tecnica di tipo probabilistico anziché di tipo deterministico. Come vedremo più avanti, esistono comunque degli accorgimenti che, se seguiti, permettono di ridurre praticamente a zero l’errore di solidità.

Struttura del protocollo ZKP

La struttura generale di un protocollo a conoscenza zero si basa sulla sequenza di tre azioni ben precise svolte da due soggetti che chiameremo per semplicità A e B. Le tre azioni hanno un nome ben preciso: witness (testimonianza), challenge (sfida) e response (risposta). Cominciamo con la prima azione, witness, schematizzata in Figura 1. Poiché A conosce il segreto, è sempre possibile individuare un insieme di domande a cui A risponderà correttamente. Inizialmente (si osservi la Figura 1), A sceglierà una domanda in modo casuale da un set di domande e calcolerà la relativa prova (proof). Successivamente, A invierà la prova a B.

Figura 1. Il soggetto A sceglie una domanda, calcola la proof e la invia a B

La seconda azione, challenge, è rappresentata in Figura 2. Ora B sceglie un’altra domanda dallo stesso set e la invia ad A chiedendogli di fornire la relativa risposta.

Figura 2. Il soggetto B sceglie una domanda dal set e chiede ad A di fornire la risposta

La terza azione, response, è visibile in Figura 3. In questa fase A determina la risposta alla domanda sottoposta da B e la comunica al mittente.

Figura 3. A determina la risposta e la invia a B

La risposta ricevuta permette a B di verificare se A è veramente a conoscenza dell’informazione segreta o riservata. Questa stessa procedura può essere ripetuta un numero qualsivoglia di volte, fino al punto in cui la probabilità che A risponda in modo casuale (anziché conoscere le risposte corrette) diventi sufficientemente bassa. Del resto, rispondendo in modo casuale è pressoché impossibile che dopo un numero opportunamente elevato di domande A riesca sempre a fornire la risposta corretta. Questo è proprio l’accorgimento che consente alla tecnica ZKP di essere efficacemente applicata pur essendo basata su un principio probabilistico e quindi non esatto.

Un esempio: la caverna di Ali Baba

Per mostrare come la tecnica ZKP funzioni a livello pratico, consideriamo l’esempio classico della caverna di Ali Baba, formulato per la prima volta da Jean-Jacques Quisquater. In questo esempio, al posto degli anonimi A e B, avremo due soggetti umani che chiamiamo Peggy (il prover) e Victor (il verifier). Assumiamo poi che la caverna abbia una struttura ad anello, come indicato in Figura 4. L’entrata si trova sul lato sinistro dell’immagine, mentre all’estremità opposta si trova una porta magica che è normalmente chiusa, bloccando il passaggio tra i due percorsi.

Figura 4. Struttura della caverna di Ali Baba

Peggy vuole dimostrare a Victor di conoscere la parola segreta in grado di aprire la porta magica. Tuttavia, non vuole in alcun modo rivelare tale segreto. Come visibile in Figura 4, i percorsi sinistro e destro che uniscono l’ingresso della caverna con il punto in cui è posta la porta magica sono indicati con A e B. Victor attende fuori dalla caverna, mentre Peggy entra e, senza essere osservata, sceglie uno tra i due cammini: A oppure B. Victor a questo punto entra nella caverna e grida il nome del cammino (A oppure B) che vuole Peggy utilizzi per tornare indietro (si osservi la Figura 5). Tale cammino è scelto in modo totalmente casuale. Poiché Peggy conosce il segreto, [...]

ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 2492 parole ed è riservato agli ABBONATI. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici che potrai leggere in formato PDF per un anno. ABBONATI ORA, è semplice e sicuro.

Scarica subito una copia gratis

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend