La privacy è sempre stata considerata una caratteristica molto preziosa dalla comunità delle criptovalute. È un precursore della fungibilità, necessaria per una forma di denaro ampiamente utilizzata. La maggior parte dei proprietari di criptovalute non vuole che i propri averi e la cronologia delle transazioni siano completamente pubblici. Tra i vari metodi crittografici volti a garantire la riservatezza delle blockchain, due esempi di evidenze meritevoli di attenzione sono zk-SNARK e zk-STARK.
zk-SNARK sta per argomento di conoscenza breve, non interattivo e a conoscenza zero, mentre zk-STARK sta per argomento di conoscenza breve, trasparente e a conoscenza zero. Le prove Zk-SNARK sono già utilizzate in Zcash, il sistema di pagamento basato su blockchain di JP Morgan Chase, e come modo per autenticare in modo sicuro i clienti sui server. Ma mentre zk-SNARK ha fatto passi da gigante nella sua creazione e adattamento, zk-STARK è ora pubblicizzato come una versione nuova e migliorata del protocollo che risolve molte delle precedenti carenze di zk-SNARK.
La parabola di Ali Baba e la grotta
Nel 1990, il crittografo Jean-Jacques Quisquater (insieme ad altri collaboratori) pubblicò un articolo intitolato “Come spiegare i protocolli di conoscenza zero ai vostri figli”. L'articolo presenta il concetto di prova ZK con la parabola della grotta di Ali Baba. Dalla sua pubblicazione è stato rivisto più volte e attualmente esistono diverse versioni. Tuttavia, le informazioni di base sono essenzialmente le stesse.
Immaginiamo una grotta circolare con un ingresso e una porta magica che separa due percorsi laterali. Per oltrepassare la porta magica, devi sussurrare le giuste parole segrete. Consideriamo quindi che Alice (gialla) vuole dimostrare a Bob (blu) di conoscere le parole segrete, e allo stesso tempo vuole mantenerle segrete. Per fare questo, Bob accetta di aspettare fuori mentre lei entra nella grotta e arriva alla fine di uno dei due possibili percorsi. In questo esempio, decide di intraprendere il percorso 1.

Dopo un po', Bob passa davanti all'ingresso e grida in che direzione vuole che appaia Alice (percorso 2 in questo caso).

Se Alice conosce davvero il segreto, finirà sicuramente sulla strada scelta da Bob.

L'intero processo può essere ripetuto più volte per confermare che Alice non abbia scelto accidentalmente la strada giusta.
La parabola di Ali Baba e della Caverna illustra il concetto di dimostrazioni a conoscenza zero, che fanno parte dei protocolli zk-SNARK e zk-STARK. Le prove ZK possono essere utilizzate per dimostrare il possesso di determinate conoscenze senza rivelare alcuna informazione al riguardo.
zk-SNARK
Zcash è la prima applicazione zk-SNARKs ampiamente disponibile. Mentre altri progetti sulla privacy come Monero utilizzano firme ad anello e altre tecniche, creando di fatto una cortina di fumo attorno a chi ha inviato qualcosa, zk-SNARKS cambia radicalmente il modo in cui i dati vengono scambiati. La privacy di Zcash si basa sul fatto che le transazioni sulla rete possono rimanere crittografate ma essere comunque verificate utilizzando prove a conoscenza zero. Pertanto, coloro che applicano le regole del consenso non hanno bisogno di disporre di tutti i dati alla base di ciascuna transazione. Vale la pena notare che la funzionalità di privacy in Zcash non è abilitata per impostazione predefinita, ma è soggetta a configurazione manuale ed è facoltativa.
Le prove a conoscenza zero consentono a una persona di dimostrare a un'altra che un'affermazione è vera senza rivelare alcuna informazione oltre la validità dell'affermazione. Le parti coinvolte vengono solitamente chiamate verificatore e verificatore e la dichiarazione che mantengono segreta viene chiamata testimone. Lo scopo principale di queste prove è rivelare quante meno informazioni possibili tra le due parti. In altre parole, è possibile utilizzare prove a conoscenza zero per dimostrare di possedere una certa conoscenza senza rivelare altre informazioni.
L’acronimo SNARK “compresso” significa che questa prova è di dimensioni inferiori e può essere rapidamente verificata. “Non interattivo” significa che c’è poca o nessuna interazione tra sperimentatore e verificatore. Le versioni precedenti dei protocolli a conoscenza zero in genere richiedono che il verificatore e il verificatore comunichino tra loro e sono quindi considerate prove zk "interattive". Ma nei progetti “non interattivi”, il verificatore e il verificatore devono scambiarsi solo un elemento di prova.
Attualmente, le prove zk-SNARK dipendono da un'impostazione di fiducia iniziale tra il verificatore e il verificatore, il che significa che è necessario un insieme di parametri pubblici per creare prove a conoscenza zero per le transazioni private. Questi parametri corrispondono quasi alle regole del gioco, sono codificati nel protocollo e sono uno dei fattori necessari per confermare la validità della transazione. Tuttavia, ciò crea un potenziale problema di centralizzazione poiché i parametri sono spesso formulati da un gruppo molto piccolo.
Sebbene la configurazione pubblica iniziale sia fondamentale per le moderne implementazioni di zk-SNARK, i ricercatori stanno lavorando per trovare altre alternative come un modo per ridurre il livello di fiducia richiesto in questo processo. La fase di setup iniziale è importante per prevenire spese contraffatte perché se qualcuno avesse accesso alla casualità che genera i parametri, potrebbe creare false prove che apparirebbero valide al verificatore. In Zcash, la fase di configurazione iniziale è nota come cerimonia di generazione dei parametri.
Passiamo a “ARuments” come frammento di acronimo. Gli zk-SNARK sono considerati validi dal punto di vista computazionale, il che significa che i verificatori non autorizzati hanno una probabilità molto bassa di ingannare con successo il sistema. Questa proprietà è nota come forza e presuppone che il verificatore abbia una potenza di elaborazione limitata. In teoria, un verificatore con sufficiente potenza di calcolo potrebbe creare prove false, che è uno dei motivi per cui i computer quantistici sono visti da molti come una minaccia per zk-SNARK e i sistemi blockchain.
L'ultima parte di questo acronimo è "Conoscenza", il che significa che l'esaminatore non può costruire prove senza avere conoscenza (o un testimone) per sostenere la propria affermazione.
Le prove a conoscenza zero vengono verificate rapidamente e in genere occupano molti meno dati rispetto a una transazione Bitcoin standard. Ciò apre la strada all’utilizzo della tecnologia zk-SNARK come soluzione di privacy e scalabilità.
zk-STARK
zk-STARK è stato creato come versione alternativa di zk-SNARK ed è considerata un'implementazione più rapida ed economica della tecnologia. Ma ancora più importante, zk-STARK non richiede un'impostazione iniziale di fiducia (quindi "T" trasparente).
Tecnicamente parlando, Zk-STARK non richiede una configurazione iniziale affidabile poiché si basa su una crittografia simmetrica più semplice grazie alle sue funzioni hash resistenti alle collisioni. Questo approccio rimuove anche i presupposti della teoria dei numeri di zk-SNARK, che sono computazionalmente costosi e teoricamente suscettibili agli attacchi dei computer quantistici.
Uno dei motivi principali per cui Zk-STARK offre un'implementazione più economica e veloce è che il numero di cicli di comunicazione tra verificatori e verificatori rimane costante rispetto a qualsiasi aumento del calcolo. Al contrario, in zk-SNARK, maggiore è il calcolo richiesto, maggiore è il numero di parti che devono inviare messaggi avanti e indietro. Pertanto, la dimensione totale dei dati in zk-SNARK è molto maggiore che in zk-STARK.
È chiaro che sia zk-SNARKS che zk-STARK fanno appello alle crescenti preoccupazioni sulla privacy. Nel mondo delle criptovalute questi protocolli hanno un grande potenziale e possono diventare l’innovazione necessaria per un’adozione di massa.



