
Riflettendo sulla privacy nell'ambiente delle criptovalute, si può notare che le criptovalute sono spesso presentate come mezzi di pagamento anonimi, sebbene ci sia anche l'affermazione che tracciare il movimento dei fondi digitali sia molto più facile che tracciare il movimento delle valute fiat come il dollaro. Per riconciliare queste due affermazioni, è innanzitutto necessario comprendere cosa significhi privacy nel mondo delle criptovalute. Rispondere a questa domanda non è così semplice come sembra a prima vista, perché il termine «privacy» nel campo delle tecnologie blockchain può denotare una moltitudine di fenomeni diversi. Allo stesso tempo, comprenderlo è estremamente importante per sviluppatori, investitori e altri partecipanti al sistema cripto-economico. Cerchiamo di fare chiarezza su questa questione.
Consideriamo tre aspetti principali della privacy nel contesto degli asset digitali, che includono: le informazioni personali dell'utente che effettua una transazione in criptovaluta; i dati sull'operazione in corso; informazioni generali sullo stato della blockchain, ottenute combinando i dati su tutte le transazioni. Per rendere impossibile (o teoricamente estremamente difficile) l'accesso a queste informazioni, o il loro ottenimento tramite calcolo, per un osservatore esterno, può essere utilizzata la crittografia nel protocollo. Allo stesso tempo, coloro che cercano di ottenere alcune informazioni sulla blockchain possono combinare frammenti individuali di essa per apprendere le informazioni di loro interesse o almeno formulare corrispondenti ipotesi. In questo senso, il compito principale dal punto di vista della privacy è sviluppare un protocollo che riveli ai potenziali attaccanti la quantità minima possibile di informazioni sugli attributi specifici della transazione.
È importante notare che la privacy di alcuni attributi è tutt'altro che un fenomeno univoco. Ad esempio, alcune informazioni possono essere conosciute da alcuni osservatori e sconosciute ad altri, oppure gli osservatori possono fare certe assunzioni senza essere completamente sicuri di esse. Questa dualità rende spesso affermazioni come «La criptovaluta X garantisce la privacy» o «La criptovaluta X è più privata della criptovaluta Y» prive di significato. Inoltre, quando usate con leggerezza, tali affermazioni possono portare a confusione e interpretazioni errate, ed è proprio per questo che possono essere utilizzate per ingannare deliberatamente gli utenti. Riteniamo che sia molto più ragionevole fare affermazioni più specifiche come «in Monero l'importo della transazione è privato» o «in ZCash gli indirizzi dei mittenti sono anonimi a un certo grado». Come vedremo più avanti, in alcuni casi strumenti crittografici come le prove a conoscenza zero possono aiutare ad analizzare tali affermazioni o addirittura fornire argomenti solidi a loro favore.
Quindi, consideriamo separatamente ciascuno degli aspetti della privacy in relazione alle criptovalute. Privacy delle informazioni personali (anonymity) L'anonimato è la prima cosa che viene in mente alle persone quando sentono la parola «privacy». L'anonimato significa l'assenza di un legame tra le azioni di un utente e la sua vera identità. Una delle varietà più facilmente garantite è il cosiddetto «pseudonimo»: in sostanza, questo è esattamente ciò che vari servizi online ci garantiscono assegnando pseudonimi come bitcoinlover2008 invece dei nostri veri nomi. In questa situazione, nella maggior parte delle transazioni che coinvolgono altri utenti del protocollo, i dati sulla persona fisica o giuridica dell'utente bitcoinlover2008 non appariranno. Nella maggior parte delle reti di criptovalute, incluso Bitcoin, agli utenti vengono assegnati una chiave pubblica e una chiave privata. Quella pubblica funge da analogo di un login, e quella privata come analogo di una password. Chiunque ottenga la chiave privata, per motivi legali o tramite furto, può generare messaggi «firmati» con il tuo nome, e con l'aiuto della chiave pubblica chiunque può verificare e confermare la loro paternità. Grazie a questa funzione, gli utenti possono, ad esempio, ricevere bitcoin su una o più pubblichechiavi-indirizzi e controllare i propri fondi e inviarli utilizzando la chiave privata – e tutto questo senza l'intervento di enti centralizzati. Questi concetti formano le basi della crittografia matematica moderna e sono di grande interesse di per sé. Tuttavia, per i nostri scopi, possedere una combinazione di una chiave pubblica e una chiave privata significa semplicemente un modo per implementare il concetto di pseudonimia nel contesto delle reti decentralizzate. A causa di questa pseudonimia solitamente inerente ai protocolli delle criptovalute, i rappresentanti dei media e il pubblico in generale formano un'impressione errata che le criptovalute siano anonime o, quantomeno, forniscano un'anonimato molto maggiore rispetto all'uso di pseudonimi. Non sorprende che questo malinteso porti le persone a iniziare a utilizzare le criptovalute per scopi illegali, che si tratti di gioco d'azzardo online o transazioni nel darknet.
Tuttavia, il reale livello di anonimato delle criptovalute potrebbe seriamente deludere tali utenti: essi inviano e ricevono effettivamente monete a indirizzi pubblici, e i loro veri nomi non vengono divulgati durante le transazioni, eppure a seguito di determinate azioni questi indirizzi possono essere collegati piuttosto bene ai loro veri dati personali.
In primo luogo, la maggior parte degli utenti acquisisce bitcoin sugli exchange per fondi fiat. Eseguire transazioni in valute ordinarie, di norma, richiede interazione con il sistema bancario e la fornitura di dati personali reali. Come abbiamo accennato in precedenza, in Bitcoin tutte le informazioni sulle transazioni sono di natura pubblica, quindi chiunque abbia accesso al database di un exchange può collegare indirizzi pubblici ai nomi reali degli utenti. Ad esempio, se Alice preleva 0,1 BTC tramite Coinbase a un indirizzo a lei appartenente, il servizio sarà in grado di collegare il suo nome reale a questa chiave. E se invia 0,2 BTC all'indirizzo di un sito illegale che accetta scommesse sportive online, allora un osservatore esterno può concludere che Alice sta partecipando a un'attività di gioco d'azzardo illegale e persino fornire prove pubbliche inconfutabili di questo fatto. Tali tecniche sono chiamate analisi della blockchain e sono utilizzate da aziende come Chainalysis per raggruppare indirizzi pubblici per utente, stabilire la loro connessione a identità reali e analizzare i flussi di transazione.
In secondo luogo, eseguire una transazione utilizzando criptovaluta richiede l'invio di alcune informazioni su Internet. In determinate circostanze, i metadati su tali interazioni possono essere utilizzati per tracciare l'indirizzo IP dell'utente che ha effettuato l'operazione, e persino l'uso di anonimizzatori come Tor non previene questo. La combinazione di questi due fattori rende estremamente difficile eseguire transazioni completamente anonime utilizzando solo la proprietà della pseudonimia. Privacy delle informazioni sulle transazioni Quando si parla della privacy delle criptovalute, le persone di solito si riferiscono alla privacy di alcuni aspetti delle transazioni. Parlando in modo generico, una transazione è un'azione che un utente esegue per cambiare lo stato della blockchain. Ad esempio, Alice può inviare X monete dal suo portafoglio a quello di Bob. Anche in una situazione apparentemente innocente, possono essere ottenuti diversi frammenti di dati contemporaneamente: uno degli indirizzi di Alice – la connessione tra gli indirizzi di Alice e Bob; uno degli indirizzi di Bob; l'importo delle monete inviate. Transazioni più complesse possono contenere anche altri tipi di informazioni. Un esempio vivido di questo è il codice del contratto intelligente in Ethereum. Diverse blockchainpresentare i dati delle transazioni in modo diverso, e alcuni di questi metodi rendono possibile nascondere certi aspetti a un osservatore esterno che vede solo i dati «grezzi» registrati nella blockchain. È proprio per questo che abbiamo intitolato questa sezione «Privacy delle informazioni sulle transazioni» piuttosto che «Privacy delle transazioni», poiché il grado di privacy dei vari tipi di dati di trasferimento può differire. Le informazioni più importanti che possono essere nascoste sono gli indirizzi di Alice e Bob. Se sono privati, allora determinare il mittente e il destinatario di una transazione dalle informazioni su di essa sarà impossibile. Questo può anche ostacolare la conduzione di analisi della blockchain. Così, se Alice acquista la criptovaluta Monero, che ha tale caratteristica, attraverso il popolare scambio Binance e poi la ritira da lì, Binance non sarà in grado di collegare questo prelievo a nessuna delle operazioni successive di Alice con queste monete. E se Alice trasferisce Monero a Bob, allora anche lui non sarà in grado di apprendere che le monete sono state acquistate su Binance. Inoltre, la risposta alla domanda se un certo frammento di informazione su una transazione sia privato non può essere binaria.
Nell'esempio con l'indirizzo di Alice, il grado di privacy può essere valutato dal valore del set di anonimato. Il set di anonimato è il set minimo di indirizzi da cui è possibile calcolare il mittente di una transazione, basandosi esclusivamente sui dati della blockchain. Maggiore è il suo valore, minori sono le informazioni sul mittente contenute nei dati della blockchain. Ad esempio, nel caso di Bitcoin, il valore del set di anonimato per le transazioni più semplici e dirette è pari a uno, poiché l'indirizzo del mittente è contenuto nelle informazioni di trasferimento, mentre per Monero questa cifra sarà molto più alta. Privacy delle informazioni sullo stato completo della blockchain Nel caso di Bitcoin, tutti i dati delle transazioni sono pubblici. Ciò significa che un osservatore esterno, avendo accesso ai registri in tutti i blocchi della catena, può ricostruire il libro mastro dei saldi di ciascuno degli indirizzi (anche se possono essere suddivisi in diversi UTXO (Unspent Transaction Output), o output di transazione non spesi – parti indivisibili di un bitcoin legate a un proprietario specifico). Questo è ciò che chiamiamo informazioni sullo stato completo della blockchain.
Tuttavia, se alcuni aspetti delle transazioni sono privati, allora la conoscenza di tutti i registri nella blockchain non darà a un utente la conoscenza dello stato completo della blockchain. Essa è distribuita tra diversi utenti e la blockchain garantisce la coerenza della loro conoscenza. Nonostante il fatto che la conoscenza di un utente su determinati aspetti dello stato della blockchain dipenda solo dal protocollo e dalla consapevolezza delle transazioni che hanno portato alla formazione dello stato attuale, la connessione tra di essi può creare interazioni complesse. Di conseguenza, vari attributi dello stato completo della blockchain possono risultare privati a diversi gradi, ad esempio: l'elenco di tutti gli indirizzi; il saldo di un singolo indirizzo (ad esempio, il wallet 0x2569C92345013F55CFb47C633c57F2f5756B9acA detiene 1 ETH); il codice del contratto intelligente a un indirizzo specifico (ad esempio, il codice del contratto intelligente CryptoKitties all'indirizzo 0x06012c8cf97BEaD5deAe237070F9587f8E7A266d); informazioni associate a un contratto (ad esempio, i dati memorizzati nel contratto CryptoKitties).
Ecco un semplice esempio: in ZCoin l'importo di ogni transazione è pubblico, tuttavia le informazioni sul mittente e sul destinatario sono private, il che significa che i dati sul saldo dei loro portafogli rimangono anch'essi privati. D'altra parte, in Mimblewimble la sicurezza delle informazioni sullo stato dei conti degli utenti è garantita in modo diverso: qui gli importi delle transazioni sono privati, mentre le informazioni sul mittente e sul destinatario sono pubbliche. Gli utenti di Mimblewimble devono conservare i propri fondi da soli, e la blockchain memorizza solo le informazioni necessarie per escludere la possibilità che le spese superino gli importi appartenenti agli utenti. Nella maggior parte dei casi, nascondere le caratteristiche delle transazioni è vantaggioso per gli utenti individuali, ma nel contesto della blockchain non è sempre così. Ad esempio, se il numero totale di monete di una particolare criptovaluta è privato, allora gli utenti non possono verificare tali caratteristiche del protocollo come, ad esempio, il programma di emissione. Inoltre, in tali condizioni è difficile notare un attaccante che sfrutta vulnerabilità crittografiche o scappatoie nel protocollo per l'emissione non autorizzata di nuove monete.
Pertanto, quando si riflette sulla privacy nell'ambiente delle criptovalute, invece di frasi generali come «MyCoin è più privata di TheirCoin», prova a rispondere alle seguenti domande: ci sono determinati frammenti di informazione (quali?) sullo stato del mondo (in quale momento?) privati (a che grado?) per determinate persone (per chi?). Un approccio del genere ci permetterà di valutare le tecnologie di privacy e i loro compromessi in modo più obiettivo.






