Che cos'è Zero-Knowledge Proof e il suo ruolo nel mondo Blockchain?
Pubblicato: 2020-01-09Negli ultimi anni, ci siamo abituati al modo in cui grandi banche e altre aziende accedono e utilizzano le nostre informazioni personali per offrirci un'esperienza migliore. Nel tempo abbiamo dato loro un "segnale verde" ai meccanismi che utilizzano i nostri dettagli sensibili per aiutarci a sostenere in un certo modo.
Ma poi è entrata la tecnologia Blockchain e ha cambiato tutto totalmente.
La tecnologia Blockchain ha dato vita a varie caratteristiche come trasparenza, immutabilità, decentralizzazione e registro distribuito. Ha consentito agli utenti di agire in modo anonimo ed eseguire transazioni con sicurezza di fascia alta.
[Prima di guardare oltre, ti consigliamo vivamente di dedicare del tempo a comprendere le basi della Blockchain .]
Blockchain, in parole povere, ha restituito agli utenti il controllo della propria privacy e del futuro.
Ma Blockchain è davvero riuscita a farlo?
In una parola, la risposta è NO .
Molte reti blockchain utilizzano database pubblici. Pertanto, chiunque disponga di una connessione Internet può visualizzare l'elenco della cronologia delle transazioni della rete. Possono vedere tutti i dettagli associati alla transazione e i dettagli del tuo portafoglio, ma il nome dell'utente sarà ancora loro sconosciuto. Invece, si imbatteranno in una chiave pubblica, il codice univoco che rappresenta l'utente sulla rete blockchain.
In questo modo, la chiave pubblica creata tramite la tecnica di crittografia salvaguarda in una certa misura la tua privacy. Ma è ancora possibile che uno ti esponga tramite altre tecniche.
Questo ha fatto saltare la tua copertura anonima; sfatare il mito dell'anonimato e della privacy di Blockchain e farti capire che -
Le informazioni sensibili dell'utente memorizzate su una rete Blockchain sono solo confidenziali, non anonime .
Allo stesso modo, esistono varie reti blockchain governate da algoritmi di consenso per fornire privacy e stabilità di fascia alta, ma in questi casi il decentramento è considerato una seconda priorità. In molti di questi casi, le due parti non si fidano l'una dell'altra. [Per leggere in dettaglio questi modelli di consenso, dai un'occhiata a questa guida all'algoritmo di consenso blockchain .]
Questo, nel complesso, dà una chiara indicazione del fatto che Blockchain non è così anonimo e decentralizzato come molti dei suoi appassionati credono che sia. E dà anche vita a varie domande, come:
Le reti Blockchain devono davvero essere anonime? In che modo Blockchain può offrire più anonimato e una migliore protezione della privacy ai propri utenti?
Nelle attuali reti Blockchain, le transazioni sono registrate nel registro pubblico e sono di natura trasparente. Per questo motivo, vari marchi e mercati rinomati come Wall Street esitano ad adottare una tecnologia a prova di conoscenza zero poiché la riservatezza del cliente e della transazione è un must per loro. Questo, nel complesso, si chiede se Blockchain web 3.0 sarà in grado di avere un impatto sulle aziende .
Venendo alla seconda domanda, ci sono vari concetti e metodi come Coin mixing, Ringct e Coin Join che stanno rendendo le transazioni anonime in Blockchain, ma quello che è molto apprezzato è Zero-Knowledge Proof .
Quello che tratteremo in dettaglio in questo articolo.
Quindi, iniziamo con una semplice definizione di blockchain a prova di conoscenza zero .
Che cos'è la prova di conoscenza zero?
Zero-knowledge Proof è uno schema di crittografia proposto dai ricercatori del MIT Silvio Micali , Shafi Goldwasser e Charles Rackoff negli anni '80. In questo metodo, una parte (Prover) può dimostrare che una specifica affermazione è vera per l'altra parte (Verifier) senza rivelare alcuna informazione aggiuntiva.
Zero Knowledge Encryption assicura che nessuno, tranne te (nemmeno il fornitore di servizi o l'agenzia di sviluppo di app blockchain) possa accedere ai tuoi dati protetti.
Dopo aver chiarito la definizione , prendiamo un esempio per capire come funziona ZKP .
Esempio: bambini e barrette di cioccolato
Supponiamo che due bambini, Bob e Alice, abbiano ricevuto delle barrette di cioccolato da una festa. Bob vuole sapere se Alice ha lo stesso numero di barrette di cioccolato o meno. Ma, allo stesso tempo, nessuno di loro è pronto a rivelare il numero esatto.
Quindi, quello che fanno è che Bob porti quattro scatole con serratura in una stanza, supponendo che il numero di barrette di cioccolato ricevute sarà 10, 20, 30 e 40. Etichetta ogni scatola con un valore corrispondente al numero di barrette di cioccolato.
Quindi, Bob tiene in tasca la chiave della scatola che definisce il numero di barrette di cioccolato che ha ricevuto (diciamo che ha 30 barrette di cioccolato) e butta via le chiavi di tutte le altre scatole. E lascia la stanza.
Ora, Alice entra nella stanza con 4 piccoli pezzi di carta e scrive '+' su uno di essi mentre '-' su ogni altro. Qui, "+" indica il numero di barrette di cioccolato che ha ottenuto, mentre "-" rappresenta ogni altro valore.
Infila il pezzo di carta con il segno "+" in una scatola (diciamo in quella che rappresenta 20 barrette di cioccolato) e "-" nel resto delle scatole. E lei se ne va.
Ora, Bob entra di nuovo nella stanza e apre la scatola la cui chiave è in tasca. Quindi, controlla se la scatola ha un pezzo di carta con il segno "+" o "-". Se è un segno "+", si rende conto che Alice ha lo stesso numero di barrette di cioccolato. Mentre, nell'altro caso, lei no.
Poiché sappiamo che Alice ha 20 barrette di cioccolato e Bob ne ha 30, è chiaro che Bob troverà un segno "-" nella scatola con serratura di cui ha la chiave. Questo gli renderà chiaro che entrambi non hanno lo stesso numero di barrette di cioccolato.
Nello stesso momento, Alice rientrerà nella stanza e troverà un segno "-" nella mano di Bob e verrà anche a sapere che hanno un numero diverso di barrette di cioccolato.
Nota: con questo metodo, Bob imparerà che non hanno lo stesso numero di barrette di cioccolato. Ma non avrà ancora idea se Alice abbia più o meno barrette di cioccolato di lui e viceversa.
Pertanto, l' ethereum a prova di conoscenza zero mantiene la privacy delle informazioni sensibili degli utenti, mentre effettuano una transazione (in questo caso, la transazione sta scoprendo se hanno lo stesso numero di barrette di cioccolato o meno).
Anche se questo esempio ti avrebbe aiutato a capire cos'è esattamente Zero Knowledge Proofs (ZKP), aggiorniamo il concetto con un'immagine-
Ora, poiché viene spiegato il concetto di prove a conoscenza zero (ZKP), è il momento migliore per esaminare ciò che lo fa preferire a tutti rispetto ad altre opzioni disponibili. Analizziamo i pro e i contro a prova di conoscenza zero:
Vantaggi di Zero Knowledge Proofs (ZKP)
- Semplice : uno dei principali vantaggi della crittografia a conoscenza zero è che non implica alcun metodo di crittografia complesso.
- Sicuro : non richiede a nessuno di rivelare alcun tipo di informazione.
- Transazioni ─ Un altro vantaggio assicurativo associato alle ZKP si riferisce all'abbreviazione delle transazioni su blockchain. Di conseguenza, gli utenti non dovrebbero preoccuparsi dell'archiviazione delle informazioni per includere la compatibilità e l'identità con diversi tipi di risorse.
Sebbene questi siano i vantaggi della prova a conoscenza zero, il concetto presenta anche alcuni svantaggi. Alcuni dei quali sono:-
- Lungo : nella tecnologia a conoscenza zero , ci sono circa 2.000 calcoli, ciascuno dei quali richiede una certa quantità di tempo per l'elaborazione. Questo è il principale trucco di andare con la prova a conoscenza zero.
- Imperfetto : i messaggi consegnati al verificatore/provvisorio potrebbero essere distrutti o modificati.
- Limitato – Il protocollo a conoscenza zero richiede che il segreto sia un valore numerico. Negli altri casi è necessaria una traduzione.
Con questo coperto, scaviamo più a fondo negli aspetti tecnici prima di valutare quando e come i protocolli a conoscenza zero possono essere introdotti nell'ecosistema Blockchain.
A partire da quali sono le caratteristiche fondamentali di una dimostrazione a conoscenza zero.
Proprietà delle prove a conoscenza zero
1. Completezza
Se l'affermazione è vera ed entrambi gli utenti seguono le regole religiosamente, il verificatore sarebbe convinto senza alcun aiuto esterno.
2. Solidità
Se l'affermazione è falsa, il verificatore non sarà convinto in nessuno scenario (anche se il prover dice che l'affermazione è vera per una piccola probabilità).
3. Conoscenza Zero
In entrambi i casi, il verificatore non sarà in grado di conoscere alcuna informazione oltre a quella che l'affermazione è vera o falsa.
Mentre vengono trattati i principi di ZKP , parliamo dei diversi tipi di ZKP in cui un appassionato di affari può investire.
Tipi di prove di conoscenza zero
1. Prova interattiva a conoscenza zero
In una dimostrazione interattiva a conoscenza zero , un dimostratore esegue una serie di azioni secondo il meccanismo della probabilità matematica per convincere il verificatore di un fatto particolare.
2. Prova non interattiva a conoscenza zero (NIZKP)
Come illustrato dal nome, la prova di conoscenza zero non interattiva non richiede un processo interattivo. Ciò significa che il verificatore può generare tutte le sfide contemporaneamente e i verificatori possono rispondere in seguito. Ciò limita la possibilità di collusione. Tuttavia, richiede macchine e software aggiuntivi per scoprire la sequenza degli esperimenti.
Nota: è possibile effettuare una transizione da ZKP non interattivo a interattivo.
Dove implementare la prova a conoscenza zero nel sistema Blockchain?
1. Messaggistica
Nella messaggistica, la crittografia end-to-end è fondamentale in modo che nessuno possa leggere il tuo messaggio privato oltre a quello con cui stai comunicando. Per garantire la sicurezza, le piattaforme di messaggistica chiedono agli utenti di verificare la propria identità sul server e viceversa.
Ma, con l'avvento di ZKP, saranno in grado di creare una fiducia end-to-end nel mondo della messaggistica senza trapelare alcuna informazione aggiuntiva. Questa è una delle principali applicazioni della prova a conoscenza zero nel mondo blockchain.
2. Autenticazione
La prova a conoscenza zero può anche facilitare la trasmissione di informazioni sensibili come le informazioni di autenticazione con una maggiore sicurezza. Può creare un canale sicuro per consentire agli utenti di utilizzare le proprie informazioni senza rivelarle. E in questo modo, evita la fuga di dati negli scenari peggiori.
3. Protezione dell'archiviazione
Un altro possibile caso d'uso delle prove a conoscenza zero (ZKP) è nel campo dell'utilità di archiviazione.
La prova a conoscenza zero viene fornita con un protocollo che non solo salvaguarda l'unità di archiviazione, ma anche le informazioni al suo interno. Inutile dire che anche i canali di accesso sono protetti per offrire un'esperienza senza interruzioni e sicura.
4. Invio di transazioni Blockchain private
Quando si parla di invio di transazioni blockchain private, è assolutamente importante tenerlo fuori dalla portata di terze parti. Ora, mentre i metodi tradizionali sono in qualche modo protettivi, hanno alcune scappatoie.
Questa è un'altra area in cui entra in gioco ZKP. Il concetto, se integrato in modo saggio, aiuta a rendere quasi impossibile hackerare o intercettare le transazioni blockchain private.
5. Documentazione complessa
Poiché la prova a conoscenza zero ha il potenziale per crittografare i dati in blocchi, consente di controllare determinati blocchi per fornire l'accesso a un particolare utente, limitando l'accesso per altri. In questo modo, il concetto protegge la complessa documentazione da coloro che non sono autorizzati a vederla.
6. Controllo del file system
Un altro punto in cui è possibile vedere un'efficace implementazione a prova di conoscenza zero è il file system.
Il concetto aggiunge diversi livelli di sicurezza a file, utenti e persino accessi, il che rende abbastanza difficile per l'hacking o la manipolazione dei dati archiviati.
7. Trasmissione di transazioni Blockchain private
La trasmissione di scambi privati di blockchain è uno degli avvisi più evidenti tra le varie eminenti esecuzioni di ZKP in blockchain. Le transazioni Private Blockchain dovrebbero essere protette da terze parti durante l'invio.
La preoccupazione principale nell'invio di transazioni blockchain private allude alle diverse scappatoie evidenti nelle strategie regolari. La potente integrazione di ZKP con le transazioni blockchain private può renderle versatili verso qualsiasi tipo di hacking o interferenza.
8. Democratizzazione della verifica del voto
L'esempio più ovvio di applicazione di ZKP con blockchain allude al loro ruolo democratico nel controllare i voti. Gli ZKP possono fornire risposte affidabili per il voto verificabile registrando i voti su una blockchain pubblica (come ethereum).
Successivamente, i processi di voto non avrebbero bisogno di alcuna conferma da parte di terzi oltre all'esclusione del requisito di restrizione. Le ZKP possono consentire agli elettori di dimostrare la loro idoneità a votare, in questo modo prevenendo l'esposizione dei loro dati personali sensibili. Allo stesso modo, gli elettori possono richiedere prove immutabili per l'esame del loro voto nel conteggio finale dei voti.
9. Sicurezza per le informazioni sensibili
Ultimo ma non meno importante, la prova di conoscenza zero perfeziona anche il modo in cui la tecnologia blockchain sta rinnovando le transazioni .
ZKP aggiunge un livello di sicurezza di fascia alta a ogni blocco contenente informazioni bancarie sensibili come i dettagli e la cronologia della carta di credito, in modo tale che le banche debbano manipolare solo i blocchi richiesti quando un utente richiede informazioni. Altri blocchi rimangono intatti e quindi protetti.
Per esempio
ZoKrates (un toolbox digitale) viene utilizzato da sviluppatori esperti per ideare e verificare ZKP tramite Solidity, un linguaggio di programmazione orientato agli oggetti che viene utilizzato per creare contratti intelligenti basati su Ethereum.
Aztec sta cercando di portare Ethereum a prova di conoscenza zero sulla rete Ethereum esistente sviluppando una pila di contratti intelligenti incentrati sulla privacy.
Quindi, questi erano alcuni dei casi d'uso della prova a conoscenza zero nei servizi di sviluppo blockchain . Per fare in modo che il tuo marchio sia presente sul mercato costruendo uno di questi, assumi una società di sviluppo di app blockchain .
E nel caso in cui sei confuso sulla sua implementazione nel mondo reale, controlla i seguenti progetti esistenti che operano con la convergenza di due.
Esempi reali di convergenza di prove di conoscenza zero e Blockchain
1. ZCash
Zcash è una piattaforma blockchain open source e senza autorizzazione che offre la funzionalità per mantenere le transazioni "trasparenti" e "schermate" secondo il requisito.
Nel primo caso, le transazioni sono regolate da un t-addr, proprio come le transazioni bitcoin. Mentre in quest'ultimo caso viene utilizzata una prova a conoscenza zero chiamata zk-SNARKs e le transazioni sono controllate da un z-addr.
È il primo caso d'uso di criptovaluta e applicazione di ZKP nel mondo delle criptovalute. È la prima criptovaluta a prova di conoscenza zero a implementare la tecnologia.
2. ING
ING è una banca con sede nei Paesi Bassi che ha introdotto la propria blockchain a conoscenza zero. Tuttavia, hanno modificato il loro sistema a conoscenza zero per renderlo una prova di gamma di conoscenza a conoscenza zero per ridurre la necessità di potenza di calcolo.
In questo modo, hanno preparato il loro sistema a conoscenza zero per elevare l' impatto della blockchain nel fintech .
3. ZCoin
L'azienda utilizza il protocollo Zerocoin, che si basa sulla prova a conoscenza zero, per migliorare la sicurezza e l'anonimato nel processo di transazione. Tuttavia, ciò che lo distingue dagli altri progetti che lavorano su questo concetto è che offre anche scalabilità.
Sebbene vari attori internazionali abbiano iniziato a mostrare interesse nell'implementazione del concetto di prova a conoscenza zero nella blockchain, il ritmo di adozione è troppo lento. E il motivo principale alla base è la seguente serie di sfide associate all'aggiunta di ZKP all'ambiente blockchain.
Sfide che potresti incontrare durante l'integrazione di ZKP nel tuo progetto Blockchain
1. Assenza di standard
Poiché la stessa tecnologia blockchain è nella sua fase iniziale di adozione, non esistono standard, sistemi e linguaggi omogenei che consentano agli sviluppatori di app e ai potenziali clienti di interagire con il concetto di ZKP e sfruttarne il potenziale in modo efficiente.
2. Scalabilità
Un'altra sfida che limita l'adozione della prova a conoscenza zero nell'ambiente blockchain è la scalabilità, a condizione che tali algoritmi richiedano un'elevata capacità di calcolo per operare ad alto livello.
Avvolgendo
Ora che il concetto di ZKP e il suo ambito nel dominio Blockchain (insieme agli esempi di vita reale) ti è chiaro, ci aspettiamo di trovarti a investire nell'applicazione più ampia del concetto mentre entri nel mondo decentralizzato.
Ma, se hai ancora domande, connettiti con i nostri consulenti Blockchain o con i nostri esperti nei servizi di sviluppo di app blockchain negli Stati Uniti.