Zero-Knowledge Proofs e Privacy nelle dVPN | Web3 Privacy
TL;DR
Il problema della fiducia nelle VPN tradizionali
Vi siete mai chiesti perché affidiamo l'intera nostra vita digitale a un fornitore di VPN sperando semplicemente che non sbirci? È onestamente assurdo che nel 2025 la nostra miglior difesa per la privacy sia ancora una "promessa solenne" fatta da un'azienda centralizzata.
La maggior parte dei servizi tradizionali sbandiera politiche "no-log", ma come esperto di reti, vedo la realtà a livello di pacchetti. Anche se non salvano la cronologia di navigazione, vedono comunque il vostro indirizzo IP reale e i dati temporali nel momento in cui vi connettete.
- Punti di vulnerabilità centralizzati: I provider tradizionali operano su cluster che controllano direttamente. Se un governo presenta un mandato o un hacker ottiene l'accesso root, i vostri dati sono lì, esposti nella memoria RAM.
- Il divario di fiducia: Dovete fidarvi della loro parola. Uno studio del 2024 di ExpressVPN sottolinea che gli utenti devono fondamentalmente fare affidamento sull'onestà del provider, poiché non esiste un modo tecnico per verificare cosa accada realmente nel loro backend.
- Leggi sulla conservazione dei dati: In molte giurisdizioni, gli ISP e le società di VPN sono obbligati per legge a conservare determinati metadati, rendendo il "no-log" legalmente impossibile in quelle regioni.
Ho passato anni ad analizzare la sorveglianza degli ISP e il problema è sempre l'intermediario. Se il server conosce la vostra identità per autenticarvi, quell'informazione diventa una responsabilità critica.
Secondo Wikipedia, le Zero-Knowledge Proofs (ZKP) sono state concepite nel lontano 1985 proprio per risolvere questo paradosso: dimostrare la propria identità senza rivelare segreti. Finalmente stiamo assistendo al passaggio di questa tecnologia dai documenti accademici al codice reale.
In ogni caso, il vero problema non sono solo i malintenzionati; è l'architettura stessa. Abbiamo bisogno di un sistema in cui la rete possa verificare che abbiate pagato o che abbiate i permessi di accesso senza sapere effettivamente chi siate "voi".
Nel prossimo paragrafo, vedremo come le ZKP ribaltino completamente questa situazione per risolvere il problema della fiducia.
Cosa sono esattamente le Zero-Knowledge Proof (ZKP)?
Se avete mai provato a spiegare la crittografia a qualcuno che non sia un "esperto di reti", conoscete bene la difficoltà. Eppure, le prove a conoscenza zero (ZKP) sono in realtà piuttosto intuitive, se per un attimo smettiamo di pensare ai numeri primi e immaginiamo una caverna magica.
Il modo classico per spiegarlo è la storia della caverna di Ali Babà. Immaginate una caverna circolare con due percorsi, A e B, che si ricongiungono in fondo davanti a una porta magica. Peggy conosce la parola segreta per aprire quella porta; Victor vuole la prova che lei non stia mentendo, ma Peggy non ha alcuna intenzione di rivelargli la password.
Per dimostrarlo, Peggy entra nella caverna mentre Victor aspetta fuori. Victor poi urla: "Esci dal percorso A!". Se Peggy si trova davanti alla porta, la apre e appare da quel lato. Se ripetono l'operazione per 20 volte e lei non sbaglia mai, la matematica ci dice che quasi certamente conosce la parola magica. Questo funziona perché ogni round superato dimezza le probabilità che sia stata solo fortuna; dopo 20 round, le probabilità che sia un imbroglio sono praticamente una su un milione. Questo è ciò che nel mondo della matematica definiamo "completezza" (soundness).
Come sottolineato da Concordium, si tratta del passaggio dal "condividere dati" al "condividere prove". Affinché un protocollo possa essere considerato effettivamente una ZKP, deve soddisfare tre requisiti tecnici:
- Completezza (Completeness): Se l'affermazione è vera, un "prover" (dimostratore) onesto convincerà sempre il "verifier" (verificatore). La logica non ammette "falsi negativi".
- Correttezza (Soundness): Se Peggy mente, non dovrebbe essere in grado di ingannare Victor se non per una probabilità infinitesimale e astronomica. Secondo il NIST, questa viene spesso chiamata "ZKP di conoscenza", dove si dimostra di possedere il "testimone" (il segreto).
- Conoscenza Zero (Zero-knowledge): Questo è il punto cruciale. Victor non impara nulla sulla password stessa, ma ottiene solo la certezza che Peggy la possieda.
Nel mio settore, consideriamo solitamente l'identità come una potenziale vulnerabilità. Se un nodo dVPN conosce la tua chiave pubblica, quella è una traccia a livello di pacchetto. La tecnologia ZKP ribalta questo paradigma.
Un articolo del 2024 di Concordium evidenzia come, per le imprese, la privacy stia diventando un "requisito di base" piuttosto che una semplice funzionalità aggiuntiva. Che si tratti di dimostrare di essere maggiorenni per un sito di e-commerce o di verificare una cartella clinica, le ZKP ci permettono di gestire la logica del processo senza l'esposizione dei dati sensibili.
Vediamo ora come tutto questo riesca concretamente a mantenere nascosto il vostro indirizzo IP all'interno di una rete decentralizzata.
Applicare le ZKP all'ecosistema dVPN
Ma come si passa concretamente dalla matematica della "caverna magica" all'integrazione in una dVPN? Un conto è parlarne sulla carta, un altro è gestire pacchetti di dati grezzi che colpiscono un nodo: lì le cose si complicano rapidamente. In una rete standard, il server solitamente verifica l'identità tramite un database, il che rappresenta un enorme segnale d'allarme per la privacy.
L'obiettivo qui è l'autenticazione anonima. Vogliamo che il nodo sappia che l'utente ha il diritto di utilizzare la larghezza di banda senza però conoscere l'identità del soggetto o il suo storico dei pagamenti.
La maggior parte dei progetti dVPN moderni punta sugli zk-SNARK (Succinct Non-Interactive Arguments of Knowledge). Come abbiamo visto in precedenza, questi protocolli sono ideali perché non richiedono un continuo scambio di comunicazioni tra le parti.
- Prove di Abbonamento: È possibile dimostrare sulla blockchain di aver pagato un piano mensile. Il nodo verifica una "prova" che il wallet appartenga al gruppo degli utenti "paganti" senza mai visualizzare l'indirizzo del wallet stesso.
- Controllo degli Accessi: Invece di usare username e password, che un ISP potrebbe intercettare o un nodo potrebbe registrare, si invia una prova crittografica. È come mostrare un badge "verificato" senza dover esibire la carta d'identità.
- Reputazione dei Nodi: Anche i nodi possono utilizzare le ZKP per dimostrare di non essere malevoli — ad esempio provando di non aver manomesso i pacchetti — senza dover rivelare l'architettura interna del proprio server.
In una rete P2P, l'indirizzo IP è sostanzialmente l'indirizzo di casa dell'utente. Se l'operatore di un nodo fosse malintenzionato, potrebbe loggare ogni IP che si connette. Utilizzando le ZKP per l'handshake, separiamo l'identità dalla connessione.
Secondo Cloudflare, l'azienda ha iniziato a utilizzare le "one-out-of-many proofs" già nel 2021 per l'attestazione web privata. Questo sistema permette essenzialmente a un utente di dimostrare di appartenere a un gruppo di utenti autorizzati (come gli "abbonati paganti") senza rivelare quale utente specifico sia. Se un colosso del genere utilizza questa tecnologia per verificare l'hardware senza esporre dati, è certo che le dVPN stiano facendo lo stesso per le sessioni utente.
Progetti come SquirrelVPN stanno implementando questi handshake basati su zk-SNARK per garantire che persino il nodo a cui ci si connette non abbia la minima idea di chi sia effettivamente l'utente.
Nel prossimo paragrafo vedremo come queste prove rendano sostenibile il lato economico della condivisione della larghezza di banda (bandwidth sharing) senza compromettere la sicurezza di nessuno.
Bandwidth Mining e Ricompense Tokenizzate
Potete immaginare il "bandwidth mining" come l'Airbnb di Internet. In pratica, state permettendo a degli sconosciuti di attraversare un corridoio digitale della vostra rete domestica e, in cambio, venite pagati in token. Tuttavia, senza l'integrazione degli Zero-Knowledge Proofs (ZKP), quegli sconosciuti — o la rete stessa — potrebbero vedere molto più di quanto dovrebbero di ciò che accade in casa vostra.
In una configurazione Peer-to-Peer (P2P), dobbiamo dimostrare due cose fondamentali: che il nodo abbia effettivamente instradato i dati e che l'utente possieda i crediti necessari per pagare il servizio. Storicamente, questo richiedeva che la rete tracciasse ogni singolo pacchetto, causando una massiccia violazione della privacy.
- Proof of Routing (Prova di Instradamento): Utilizziamo gli ZKP per verificare che un nodo abbia gestito un volume specifico di traffico. Il nodo fornisce alla blockchain una "prova" che corrisponde alla "ricevuta" dell'utente, ma nessuna delle due parti rivela il carico utile (payload) effettivo o la destinazione dei pacchetti.
- Incentivi Tokenizzati: Gli operatori guadagnano ricompense basate su parametri verificati di uptime e throughput (capacità di trasmissione). Poiché la verifica avviene in modalità zero-knowledge, la rete non ha bisogno di conoscere l'identità reale dell'operatore per accreditare i token nel suo wallet.
- Scambio Equo: Come evidenziato dai principi crittografici standard, questi protocolli garantiscono che un "prover" (il nodo) possa convincere il "verifier" (la rete) che il lavoro è stato svolto correttamente, senza però rivelare i dati sensibili contenuti in quel lavoro.
In tutta onestà, avendo analizzato a fondo i sistemi di sorveglianza degli ISP, so per certo che se non si rende anonimo il livello dei pagamenti, la privacy rimane un'illusione. Se l'indirizzo del vostro wallet è collegato all'IP di casa e ai log del traffico, la componente "VPN" di una dVPN diventa praticamente inutile.
Nel prossimo modulo, vedremo come evitare che la rete subisca rallentamenti durante l'esecuzione di questi complessi calcoli matematici — analizzeremo cioè la parte "Succinct" (concisa) di questo puzzle tecnologico.
Gli ostacoli tecnici delle ZKP nel networking
Sia chiaro, adoro la matematica che sta alla base delle prove a conoscenza zero (ZKP), ma dobbiamo essere realistici: integrare questa tecnologia in una rete live è un vero grattacapo. Un conto è dimostrare di conoscere un segreto su una lavagna, un altro è farlo mentre un utente cerca di guardare un video in streaming 4K attraverso un nodo decentralizzato.
La componente "Succinct" (concisa) degli zk-SNARK dovrebbe rendere tutto più veloce, ma la generazione di tali prove consuma ancora cicli di CPU in modo spropositato. Se il tuo smartphone deve compiere uno sforzo computazionale enorme solo per autenticare un pacchetto, la batteria si esaurirà in un attimo e la latenza salirà alle stelle.
In base alla mia esperienza nell'analisi a livello di pacchetti, ogni millisecondo è vitale per il routing. Quando si aggiungono le ZKP, si introduce essenzialmente una "tassa computazionale" su ogni handshake.
- Sovraccarico della CPU (CPU Overhead): Generare una prova è molto più oneroso che verificarla. La maggior parte degli utenti di dVPN utilizza dispositivi mobili o router economici che non sono esattamente dei supercomputer; di conseguenza, il lato "prover" (colui che genera la prova) diventa un collo di bottiglia.
- Bug nei circuiti: Se la logica matematica non è perfetta, si ottengono "circuiti sotto-vincolati" (under-constrained circuits). Report sulla sicurezza di aziende come Trail of Bits hanno evidenziato che la stragrande maggioranza dei bug negli SNARK deriva da queste lacune logiche, che potrebbero permettere a un hacker di falsificare una prova.
- Lag di rete: Le prove interattive richiedono uno scambio continuo di dati. Anche con quelle non interattive, la dimensione stessa di alcune prove può rappresentare un problema. Ad esempio, gli zk-STARK sono un tipo diverso di ZKP che non richiede un "trusted setup" (risultando quindi più sicuri), ma presentano dimensioni della prova molto più elevate che possono intasare proprio la larghezza di banda che si sta cercando di preservare.
Onestamente, la maggior parte degli sviluppatori sta ancora cercando quel punto di equilibrio ideale, la cosiddetta "zona Goldilocks", dove la sicurezza è ferrea ma la velocità di navigazione non ricorda la connessione dial-up del 1995.
Ad ogni modo, nel prossimo paragrafo vedremo come il settore stia effettivamente cercando di risolvere questo problema di lag, per permetterci finalmente di avere la massima privacy senza rinunciare alle prestazioni.
Il futuro di un'Internet resistente alla censura
Quindi, qual è l'obiettivo finale di tutta questa matematica? In tutta onestà, stiamo assistendo a un cambio di paradigma totale, in cui la "privacy by design" non è più solo uno slogan di marketing, ma una realtà codificata a livello di rete.
Mentre ci muoviamo verso le DePIN (Decentralized Physical Infrastructure Networks), il vecchio modello che prevedeva di consegnare i propri documenti a un provider VPN centralizzato sembrerà antico quanto la connessione dial-up. Il futuro ruota attorno alla "divulgazione selettiva": dimostrare esattamente ciò che è necessario e nulla di più.
La prossima era di Internet non sarà definita da chi raccoglie più dati, ma da chi capirà come averne meno bisogno. È qui che entrano in gioco le zkVM (macchine virtuali a conoscenza zero). Queste ci permettono di eseguire logiche complesse — come verificare se un utente si trova in una regione soggetta a restrizioni o se possiede un abbonamento valido — off-chain, pubblicando poi solo una minuscola prova crittografica.
- Scalabilità della Privacy: Strumenti come RISC Zero o Succinct Labs permettono agli sviluppatori di scrivere logiche ZKP in linguaggi comuni come Rust. Ciò significa che le dVPN possono scalare senza quella massiccia "tassa computazionale" di cui abbiamo parlato prima.
- Resistenza alla Censura: Quando un nodo non sa chi sei né a cosa stai accedendo, diventa molto più difficile per un governo costringere quel nodo a bloccarti.
- Adozione Enterprise: Come accennato in precedenza da Concordium, le aziende iniziano a vedere i dati come una responsabilità civile. Se non possiedono i tuoi dati, non possono perderli in caso di violazione della sicurezza.
Ad ogni modo, la tecnologia è ancora agli inizi, ma la direzione è tracciata. Stiamo costruendo un'Internet dove non devi chiedere il permesso per la tua privacy: è semplicemente un'impostazione predefinita a livello di protocollo. Ci vediamo al prossimo approfondimento tecnico.