4 Maggio 2021 5:03

Zk-SNARK

Cos’è zk-SNARK?

Zk-SNARK è un acronimo che sta per “Zero-Knowledge Succinct Non-Interactive Argument of Knowledge”. Uno zk-SNARK è una prova crittografica che consente a una parte di dimostrare di possedere determinate informazioni senza rivelarle. Questa prova è resa possibile utilizzando una chiave segreta creata prima che la transazione abbia luogo. Viene utilizzato come parte del protocollo per la criptovaluta, Zcash.

Punti chiave

  • Zk-SNARK è un protocollo a prova di conoscenza zero utilizzato nella crittografia ed è un acronimo che sta per “Zero-Knowledge Succinct Non-Interactive Argument of Knowledge”.
  • Questa prova è stata sviluppata e introdotta per la prima volta alla fine degli anni ’80 ed è ora impiegata dalla criptovaluta Zcash per risolvere un problema di anonimato percepito con blockchain di tipo Bitcoin.
  • Le prove di Zk-SNARK si basano su una configurazione iniziale di “sistema di fiducia” che è stata criticata come un difetto di sicurezza intrinseco.

Capire zk-SNARK

Per molti membri originali della comunità delle criptovalute, principalmente la comunità Bitcoin, la privacy era uno scopo e una caratteristica presunti delle criptovalute. Tuttavia, la privacy è sempre stata una preoccupazione di secondo ordine, data la necessità della criptovaluta di creare un sistema “affidabile” per garantire l’integrità della valuta elettronica e delle transazioni digitali.

All’inizio degli anni 2010, gli utenti di relativamente facile, riidentificare le persone che avevano fornito dati pseudonimi a più fonti.

A causa della percepita mancanza di privacy di alcune delle criptovalute originali come Bitcoin, gli sviluppatori hanno iniziato a lavorare su monete incentrate sulla privacy. Il più importante di questi era Zcash, supportato da una tecnologia nota come zk-SNARKs.

Prova di conoscenza zero

Uno zk-SNARK (“argomento di conoscenza succinto non interattivo a conoscenza zero”) utilizza un concetto noto come “prova a conoscenza zero”. L’idea alla base di queste prove è stata sviluppata per la prima volta negli anni ’80. In parole povere, una prova a conoscenza zero è una situazione in cui ciascuna delle due parti in una transazione è in grado di verificare a vicenda di avere un particolare insieme di informazioni, senza rivelare allo stesso tempo quale sia tale informazione.

Per la maggior parte degli altri tipi di prova, almeno una delle due parti deve avere accesso a tutte le informazioni. Una prova tradizionale può essere paragonata a una password utilizzata per accedere a una rete online. L’utente invia la password e la rete stessa controlla il contenuto della password per verificare che sia corretta. Per fare ciò, la rete deve avere accesso anche al contenuto della password.

Una versione a prova di conoscenza zero di questa situazione implicherebbe che l’utente dimostri alla rete (tramite prove matematiche) di avere la password corretta senza rivelare effettivamente la password stessa. I vantaggi in termini di privacy e sicurezza in questa situazione sono chiari: se la rete non ha la password memorizzata da qualche parte a scopo di verifica, la password non può essere rubata.

La base matematica di zk-SNARKS è complessa. Tuttavia, prove di questo tipo consentono a una parte di dimostrare non solo che esiste un particolare bit di informazione, ma anche che la parte in questione è a conoscenza di tale informazione. Nel caso di Zcash, gli zk-SNARK possono essere verificati quasi istantaneamente e il protocollo non richiede alcuna interazione tra il prover e il verificatore.

Critica di zk-SNARKs

Ci sono, ovviamente, preoccupazioni relative agli zk-SNARK. Ad esempio, se qualcuno fosse in grado di accedere alla chiave privata utilizzata per creare i parametri del protocollo di prova, potrebbe creare false prove che tuttavia sembravano valide per i verificatori. Ciò consentirebbe a quella persona di creare nuovi token di Zcash attraverso un processo di contraffazione. Per evitare che ciò accada, Zcash è stato progettato in modo tale da rendere i protocolli di prova elaborati e distribuiti su più parti.

Mentre la costruzione del processo di prova Zcash è stata completata in modo tale da ridurre al minimo la possibilità di contraffazione di token tramite false prove, c’è almeno un’altra preoccupazione relativa alla criptovaluta. Zcash è stato creato con una “tassa” del 20% applicata su tutti i blocchi creati nei primi anni del token. Questa tassa è nota come “tassa del fondatore” e viene utilizzata per compensare gli sviluppatori della criptovaluta.

I critici hanno suggerito che i fondatori potrebbero potenzialmente utilizzare questo aspetto del sistema per creare un numero infinito di token Zcash senza che nessun altro sia a conoscenza dell’esistenza di quei token. Per questo motivo, non è del tutto possibile conoscere il numero esatto di token Zcash esistenti a questo punto.

Dal 2019, alcuni sviluppatori hanno lavorato per migliorare zk-SNARK rimuovendo la configurazione affidabile. Un team chiamato Suterusu ha sviluppato un sistema chiamato zK-ConSNARK che afferma di essere utilizzabile senza una configurazione affidabile, può fornire protezione della privacy per blockchain tradizionali come Bitcoin e ha l’inflazione più bassa per qualsiasi criptovaluta esistente.