L'anonimato è sempre stato considerato una delle caratteristiche più preziose della comunità delle criptovalute. È il precursore della fungibilità, caratteristica necessaria anche per una forma di moneta ampiamente utilizzata. Allo stesso modo, la maggior parte dei detentori di criptovalute non vuole che i propri asset e i registri delle transazioni siano completamente divulgati. Di tutte le varie tecnologie crittografiche che lavorano per garantire la privacy alle blockchain, zk-SNARK e zk-STARK sono due esempi degni di nota.

zk-SNARK rappresenta una prova a conoscenza zero semplificata e non interattiva, mentre zk-STARK rappresenta una prova a conoscenza zero semplificata e completamente trasparente. Zk-SNARK è già utilizzato su sistemi di pagamento basati su blockchain come Zcash, progetti JP Morgan Chase e come metodo di verifica sicuro da client a server. Ma mentre zk-SNARK è già ben consolidato e ampiamente utilizzato, zk-STARK viene ora pubblicizzato come una versione nuova e migliorata del protocollo che mira a risolvere molte delle precedenti carenze di zk-SNARK.

  

La favola della caverna di Ali Baba

Nel 1990, il crittografo Jean-Jacques Quisquater (insieme ad altri collaboratori) pubblicò un articolo intitolato "Come spiegare ai bambini i protocolli di prova a conoscenza zero". Questo articolo introduce il concetto di dimostrazione a conoscenza zero, incorporando la parabola della caverna di Alibaba. Questa favola è stata adattata molte volte dalla sua creazione e ora ne abbiamo diverse versioni. Ma il contenuto espresso è sostanzialmente lo stesso.

Immaginiamo una grotta circolare con un ingresso e una porta magica che separa due percorsi. Per aprire la porta magica bisogna sussurrare il segreto giusto. Consideriamo quindi che Alice (gialla) vuole dimostrare a Bob (blu) di sapere qual è la password, ma allo stesso tempo mantenerla segreta. Per fare questo, Bob accetta di aspettare fuori mentre Alice entra nella grotta e sceglie uno dei due percorsi fino alla fine. In questo caso decide di seguire il percorso 1.

zk-SNARKs和zk-STARKs解释

Dopo un po', Bob si dirige verso l'ingresso e dice da quale lato vuole che Alice esca (in questo caso sarebbe il percorso 2).

zk-SNARKs和zk-STARKs解释

Se Alice conosce la password, sarà in grado di seguire correttamente il percorso richiesto da Bob.

zk-SNARKs和zk-STARKs解释

Questo processo può essere ripetuto più volte per confermare che Alice non ha scelto la strada corretta per fortuna.

La parabola della caverna di Alibaba illustra il concetto di dimostrazione a conoscenza zero, che fa parte dei protocolli zk-SNARK e zk-STARK. Le prove a conoscenza zero possono essere utilizzate per dimostrare il possesso di determinate conoscenze senza rivelare alcuna informazione al riguardo.


zk-SNARK

Zcash è la prima applicazione diffusa di zk-SNARKs. Mentre progetti sulla privacy come Monero utilizzano anche firme ad anello e altre tecniche che creano effettivamente una cortina di fumo per proteggere i mittenti, zk-SNARK cambia radicalmente il modo in cui i dati vengono condivisi. La privacy di Zcash deriva dal fatto che le transazioni nella rete possono essere crittografate ma è comunque possibile verificarne la validità attraverso l'uso di prove a conoscenza zero. Pertanto, coloro che applicano le regole del consenso non hanno bisogno di conoscere tutti i dati su ciascuna transazione. Vale la pena ricordare che le funzionalità di privacy in Zcash sono inattive per impostazione predefinita e sono facoltative, soggette a impostazioni manuali.

Le prove a conoscenza zero consentono a una persona di dimostrare a un'altra persona che ciò che sta affermando è vero senza rivelare alcuna informazione oltre la validità dell'affermazione. Le parti coinvolte sono spesso chiamate dimostratori e verificatori, e i segreti che detengono sono chiamati prove. Lo scopo principale di queste funzioni è consentire il minor scambio di dati possibile tra le due parti. In altre parole, le persone possono utilizzare prove a conoscenza zero per dimostrare di sapere qualcosa senza rivelare alcuna informazione sulla conoscenza stessa.

Nell'acronimo SNARK, la prima lettera "succinto" significa che queste dimostrazioni sono semplici e possono essere verificate rapidamente. "Non interattivo" significa che c'è poca interazione tra il dimostratore e il verificatore. Le versioni precedenti dei protocolli di prova a conoscenza zero in genere richiedevano che il dimostratore e il verificatore comunicassero ed erano quindi considerate prove "interattive" a conoscenza zero. Ma in una struttura "non interattiva", il dimostratore e il verificatore devono solo scambiarsi prove rilevanti.

Attualmente, le prove zk-SNARK si basano su una configurazione iniziale di fiducia tra dimostratori e verificatori, il che significa che è necessario un insieme di parametri pubblici per costruire una prova a conoscenza zero e quindi una transazione privata. Questi parametri sono quasi come le regole del gioco, sono programmati nel protocollo e sono uno dei fattori necessari per dimostrare che una transazione è valida. Tuttavia, ciò crea potenziali problemi di centralizzazione, poiché i parametri sono spesso fissati da un gruppo molto piccolo.

Sebbene l’impostazione pubblica originale sia la base per le odierne implementazioni di zk-SNARK, i ricercatori stanno lavorando per trovare alternative che riducano la fiducia richiesta nel processo di interazione. La fase di configurazione iniziale è importante per evitare pagamenti falsi, perché se qualcuno avesse accesso alla casualità dei parametri generati, potrebbe creare prove false valide per il validatore. In Zcash, la fase di configurazione iniziale è chiamata processo di generazione dei parametri.

Parliamo ancora dell’acronimo “ARguments”. Gli zk-SNARK sono considerati ragionevolmente calcolabili, il che significa che la probabilità che un falso prover imbrogli con successo il sistema è molto piccola. Questa proprietà è chiamata robustezza e presuppone che il prover abbia una potenza computazionale limitata. In teoria, un dimostratore con sufficiente potenza di calcolo può creare prove contraffatte, il che è uno dei motivi per cui i computer quantistici sono considerati da molti una possibile minaccia per zk-SNARK e i sistemi blockchain.

L'ultima iniziale è "Conoscenza", il che significa che il sperimentatore non può costruire prove senza una conoscenza effettiva (o testimoni) a sostegno della sua affermazione.

Le prove a conoscenza zero possono essere verificate rapidamente e in genere richiedono molti meno dati rispetto alle transazioni Bitcoin standard. Ciò apre un nuovo percorso per la tecnologia zk-SNARK da utilizzare come soluzione di anonimato e scalabilità.

 

 zk-STARK

zk-STARK è stato creato come versione alternativa del protocollo zk-SNARK e è considerato un'implementazione più rapida e conveniente della tecnologia. Ma, cosa ancora più importante, zk-STARK non richiede la configurazione iniziale della fiducia (da cui la lettera "T" per trasparenza).

Tecnicamente, gli Zk-STARK non richiedono una configurazione attendibile inizializzata, poiché si basano su un metodo di crittografia simmetrica più snello attraverso collisioni di funzioni hash. Questo approccio elimina anche i presupposti della teoria dei numeri di zk-SNARK, che sono computazionalmente costosi e teoricamente vulnerabili agli attacchi dei computer quantistici.

Uno dei motivi principali per cui Zk-STARK fornisce un'implementazione più conveniente e veloce è perché la quantità di comunicazione tra dimostratori e verificatori rimane costante rispetto a qualsiasi incremento di calcolo. Al contrario, in zk-SNARK, più calcoli sono richiesti, più volte le parti devono inviare messaggi avanti e indietro. Pertanto, la dimensione complessiva dei dati di zk-SNARK è molto maggiore della dimensione dei dati nella prova zk-STARK.

È chiaro che sia zk-SNARKS che zk-STARK attirano crescenti domande sull’anonimato. Nel mondo delle criptovalute, questi protocolli hanno un enorme potenziale per diventare un approccio rivoluzionario all’uso diffuso.