Sia nella vita reale che nel mondo digitale, spesso vogliamo dimostrare le cose agli altri. Prima di entrare in un edificio per uffici, i dipendenti di solito forniscono un tipo di documento d'identità prima di entrare.
Quando gli utenti tentano di accedere a un'app come Facebook o Twitter, questi servizi devono prima chiedere all'utente di accedere con una password e occasionalmente un passcode monouso (OTP) viene inviato al proprio dispositivo mobile.
Uno svantaggio di fornire prove è che spesso diamo altri tipi di informazioni. Fornire una password a un sito Web significa comunque che il sito Web stesso conserva una copia della password con hash nei suoi server. Se qualcuno dovesse hackerare lo scanner dell'ID dei dipendenti dell'edificio degli uffici, potrebbe essere in grado di ottenere le chiavi private di tutti.
Le prove a conoscenza zero o ZKP forniscono un modo per convalidare un'identità o una transazione senza dover fornire informazioni aggiuntive. A causa delle sue applicazioni in crittografia, le ZKP sono state adattate da blockchains per creare protocolli di validazione sicuri e scalabili.
Cosa sono le prove a conoscenza zero?
Le prove a conoscenza zero furono proposte per la prima volta dai ricercatori del MIT Silvio Micali, Charles Rackoff e Shafi Goldwasser nel 1985 nel loro articolo “La complessità della conoscenza dei sistemi di prova interattivi”
Questo articolo ha introdotto il concetto di complessità della conoscenza. Questo si riferisce alla quantità di conoscenza su una prova trasferita dal verificatore al verificatore. Le prove a conoscenza zero mirano a consentire a una parte di dimostrare che una specifica affermazione è vera per un'altra parte senza dover divulgare altre informazioni.
Gli ZKP possono essere utilizzati come alternativa sicura agli attuali sistemi di autenticazione e possono anche essere aggiunti ai protocolli blockchain per mantenere le transazioni private.
Come funzionano gli ZKP?
Esempio del mondo reale
Per illustrare come funzionano le dimostrazioni a conoscenza zero, diamo un'occhiata a un esempio astratto di ZKP.
Diciamo che hai un amico daltonico rosso-verde. Hai con te due palline identiche che differiscono solo per il colore: una rossa e una verde. Al tuo amico sembrano identici, ma come persona senza daltonismo, puoi facilmente distinguerli.
È possibile per te dimostrare al tuo amico che sono di un colore diverso senza rivelare quale pallina è rossa o verde?
C'è, infatti, un modo per dimostrarlo senza rivelare i colori delle palline. Per prima cosa, devi lasciare che il tuo amico si metta entrambe le palle dietro la schiena e gli dica di mostrare qualsiasi palla e nasconderla di nuovo. Quindi, di' al tuo amico che ha la possibilità di mostrare di nuovo la stessa palla o scambiarla con l'altra.
Ogni volta che viene mostrata una nuova palla, puoi dirgli se ha cambiato palla o meno. Se continui a indovinare la chiamata giusta, diventa sempre più probabile che le palline siano di colore diverso. Il tuo amico dovrebbe ora essere convinto che le palline sono di colore diverso senza dovergli dire quali palline hanno quale colore.
Applicazioni pratiche
La maggior parte degli esempi pratici di dimostrazioni a conoscenza zero si dividono in due tipi.
Innanzitutto, gli ZKP possono essere utilizzati durante la progettazione dei protocolli. Possiamo garantire che parti diverse non possano imbrogliare o sfruttare il protocollo. In secondo luogo, le ZKP possono essere utilizzate per l'identificazione.
Ad esempio, possiamo utilizzare ZKP per accedere a un'applicazione Web in modo sicuro senza dover rivelare la password stessa.
Diamo un'occhiata ad alcuni esempi di come possiamo usare dimostrazioni a conoscenza zero.
Voto elettronico
Un'applicazione comunemente discussa delle ZKP è il loro possibile ruolo nel voto online. Diciamo che abbiamo un referendum imminente in cui gli utenti possono votare su una proposta di politica. Ogni elettore idoneo può votare 1 o 0 sulla scheda.
Utilizzando ZKP, gli elettori possono dimostrare il loro diritto a votare senza rivelare la propria identità. Ciò garantisce che ogni voto sarà veramente anonimo. Un ulteriore ZKP verrà utilizzato anche per dimostrare che il voto di un particolare utente fa parte del conteggio finale dei voti.
Per quanto riguarda il contenuto stesso delle schede, il sistema di voto può anche generare una prova a conoscenza zero che ogni scheda contiene un 1 o uno 0. Ciò si ottiene senza dover conoscere il contenuto della scheda stessa.
Privacy Blockchain
Blockchain come Bitcoin ed Ethereum non supportano nativamente le transazioni private. Finché il tuo portafoglio Bitcoin è pubblico, chiunque può andare su un block explorer come Blockstream per vedere tutte le transazioni di cui fa parte il portafoglio.
Nel frattempo, l'utilizzo di un servizio come una banca o servizi di pagamento come Cash App o Venmo ti dà la possibilità di effettuare transazioni in privato. Questa comodità, tuttavia, ha il costo di rivelare le tue informazioni al servizio centralizzato.
Possiamo combinare l'anonimato con il decentramento aggiungendo ZKP al protocollo blockchain. Le criptovalute come ZCash utilizzano ZKP per creare transazioni private che consentono ai titolari di monete di mantenere l'anonimato. Molte di queste criptovalute utilizzano un tipo di ZKP noto come zk-SNARK.
Questi ZKP non richiedono alcuna interazione tra il verificatore e il verificatore.
Rollup a conoscenza zero
I rollup ZK sono una soluzione di scalabilità che consente di verificare istantaneamente le transazioni off-chain e con commissioni gas minime. Sono un modo per combinare un gran numero di transazioni di livello 2 e inviarle al protocollo di livello 1.
Oltre a fornire privacy, ZKPs consente il ridimensionamento di sistemi complessi. I protocolli Blockchain possono utilizzare ZKP per dimostrare che gli utenti hanno regolato le transazioni corrette, hanno il saldo appropriato e così via. Queste soluzioni sicure ma scalabili sono possibili solo attraverso le prove matematiche eseguite fuori catena in ZKP.
Protocolli come Loopring utilizzano prove a conoscenza zero per aiutare a elaborare le transazioni fuori catena senza dover compromettere la sicurezza.
Vantaggi delle prove a conoscenza zero
- Le ZKP sostituiscono forme di autenticazione meno affidabili come PIN o carte d'identità
- ZKPS aumenta la scalabilità delle blockchain
- L'implementazione di ZKP richiede metodi di crittografia semplici
- L'uso di ZKPS può rendere i sistemi più sicuri non richiedendo la memorizzazione di informazioni non necessarie nel sistema.
Conclusione
La privacy dei dati è già un problema importante sia nei sistemi centralizzati che decentralizzati. Le prove a conoscenza zero forniscono un modo per diverse parti di provare o convalidare transazioni e identità senza dover rivelare tali transazioni o identità.
Man mano che la tecnologia blockchain diventa più ampiamente utilizzata, l'adozione di ZKP per gestire la verifica in modo sicuro sarà la chiave per problemi di scalabilità.
Lascia un Commento