Zero Knowledge Proof (ZK proof)

Detta in parole povere : sono dimostrazioni che consentono di dimostrare ad un verifier un qualcosa senza appunto fornire questo qualcosa .

Ossia posso dimostrare di avere un’ informazione senza dare prova di averla.

Alice Vorrebbe dimostrare a Bob che possiede un informazione senza darla a Bob.

Untitled

Alice ha la chiave che apre $C$. Alice si mette in uno dei due corridoi e chiede a Bob di entrare all’inizio del bivio e scegliere un corridoio da cui Alice dovrà uscire.

Bob all’ inizio non è convinto che Alice possegga $C$, ma andando avanti a provare e vendendo che Alice esce sempre dal lato corretto , si convince.

Questa tecnica di dimostrazione è probabilistica quindi si Bob si convince quando la probabilità scende sotto una certa soglia.

La problematica di questa soglia è che è Iterativa e quindi dispendiosa di risorse , soprattutto sul canale.

L’obbiettivo è costruire una Zero knowledge proof che mi permetta di convincere Bob in una sola volta .

In queste due tecniche non iterative viene utilizzato l’esempio del gioco di Waldo .

Tecnica 1

Prendo il poster , lo taglio in molti pezzetti , e do a Bob il pezzetto con Waldo , cosi Bob è convinto che io sapevo dove fosse waldo.

Questa tecnica funziona , Ma ho distrutto il poster.

Tecnica 2

Prendo la fotografia di waldo e la nascondo dietro ad un poster più grande, Buco il poster , e in quel buco inserisco waldo, Bob sa che Waldo effettivamente c’è ma non conosce la posizione.

Le tecniche crittografiche sono utilizzate per rendere sicura la comunicazione su un canale insicuro.

Blockchain