Prova a conoscenza zero (prova ZK): cos'è e come funziona
Le cose più importanti che devi sapere
- La prova a conoscenza zero è un metodo crittografico che consente a una parte di dimostrare la validità di un'affermazione a un'altra parte senza rivelare i dati privati sottostanti.
- Le prove ZK vengono utilizzate nelle criptovalute per scopi di privacy (come nascondere i dettagli delle transazioni) o per scopi di scalabilità (come comprimere le transazioni), e quest'ultimo aspetto potrebbe non implicare la occultazione dei dati.
- Le dimostrazioni ZK non dimostrano verità fattuali né l'affidabilità di input o fonti, ma si limitano a verificare la validità di un'affermazione matematica relativa agli input forniti.
La prova a conoscenza zero è essenzialmente un metodo crittografico davvero unico. Permette a una parte di dimostrare la validità di un'affermazione, che viene poi confermata dall'altra parte, senza che vengano scambiati dati privati. Quando questo sistema funziona correttamente, diventa uno strumento prezioso per scalare le blockchain , nascondere i dettagli delle transazioni e verificare le identità senza richiederne la condivisione.

Ma la semplice presenza del termine "ZK" sulla pagina di un prodotto non garantisce automaticamente tutti questi vantaggi. Questa guida spiega come funzionano le prove ZK, dove vengono effettivamente utilizzate nel mondo delle criptovalute odierno e le domande chiave da porsi prima di fidarsi di un prodotto con questa etichetta.
i punti principali
- La prova a conoscenza zero consente a una parte di dimostrare una pretesa senza rivelare i dati riservati su cui si basa.
- Nel mondo delle criptovalute, le prove ZK possono verificare dati privati, account off-chain, dichiarazioni di identità eValidità della transazione.
- I sistemi ZK sono vantaggiosi in termini di scalabilità e privacy perché il processo di verifica può essere molto più snello rispetto alla divulgazione di tutti i dati di origine.
- Una dimostrazione corretta può dipendere da input errati, software debole, presupposti di configurazione affidabili, rischi di collegamento o metadati esposti.
Cos'è la prova a conoscenza zero (prova ZK)? Una semplice spiegazione.
La maggior parte delle persone si imbatte per la prima volta in progetti di criptovaluta con prove a conoscenza zero (prove ZK) quando questi si presentano come "privati" o "affidabili". Ma queste parole non significano nulla senza comprendere cosa la prova verifichi effettivamente. Questa lacuna è il punto di partenza della maggior parte della confusione dei principianti e il terreno fertile per le campagne di marketing.
Una prova a conoscenza zero è una prova crittografica che convince un revisore della veridicità di un'affermazione, mantenendo al contempo nascosto il segreto sottostante. La parte che formula l'affermazione è chiamata proponente, mentre la parte che la verifica è chiamata revisore.
Nel mondo delle criptovalute, ciò significa che un utente, un'applicazione, un portafoglio, un roll-up o un protocollo possono dimostrare qualcosa riguardo a una transazione, rivendicare un'identità, fornire un backup o eseguire un calcolo senza rivelare tutti i dati di input ad altri. Questa prova può proteggere la privacy, ridurre l'onere della verifica, o entrambe le cose. Tuttavia, non rende anonimi o privi di rischi tutti i prodotti che si basano sulle prove ZK.
Questo concetto risale a un articolo del 1985 di Goldwasser, Micali e Rackoff sui sistemi interattivi di prova di concetto. Le criptovalute moderne utilizzano la stessa idea di base in sistemi di prova di concetto più recenti che operano senza alcuna comunicazione bidirezionale tra validatore e validatore.
Ogni prova a conoscenza zero (prova ZK) è definita da tre proprietà chiave:
Perfezione : Ciò significa che un'affermazione corretta dovrebbe avere successo se tutti seguono le regole.
La correttezza implica che un'affermazione falsa dovrebbe avere successo solo con una probabilità molto bassa.
Il principio della conoscenza zero significa che il revisore viene a conoscenza solo della correttezza dell'affermazione, senza conoscere i dati sottostanti.
L'obiettivo primario è la prova stessa, non semplicemente la riservatezza. Un sistema di prova a conoscenza zero richiede comunque una dichiarazione pubblica accurata, input privati validi e un software che applichi correttamente le regole di prova.
Come funziona la prova a conoscenza zero (prova ZK)?
La prova a conoscenza zero (ZK Proof) funziona convertendo le informazioni private in prove verificabili a supporto di un'affermazione pubblica. Il revisore esamina queste prove senza dover visualizzare direttamente i dati privati.
I ruoli principali sono i seguenti:
| ruolo | la missione |
|---|---|
| Colui che dimostra | La prova viene creata a partire da dati privati e da una dichiarazione pubblica. |
| La condanna | Verifica se le prove corrispondono all'affermazione. |
| L'ingresso segreto (Testimone) | La voce nascosta, o il segreto, o le credenziali, o la traccia dell'account. |
| Dichiarazione | La procura pubblica è messa alla prova. |
Il flusso di lavoro inizia in genere con una voce privata e riservata. Il validatore identifica una dichiarazione pubblica, crea una prova e la invia al validatore per un risultato di accettazione o rifiuto. Il validatore può visualizzare le voci pubbliche, come il titolo, l'intervallo di saldo, l'appartenenza al gruppo o la radice dello stato, ma non la voce riservata completa.
Ciò che cambia tra i diversi casi d'uso è la definizione di quali input rimangono privati e quali pubblici. La struttura rimane la stessa, sia che l'obiettivo sia nascondere l'importo di un pagamento, confermare l'idoneità al voto o convalidare una serie di transazioni off-chain.
Per questo motivo, le prove a conoscenza zero possono essere utili anche quando nessun essere umano vede il segreto. Uno smart contract può verificare una prova. Un rollup può pubblicare una prova di validità. Un'applicazione può confermare che le credenziali soddisfano una regola specifica senza raccogliere le credenziali stesse. La verifica viene gestita dalla matematica e il validatore non fornisce mai i dati grezzi.
Un esempio semplificato di prova a conoscenza zero (prova ZK)
Per comprendere meglio i principi astratti della crittografia, non c'è niente di più chiaro degli esempi pratici, e la verifica dell'età è uno degli esempi più comuni e ampiamente utilizzati a questo scopo.
Una persona può dimostrare di avere più di 18 anni senza rivelare la data di nascita completa, l'indirizzo, il numero del documento o il nome. In questo caso, l'affermazione generale è "Questa persona è maggiorenne". La prova specifica è costituita dai documenti o dalle informazioni identificative che comprovano tale affermazione. Chi effettua la verifica necessita solo di un risultato "positivo" o "negativo", non di una copia riutilizzabile del documento di identità.
La relativa versione crittografata funziona allo stesso modo. Il portafoglio può dimostrare che il suo utente appartiene a un gruppo approvato, possiede credenziali valide o soddisfa una determinata condizione prima di partecipare a una votazione o a una richiesta, e l'applicazione può verificare tale prova senza ricevere il documento originale o l'intera cronologia dell'account.
La verifica della password dimostra la stessa logica in un contesto più semplice:
- Il programma di installazione conosce la password.
- L'investigatore vuole la prova che l'ente certificatore ne sia a conoscenza.
- La verifica deve essere effettuata senza trasmettere la password.
- Una prova riutilizzata o copiata non dovrebbe sbloccare il sistema in un secondo momento.
Queste analogie non reggono quando suggeriscono una privacy automatica. Un vero sistema di prova a conoscenza zero (ZK) richiede una crittografia rigorosa, input ben definiti, controlli anti-replay e un modo per impedire il riutilizzo della prova in contesti inappropriati. L'esempio della verifica dell'età funziona perché include tutti questi elementi. Tuttavia, molti prodotti crittografici che utilizzano l'etichetta ZK non specificano quali di questi controlli siano effettivamente implementati.
Prove a conoscenza zero (prove ZK) nella blockchain e nelle criptovalute
La comprensione delle prove a conoscenza zero (ZK Proofs) è un punto di confusione per molti principianti nel mondo della blockchain e delle criptovalute.
La maggior parte delle blockchain sono intrinsecamente completamente trasparenti. Quando si inviano Bitcoin o Ethereum, chiunque può tracciare la transazione da un portafoglio all'altro, per sempre. La blockchain è progettata per essere un registro pubblico.
Quindi, quando un progetto menziona il termine "ZK", cosa cambia concretamente?
Dipende interamente dallo scopo per cui vengono applicate le dimostrazioni ZK.
L'utilizzo legato alla privacy implica che le prove ZK nascondano dettagli specifici all'interno di una transazione, come il mittente, il destinatario o l'importo. La transazione rimane on-chain, ma i dettagli sono protetti. Zcash è un esempio più datato di questo, che utilizza gli zk-SNARK per i trasferimenti sicuri, i quali possono nascondere mittente, destinatario e importo alla vista del pubblico.
La scalabilità di questo sistema implica che ZK Proof venga utilizzato per comprimere un insieme di transazioni nel trading di criptovalute e garantirne la corretta esecuzione, senza che ogni passaggio debba essere ripetuto sulla blockchain principale. I dati delle transazioni possono rimanere completamente pubblici; nulla viene nascosto. Lo scopo della prova in questo caso è l'efficienza e la validità, non la privacy.
Molti rollup ZK, zkEVM e reti Layer 2 rientrano in questa seconda categoria. Queste tecnologie utilizzano ZK per aumentare la velocità e ridurre i costi, non per nascondere i dati.
Quando vedi la sigla "ZK" su un prodotto, la prima domanda da porsi è: che tipo di prova di ZK rappresenta questo? Se il team non è in grado di rispondere in modo chiaro e diretto, questa è già di per sé una risposta.
ZK-SNARK e ZK-STARK e prove di validità
Per comprendere le tecniche di prova a conoscenza zero (ZK Proof), è fondamentale familiarizzare con le due principali famiglie di sistemi di prova nelle criptovalute: ZK-SNARK e ZK-STARK. Sebbene entrambi affrontino lo stesso problema fondamentale, differiscono nelle loro metodologie, e questa differenza è cruciale quando si valuta la sicurezza di qualsiasi progetto che si basi su di essi.
SNARK è l'acronimo di "succinct non-interactive argument of knowledge" (argomento della conoscenza conciso e non interattivo), mentre STARK è l'acronimo di "scalable transparent argument of knowledge" (argomento della conoscenza trasparente e scalabile). Entrambe le famiglie supportano proprietà a conoscenza zero e consentono di rendere la convalida dei dati significativamente meno costosa rispetto a un ricalcolo completo.
| La famiglia di prove | Nucleo naturale |
|---|---|
| ZK-SNARK | Le loro dimostrazioni sono in genere di piccole dimensioni ed efficienti da verificare, ma spesso richiedono considerazioni relative alla "configurazione affidabile" a seconda del progetto. |
| ZK-STARK | Sono caratterizzate da una configurazione trasparente e da forti proprietà di scalabilità, ma le loro dimostrazioni sono spesso più complesse e i costi di verifica più elevati. |
| Prova di validità | Una denominazione più ampia per le dimostrazioni che mostrano che una transizione di stato o un calcolo sono corretti. |
Il punto più critico per i principianti è la "configurazione affidabile". Alcuni sistemi SNARK si basano su materiali di configurazione che devono essere creati e poi eliminati definitivamente. Se questi materiali finiscono nelle mani sbagliate, il modello di sicurezza crolla, poiché un malintenzionato può creare prove che superano falsamente la verifica. I sistemi STARK evitano completamente questo requisito, ed è per questo che vengono definiti "trasparenti". Il compromesso è che le prove STARK sono spesso più grandi, il che può aumentare i costi della verifica on-chain.
Starknet è un ottimo esempio di rete basata sull'approccio proof-of-work di STARK. Ciò non significa che ogni sistema STARK sia privato per impostazione predefinita, ma illustra come la progettazione basata sul proof-of-work influenzi le decisioni relative alle infrastrutture nel mondo reale.
Dove vengono utilizzate oggi le prove a conoscenza zero (prove ZK)?
Le prove a conoscenza zero (ZK Proof) sono utilizzate in una vasta gamma di applicazioni nel mondo delle criptovalute, ben oltre ciò che la maggior parte dei principianti immagina. Ogni caso d'uso nasconde dati diversi, dimostra un'affermazione diversa e comporta rischi differenti.
Le applicazioni visive più importanti nel mondo delle criptovalute includono le seguenti:
- Pagamenti protetti: Nasconde i dettagli delle transazioni selezionate, come mittente, destinatario o importo.
- ZK-rollup: Garantisce la corretta esecuzione dei set di transazioni senza la necessità di rieseguire ogni calcolo sulla blockchain sottostante.
- Sistemi di identità: L'idoneità, l'unicità o le credenziali vengono dimostrate senza la necessità di condividere il documento sottostante.
- Prova di riserva: Mostra rivendicazioni limitate su attività o passività che sono state impegnate.
- Strumenti simili a zkTLS: Ricavare informazioni da sessioni web senza rivelare la sessione stessa.
- Sistemi di voto: L'ammissibilità viene accertata riducendo al minimo il rischio di associare i voti a singoli individui.
- Elaborazione esterna: Ciò dimostra che il risultato è stato ottenuto secondo un presunto programma.
I casi d'uso legati alla privacy sono i più comuni per la maggior parte degli utenti di criptovalute. La categoria di criptovalute incentrate sulla privacy comprende asset in cui la riservatezza delle transazioni o le restrizioni sui metadati sono elementi centrali dell'offerta. Le prove a conoscenza zero possono supportare questo obiettivo, ma il comportamento del portafoglio, gli indirizzi trasparenti, i metadati e la progettazione dell'applicazione influenzano la privacy effettiva percepita dall'utente.
Zcash è l'esempio più consolidato. Utilizza gli zk-SNARK per le funzioni di transazione sicura, consentendo agli utenti di dimostrare la proprietà delle informazioni senza divulgarle.
L'identità rappresenta un caso d'uso a sé stante. La categoria delle criptovalute legate all'identità si inserisce nei sistemi che verificano l'appartenenza, l'unicità, le credenziali o le autorizzazioni. World ID utilizza prove a conoscenza zero, consentendo a un utente di confermare la validità delle credenziali senza rivelare i dati di identità sottostanti del richiedente. La divulgazione selettiva tramite credenziali verificabili segue un approccio simile, permettendo al titolare di divulgare solo campi specifici delle credenziali anziché l'intero documento.
Nella maggior parte degli utilizzi non correlati ai token, le prove a conoscenza zero rientrano nel quadro più ampio della crittografia per la tutela della privacy. Sebbene le prove limitino la divulgazione di informazioni, non eliminano la necessità di fiducia negli emittenti, nei software, nei portafogli e nell'hardware.
Cosa non dimostrano le prove a conoscenza zero (prove ZK)
Questa sezione è estremamente importante per i principianti, sebbene la maggior parte dei progetti di criptovalute eviti di spiegarla chiaramente.
La dimostrazione nulla non può dimostrare verità fattuali. Il suo ruolo si limita a verificare che una data affermazione matematica sui dati forniti sia vera.
Una prova a conoscenza zero può dimostrare che un input nascosto soddisfa una determinata regola. Tuttavia, non può provare che questo input nascosto provenga da un individuo affidabile, da un sensore accurato, da uno scambio di solventi o da un emittente affidabile, a meno che anche il sistema circostante non lo dimostri.
Queste limitazioni sono evidenti in molte affermazioni relative alle criptovalute. Ad esempio, una prova delle riserve può dimostrare che i saldi impegnati sono conformi a un determinato standard, ma potrebbe non provare l'intera portata delle passività, la vera proprietà degli attivi o se i fondi siano stati temporaneamente presi in prestito per superare la due diligence. Allo stesso modo, una prova di credito può dimostrare che un credito firmato soddisfa una norma, ma non può provare che l'emittente abbia gestito correttamente la due diligence.
Le lacune più evidenti si trovano al di fuori della dimostrazione stessa:
- Abbi fiducia nei dati di input: I dati inseriti nella dimostrazione potrebbero essere errati o essere stati manipolati.
- Fiducia nell'ente emittente: Il firmatario dell'approvazione potrebbe essere debole, compromesso o disonesto.
- Fiducia in Oracolo: I dati esterni alla blockchain potrebbero essere obsoleti o essere stati manomessi prima di essere inseriti nella prova.
- Fiducia nel dispositivo: Un software dannoso può influenzare ciò che un utente firma o visualizza prima che venga creata la prova di bozza.
- Perdita di metadati: Indirizzi, tempistiche, dati IP e comportamento delle applicazioni possono rivelare determinati schemi anche quando la prova stessa nasconde i dati sottostanti.
Per questo motivo, qualsiasi affermazione basata su prove a conoscenza zero deve sempre specificare l'affermazione precisa che si intende dimostrare. Termini come "privato", "verificato" e "conforme" sono etichette incomplete a meno che l'applicazione non chiarisca quali dati sono nascosti, quali rimangono pubblici e chi garantisce la validità degli input effettivi.
Rischi, costi e presupposti di fiducia nella prova a conoscenza zero (prova ZK)
Sebbene il sistema di prova in sé possa essere matematicamente corretto, il prodotto che lo supporta potrebbe non funzionare. La sola comprensione degli aspetti matematici non è sufficiente e, per la maggior parte degli utenti, i rischi pratici descritti di seguito sono più significativi della crittografia stessa.
| rischi | Cosa controllare |
|---|---|
| Configurazione affidabile | Se il sistema di dimostrazione richiede materiali preparatori e come questi sono stati creati. |
| Costo fisso | Sia che la creazione della prova richieda attrezzature speciali, tempo o operatori centralizzati. |
| perdita di metadati | Quali sono gli indirizzi, gli orari, le tariffe, i segnali IP o gli input pubblici che rimangono visibili? |
| Rischi di accumulo | Controllo del sequenziatore, progettazione del ponte, disponibilità dei dati e percorsi di uscita forzati. |
| Errori di implementazione | Processi di audit, programmi di ricompensa per la segnalazione di bug, chiavi di promozione e cronologia degli incidenti. |
| errori del portafoglio | La rete errata, l'applicazione contraffatta, la firma dannosa o la frase di recupero esposta. |
| Restrizioni legali | Sia che lo strumento blocchi, registri o segnali un'attività specifica. |
La configurazione affidabile è il rischio più frainteso. Non è sempre un ostacolo insormontabile, ma è un presupposto fondamentale. Gli utenti dovrebbero sapere se un progetto si basa su un protocollo di configurazione, su una configurazione specifica per il circuito o su un progetto di prova trasparente.
Il costo di una prova può centralizzare silenziosamente un sistema. Se solo pochi operatori sono in grado di generare prove con sufficiente rapidità, la rete può verificare i risultati a basso costo, pur continuando a dipendere da infrastrutture specializzate per produrle. Questo è un aspetto che qualsiasi ZK-Rollup o rete di calcolo che si dichiari decentralizzata dovrebbe considerare.
Le dichiarazioni sulla privacy vanno lette con attenzione. Uno strumento potrebbe nascondere gli importi delle transazioni pur lasciando pubblici gli indirizzi, oppure anonimizzare un'app pur rivelando l'idoneità del validatore, o ancora impostare un intervallo di saldo pur lasciando completamente visibili l'attività e la tempistica del portafoglio. Ad esempio, quando si negoziano criptovalute, si potrebbe presumere che la propria privacy sia completamente garantita.
Anche nel marketing di ZK si parla di tecnologie quantistiche. Alcuni sistemi descrivono proprietà post-quantistiche, ma ciò non significa che ogni asset, wallet, bridge o applicazione connessa alla rete ZK sia protetto da futuri attacchi crittografici. È importante comprendere che la protezione delle criptovalute richiede un approccio globale.
Come utilizzare in modo sicuro gli strumenti di crittografia a conoscenza zero (ZK).
Il primo passo è definire con precisione di cosa si tratta: è un portafoglio per la privacy, una soluzione di aggregazione, un token, un sistema di identità, una pagina di prova delle riserve o un'infrastruttura per sviluppatori? Chiamarlo semplicemente "ZK" non risponde a questa domanda.
Utilizza questa lista di controllo prima di collegare un portafoglio, trasferire fondi tramite un bridge o acquistare un token:
- Specificare l'affermazione esatta che la dimostrazione intende verificare.
- Verifica quali dati rimangono pubblici dopo l'attivazione della funzione di verifica.
- Verificare separatamente l'indirizzo di rete, il bridge e lo smart contract.
- Verificare se il sistema di prova richiede una configurazione affidabile.
- Verificare se è coinvolto un sequenziatore, un emittente o un operatore centrale.
- Paga trattamento di prova su piccola scala Prima di trasferire fondi preziosi.
- Mantieni separate le frasi di recupero e i dispositivi di firma dalle dichiarazioni della domanda.
Una gestione oculata del portafoglio è fondamentale, poiché la maggior parte degli strumenti ZK richiede un'interfaccia o un account per funzionare. Se sei nuovo all'autocustodia e stai per utilizzare un'applicazione ZK che non conosci, il nostro articolo sui migliori portafogli di criptovalute per principianti illustra le categorie principali e cosa cercare prima di connetterti.
Il supporto degli exchange è un aspetto da considerare separatamente. Una piattaforma centralizzata potrebbe elencare un token collegato a ZK senza supportare ogni soluzione di rollup, indirizzo protetto o metodo di prelievo. Se sei nuovo al trading di criptovalute e stai cercando asset ZK, gli exchange di criptovalute per principianti offrono spunti su cosa confrontare in termini di commissioni, sicurezza e asset supportati. Per gli utenti che interagiscono con applicazioni DeFi basate su rollup ZK, le opzioni di exchange decentralizzati (DEX) sono più appropriate.
Ecco un semplice flusso di lavoro: leggi la dichiarazione di prova dell'applicazione, controlla la stringa e l'indirizzo dello smart contract, testa in piccole quantità, non iscriverti mai a qualcosa che non riconosci e presupponi che la privacy sia parziale finché lo strumento non ti dice esattamente cosa sta nascondendo.
domande comuni
Cos'è, in termini semplici, la prova della conoscenza zero?
La prova a conoscenza zero è un metodo per verificare un'affermazione senza rivelare le informazioni proprietarie che la rendono vera. Nel mondo delle criptovalute, questo può significare dimostrare l'idoneità, convalidare un pagamento, stabilire un sistema di pagamento sicuro o rivendicare le credenziali senza rivelare tutti i dati inseriti.
Come funziona la dimostrazione a conoscenza zero?
L'esaminatore crea prove a partire da un testimone privato e da una dichiarazione pubblica. Successivamente, esamina le prove e le accetta o le respinge senza incontrare il testimone.
Qual è un esempio di prova a conoscenza zero?
La verifica dell'età è un chiaro esempio di prova a conoscenza zero. Un utente può dimostrare di aver superato l'età richiesta senza rivelare la propria data di nascita completa, l'indirizzo o il numero del documento, a condizione che l'ente emittente delle credenziali e il sistema di verifica siano affidabili.
I rollup ZK sono privati?
I rollup ZK non sono automaticamente privati. Molti di essi utilizzano prove di validità per dimostrare che l'esecuzione della transazione off-chain è stata corretta, mentre i dati della transazione o dati sufficienti per ricostruire lo stato del rollup possono rimanere pubblici.
Qual è la differenza tra zk-SNARK e zk-STARK?
Gli zk-SNARK in genere producono prove di piccole dimensioni con una verifica efficiente, ma alcuni dei loro design richiedono un trusted setup. Gli zk-STARK, d'altro canto, evitano i requisiti di trusted setup e si adattano bene a conti più grandi, sebbene le loro prove siano spesso più grandi.
Le prove a conoscenza zero possono dimostrare eventi del mondo reale?
Le prove a conoscenza zero non possono dimostrare da sole eventi del mondo reale. Possono dimostrare che i dati forniti soddisfano una regola matematica, ma il sistema necessita comunque di sensori, emittenti o oracoli affidabili quando l'affermazione si basa sul mondo esterno.
I commenti sono chiusi.