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.

Что такое zk-SNARKs и zk-STARKs?

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

Что такое zk-SNARKs и zk-STARKs?

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

Что такое zk-SNARKs и zk-STARKs?

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.