Conoscenza Completa

Jan 16 2023
di James Austgen, Kushal Babel, Vitalik Buterin, Phil Daian, Ari Juels e Mahimna Kelkar 'In questa vita, non vogliamo altro che Fatti, signore; nient'altro che fatti!' — Charles Dickens, Hard Times In un documento che abbiamo pubblicato oggi, introduciamo una nuova nozione crittografica che chiamiamo prove di conoscenza completa (CK). Segnaliamo anche un prototipo che offre un percorso per rendere CK pratico per l'utilizzo con gli smartphone.

di James Austgen, Kushal Babel, Vitalik Buterin, Phil Daian, Ari Juels e Mahimna Kelkar

«In questa vita, non vogliamo altro che Fatti, signore; nient'altro che fatti!'

— Charles Dickens, Tempi difficili

In un documento che abbiamo pubblicato oggi , introduciamo una nuova nozione crittografica che chiamiamo prove di conoscenza completa (CK). Segnaliamo anche un prototipo che offre un percorso per rendere CK pratico per l'utilizzo con gli smartphone.

Le prove di conoscenza, come suggerisce il nome, consentono a una parte, ad esempio Alice, di convincere un'altra parte, ad esempio Bob, che conosce un particolare segreto, come una chiave privata SK . Le firme digitali ne sono un esempio. Considera una transazione di criptovaluta T creata da Alice che spende fondi dal suo indirizzo A . Per essere valido, T deve essere firmato digitalmente con la chiave privata valida SK per A . La firma digitale qui prova che Alice, in quanto creatrice di T , conosce la chiave SK . È questa prova di conoscenza di SK che rende valida la transazione: in un sistema di criptovaluta, il proprietario dell'indirizzo Aè per definizione chi conosce SK .

Le prove di conoscenza sono un pilastro della progettazione del sistema crittografico. Si scopre, tuttavia, che i sistemi di prova della conoscenza esistenti hanno un serio limite: Alice potrebbe essere in grado di creare una prova convincente che conosce SK , ma potrebbe ancora non saperlo veramente .

Ecco un'analogia. Supponiamo che Mallory voglia apparire come concorrente in Jeopardy . Fa un'intervista con l'ospite dello spettacolo (Mayim Bialik). Mallory sa che durante l'intervista riceverà domande sulle capitali degli stati degli Stati Uniti, che non ha mai imparato a scuola. (Era impegnata a lanciare NFT durante le lezioni di geografia.) Quindi decide di imbrogliare. L'amica di Mallory, Alice, conosce tutte le capitali degli stati nella metà orientale degli Stati Uniti, mentre il suo amico Bob conosce quelle dell'ovest. Mallory nasconde quindi un dispositivo di comunicazione wireless in ciascun orecchio. Quello nel suo orecchio sinistro comunica con Alice. Quello nel suo orecchio destro comunica con Bob. Grazie all'inganno di Mallory, quando durante la sua intervista le vengono chieste le capitali di vari stati americani, risponde sempre correttamente.

Ma Mallory conosce tutte le capitali degli Stati Uniti? Chiaramente no. Alice o Bob? La risposta è ancora no. Possiamo forse dire che Alice e Bob insieme conoscono tutte le capitali degli Stati Uniti. Ma supponiamo che Alice sia stranamente superstiziosa e si rifiuti di rispondere alle domande della capitale il venerdì. Possiamo ancora dire che Alice e Bob insieme conoscono tutte le capitali degli Stati Uniti? Sì e no. La conoscenza esiste nelle teste di Alice e Bob, ma non è necessariamente possibile estrarla come desiderato . Se Mallory fa l' intervista a Jeopardy di venerdì, è nei guai.

La conoscenza completa affronta una lacuna di questo tipo in ciò che significa avere conoscenza. Nella nostra analogia, il rifiuto di Alice di rispondere alle domande di venerdì è una restrizione nell'accesso alla conoscenza che chiamiamo ingombro. Per spiegare dove le prove di conoscenza esistenti in crittografia falliscono, è utile iniziare con alcuni esempi potenzialmente problematici di ingombro di chiavi segrete in particolare.

Il problema dell'ingombro

Esistono due diverse tecnologie che possono ostacolare i segreti: ambienti di esecuzione fidati (TEE) e calcolo multipartitico sicuro (MPC).

I TEE sono ambienti computazionali che assomigliano a scatole nere: il loro stato interno è opaco e resistente alle manomissioni. Utilizzando hardware o software, rafforzano sia l' integrità che la privacy delle applicazioni in esecuzione, fornendo protezione contro la manomissione e l'osservazione anche da parte del proprietario della stessa macchina su cui è in esecuzione il codice. Esempi di TEE includono enclavi (ad es. ARM Trustzone) su dispositivi mobili e Intel Software Guard eXtensions (SGX), disponibile su alcuni server cloud.

D'altra parte, MPC è un approccio algoritmico per raggiungere più o meno gli stessi obiettivi di sicurezza. Divide i segreti e il calcolo tra una raccolta di server spesso chiamata comitato. La sicurezza di MPC si basa su un quorum di server nel comitato (ad esempio, la maggioranza) che si comporta correttamente.

Poiché i TEE sono oggi molto più pratici e diffusi rispetto a MPC, ci concentreremo sui TEE nei seguenti esempi, a partire da un attacco basato su TEE ai sistemi di voto blockchain. Ecco un esempio che coinvolge un attacco ai sistemi di voto.

Il problema della corruzione forte e furtiva in questo esempio riguarda non solo gli schemi di voto blockchain progettati in modo ingenuo, ma anche quelli specificamente progettati per resistere alla corruzione, come la Minimal Anti-Collusion Infrastructure (MACI) .

Ancora peggio, un TEE può incentivare e far crescere furtivamente una comunità di utenti che montano un attacco unificato contro un protocollo, un concetto che abbiamo precedentemente soprannominato Dark DAO . Tali attacchi potrebbero comportare non solo la manomissione dei voti, ma anche la manipolazione dei prezzi delle attività e possibilmente l'attacco ai sistemi off-chain .

Ciò che è particolarmente dannoso è che se Alice invia una transazione firmata a uno smart contract utilizzando una chiave ingombrata SK , non c'è modo per il contratto di dirlo. La transazione di Alice sembrerà identica a quella creata con una chiave libera. Quindi sembra che sia semplicemente impossibile prevenire attacchi di corruzione del tipo illustrato nel nostro esempio.

Ma lo è davvero?

Garantire una conoscenza completa

Si scopre che esiste un modo per garantire che una chiave SK sia libera, in particolare che qualcuno abbia accesso diretto a SK . Informalmente, questo è ciò che intendiamo per Conoscenza Completa. L'effetto di CK è che gli schemi di corruzione come quello nel nostro esempio non funzioneranno, perché non c'è modo per un utente malintenzionato come Mallory di impedire a un utente di utilizzare la sua chiave come preferisce.

Ci sono due approcci di base per far rispettare CK. Entrambi consentono la generazione di quelle che chiamiamo prove di conoscenza completa (PoCK), e in particolare quelle che sono a conoscenza zero , cioè non rivelano SK:

  1. L' approccio della lotta al fuoco con il fuoco

La maggior parte degli utenti dispone di TEE sui propri telefoni cellulari. Mostriamo nel nostro documento come possono usarli in uno schema CK per votare o qualsiasi altra applicazione.

Come discutiamo nel nostro documento, tuttavia, ci sono alcune limitazioni tecniche ai TEE, in particolare quelle nei telefoni cellulari. Consideriamo quindi anche un secondo approccio.

2. Un approccio basato sulla prova del lavoro

Questo approccio è leggermente controintuitivo. Implica l'utilizzo di un ASIC di mining, ovvero un impianto hardware di mining proof-of-work, come il tipo utilizzato per Bitcoin. Gli ASIC hanno due belle proprietà ai fini di CK. Possono eseguire determinati calcoli, in particolare l'hashing , molto più velocemente delle normali CPU o GPU, nell'ordine di un milione di volte più veloci di una CPU all'avanguardia! E non includono i TEE.²

Attingendo e modificando le tecniche della letteratura sulla teoria delle prove della conoscenza, abbiamo progettato un protocollo che prevede l'uso di un ASIC per il mining in un modo che coinvolge SK (ma lo nasconde abilmente). Questo protocollo genera una prova che SK è stato inviato all'ASIC, cioè un PoCK. Poiché l'ASIC non ha un TEE, ciò significa che SK è effettivamente esposto all'utente dell'ASIC. Questa proprietà è essenzialmente equivalente a ciò che viene fatto dalla speciale applicazione TEE di RBU: sputare SK direttamente all'utente. Poiché l'ASIC è molto più veloce delle piattaforme che supportano i TEE, non c'è modo di generare un PoCK equivalente utilizzando un TEE.

Il nostro documento mostra sperimentalmente che anche utilizzando un ASIC economico (circa $ 200), obsoleto (circa 2017), è possibile implementare un PoCK ad alta sicurezza.

Applicazioni di CK oltre la resistenza alla corruzione

Mentre inizialmente abbiamo progettato CK per affrontare la minaccia di corruzione negli schemi di voto, ci sono molte altre applicazioni. CK può aiutare a prevenire l'ingombro delle credenziali di identità decentralizzate, ad esempio, l'attestazione che un utente è stato sottoposto a diligenza antiriciclaggio. Ciò è essenziale per prevenire i molti tipi di malizia possibili se gli utenti possono affittare le proprie credenziali, ad esempio un mercato di credenziali di identità per aggirare le sanzioni.

CK ha anche interessanti applicazioni nei mercati NFT. Ad esempio, può aiutare a garantire l'esecuzione dei pagamenti delle royalty per gli artisti. Oggi, i diritti d'autore vengono imposti solo off-chain, cioè volontariamente , dai mercati NFT. In linea di principio potrebbero invece essere applicati on-chain in uno smart contract, nel qual caso l'applicazione sarebbe obbligatoria. Uno dei motivi per cui i pagamenti obbligatori delle royalty non sono considerati una buona pratica è che sarebbe ingiusto per gli utenti che trasferiscono NFT tra i propri indirizzi dover pagare le royalty. Il problema è che non c'è modo di distinguere tra un indirizzo del mittente S e l'indirizzo del destinatario R appartenenti a un singolo utente e gli indirizzi S e Rappartenenti a utenti distinti. Pertanto non c'è modo di distinguere tra un trasferimento per utente singolo e un cambio di proprietà di un NFT.

Con CK, invece, è possibile distinguere. Un contratto di mercato NFT potrebbe richiedere per i trasferimenti esenti da royalty che un PoCK venga applicato contemporaneamente a R e S , dimostrando che una singola entità li conosce entrambi . Questa proprietà è un'approssimazione abbastanza buona per la proprietà singola. Almeno crediamo che questo approccio basato su CK potrebbe disincentivare fortemente l'evasione delle royalty.³

Un'altra interessante applicazione di CK agli NFT è una nozione che chiamiamo Atomic NFT . È comune frazionare gli NFT costosi, cioè suddividere la loro proprietà in piccoli pezzi, come è successo ad esempio con il Doge NFT .

Un certo numero di artisti con cui abbiamo parlato, tuttavia, preferisce che le loro opere siano possedute e apprezzate da un singolo individuo. Gli NFT atomici offrono un modo per creare NFT che rispettino questo desiderio e garantiscano la proprietà esclusiva. Per dimostrare queste capacità, abbiamo coniato la nostra piccola collezione di Atomic NFT, mostrata qui.

Conclusione

Le prove della conoscenza sono un concetto ben studiato e vecchio di decenni in crittografia. Ma nuove potenti tecnologie (più o meno) come TEE e MPC minacciano di ribaltare il classico panorama della prova della conoscenza attraverso l' ingombro dei segreti. CK offre un modo per prevenire tale ingombro e ripristinare l'idea intuitiva di conoscenza attribuibile a una singola entità o individuo. Oltre a offrire un rimedio agli attacchi basati sull'ingombro, come la corruzione nei sistemi di voto, offre anche una gamma di nuove applicazioni.

Crediamo che CK possa essere pratico. Abbiamo implementato un sistema basato su ASIC end-to-end con un contratto intelligente che verifica le prove PoCK. Il nostro sistema prototipo include un registro di indirizzi basato su contratto intelligente che si è dimostrato conforme a CK. Abbiamo anche implementato un sistema prototipo utilizzando TEE basati su telefoni cellulari. I nostri prototipi non sono ancora pronti per la prima serata, ma crediamo che ci sia un percorso per l'implementazione pratica della produzione. Puoi trovare una versione open source dei nostri strumenti qui . Diamo il benvenuto alla collaborazione di progetti interessati a realizzarlo.

¹ Fortunatamente, i TEE non possono essere nidificati, quindi non esiste un modo intelligente per Mallory di avvolgere l'applicazione TEE di RBU e quindi ingombrare le chiavi degli utenti.

² La maggior parte degli ASIC ha pochissima sicurezza integrata. Non supportano nemmeno la rete crittografata, come abbiamo scoperto quando il nostro ASIC è stato apparentemente compromesso da un hacker remoto diverse volte nel corso dei nostri esperimenti.

³ C'è un avvertimento qui. Come discutiamo nel nostro articolo, se i meccanismi di recupero sociale diventassero comuni, le prove CK della conoscenza simultanea delle chiavi non funzionerebbero più.