Mixer, CoinJoin e criptovalute orientate alla privacy · Lezione 4 di 5
Monete per la privacy
9 min di lettura
Quando una traccia entra in Monero o in un pool schermato di Zcash, il tracciamento ordinario si interrompe e si è tentati o di arrendersi o di attribuire troppo peso ai pochi segnali che restano. In un rapporto forense non è accettabile né l’una né l’altra cosa. Sulla base della lezione IDFE-BA Altri design di blockchain che gli analisti incontrano, questa lezione illustra che cosa nasconde ciascun protocollo, che cosa gli investigatori possono ancora osservare e provare, che cosa è supportato dalle ricerche pubblicate e come formulare i risultati affinché siano solidi.
Monero: che cosa è nascosto e che cosa resta
Monero nasconde i tre elementi necessari per seguire una traccia. I pagamenti vengono inviati a indirizzi stealth monouso derivati dall’indirizzo pubblico del destinatario (e dai suoi sottoindirizzi), perciò l’indirizzo del destinatario non compare mai sulla blockchain. Ogni input è firmato con una firma ad anello sull’output reale e sui decoy: dall’aggiornamento della rete del 13 agosto 2022, ogni anello ha 16 membri, quello reale e 15 decoy. Una key image impedisce la doppia spesa senza rivelare quale membro sia stato speso. RingCT, attivato nel gennaio 2017 e obbligatorio da settembre 2017, nasconde gli importi dietro impegni con prove di intervallo.
Le date sono importanti per le prove più datate, perché le protezioni sono state introdotte gradualmente. La dimensione minima degli anelli è aumentata da 3 (marzo 2016) a 5 (settembre 2017), 7 (aprile 2018), 11 (ottobre 2018) e 16 (agosto 2022); dal 2020 le transazioni sono propagate con Dandelion++, rendendo più difficile dedurre il nodo di origine tramite l’osservazione della rete.
Che cosa resta pubblico: l’esistenza di una transazione, il suo blocco e orario, la commissione, il numero di input e output, i membri dell’anello di ciascun input (l’insieme dei candidati) e il campo extra.
Prove di appartenenza all’intera blockchain. Un aggiornamento pianificato, FCMP++, sostituirebbe gli anelli di 16 membri con una prova sull’intero insieme degli output. Una volta attivato, l’analisi basata sugli anelli non si applicherà alle nuove transazioni; continuerà invece ad applicarsi alla cronologia dell’era degli anelli. Indica la data in ogni affermazione sul suo stato.
Chiavi che rivelano informazioni. Monero offre al titolare diversi modi per rivelare informazioni senza cedere il potere di spesa; sono tutti verificabili dall’esaminatore:
- una chiave di visualizzazione privata rivela i pagamenti in entrata verso un indirizzo (per le spese in uscita servono anche le key image);
- una chiave di transazione o una prova di pagamento dimostra che una specifica transazione ha pagato un importo specifico a un indirizzo specifico;
- una prova di riserva dimostra che un wallet detiene almeno un saldo dichiarato.
Per un riscatto pagato in Monero, chiedi alla vittima l’ID della transazione, la chiave di transazione o la prova di pagamento e l’indirizzo di destinazione. Verifica la prova con un wallet open source sul tuo nodo, registra la versione del software e il pagamento diventa un fatto di grado A, anche se la blockchain lo nasconde a chiunque altro. I wallet sequestrati sono un caso diverso: i wallet Monero legacy utilizzano seed di 25 parole anziché BIP-39 (vedi la lezione Recupero dei wallet nell’ambito di un’autorità legittima).
Zcash: pool, confini e tornello
Zcash ha un pool trasparente (indirizzi t1…, t3…), che funziona come Bitcoin, e pool schermati: Sprout (legacy, zc…), Sapling (dal ottobre 2018, zs…) e Orchard (dall’aggiornamento NU5 del 31 maggio 2022, utilizzato tramite indirizzi unificati che iniziano con u1). All’interno di un pool schermato, mittente, destinatario, importo e memo sono nascosti; la commissione è sempre visibile.
I confini lasciano trapelare informazioni. La schermatura rivela il mittente trasparente e l’importo; la rimozione della schermatura rivela l’importo e il destinatario trasparente. Poiché il valore che attraversa ciascun confine è visibile, chiunque può calcolare il totale detenuto in ciascun pool schermato: questo meccanismo è chiamato tornello. Una regola di consenso (ZIP 209) rende non valido qualsiasi blocco che porterebbe il saldo di un pool a un valore negativo, perciò la contraffazione all’interno di un pool verrebbe rilevata dal tornello. Registra i saldi dei pool al momento degli eventi: indicano la dimensione dell’insieme di anonimato. I titolari possono rivelare volontariamente le attività schermate tramite chiavi di visualizzazione.
Che cosa rivela ciascun design, a confronto:
| Osservazione | Monero | Zcash schermato | Zcash trasparente |
|---|---|---|---|
| Mittente | Uno dei 16 membri dell’anello | Nascosto | Visibile |
| Destinatario | Nascosto (indirizzo stealth) | Nascosto | Visibile |
| Importo | Nascosto (RingCT) | Nascosto; visibile al confine del pool | Visibile |
| Orario e commissione | Visibili | Visibili | Visibili |
| Divulgazione volontaria | Chiave di visualizzazione, prova di pagamento | Chiave di visualizzazione | Non necessaria |
| Entrata e uscita presso i servizi | Registri dei servizi | Registri dei servizi | Registri dei servizi |
Che cosa possono ancora osservare gli investigatori
| Osservazione | Origine | Uso probatorio |
|---|---|---|
| Entrata e uscita presso exchange e servizi di swap | Registri dei servizi ottenuti tramite procedura legale | La leva principale: identità, indirizzi di deposito e prelievo, orari, dati IP |
| Tempistiche e importi tra asset diversi | Un deposito di Bitcoin o token a un servizio di swap e un pagamento in Monero, o viceversa | Insiemi di candidati di grado D finché i registri del servizio non confermano (vedi le lezioni Il salto tra blockchain come schema di offuscamento e riciclaggio e Swap, DEX ed exchange istantanei) |
| Flussi trasparenti di Zcash | Blockchain pubblica | Tracciamento in stile Bitcoin, grado A per i flussi |
| Importi ai confini di Zcash | Transazioni di schermatura e rimozione della schermatura | Corrispondenze di andata e ritorno tra importi simili; solo inferenze |
| Appartenenza agli anelli di Monero | Blockchain pubblica | Se un output noto (per esempio, uno pagato al soggetto da un exchange collaborativo) compare nell’anello di una transazione successiva, è un candidato su 16, non una prova di spesa |
| Prove di pagamento, chiavi di visualizzazione | Vittime, servizi collaborativi, wallet sequestrati | Divulgazione verificabile di pagamenti specifici |
| Dati del wallet | Dispositivi sequestrati legittimamente | Cronologia completa delle transazioni del wallet stesso |
| Uso di nodi remoti | Un wallet che si è connesso a un nodo di terzi ha esposto il proprio indirizzo di rete a quell’operatore | Possibile detentore di registri; aspettati che siano pochi |
La riga sull’appartenenza agli anelli richiede cautela. Se lo stesso servizio vede un output che ha pagato a un cliente comparire nell’anello di una transazione successivamente depositata presso il servizio, la coincidenza può essere valutata; tuttavia, la selezione dei decoy attinge deliberatamente da output recenti, quindi è normale che un output noto compaia per caso in un anello. Non esiste un tasso di errore convalidato e pubblicato per collegamenti di questo tipo. Riportali come inferenze, indicando la dimensione dell’anello e il numero di anelli in cui è comparso l’output.
Ricerche pubblicate e loro limiti
| Studio | Risultato | Periodo e limiti |
|---|---|---|
| Möser et al. (2018), Monero | Circa il 62% degli input con almeno un decoy era tracciabile per eliminazione («reazione a catena») e indovinare il membro più recente dell’anello era corretto circa l’80% delle volte | Dati fino ad aprile 2017; gli autori hanno rilevato che le transazioni dell’era RingCT erano generalmente immuni all’eliminazione; in seguito sono diventate obbligatorie dimensioni degli anelli e modalità di selezione dei decoy nuove |
| Quesnelle (2017), Zcash | La corrispondenza dei movimenti di andata e ritorno ha collegato il 31,5% delle monete inviate a indirizzi schermati | L’autore definisce le corrispondenze circostanziali, con possibili coppie casuali |
| Kappos et al. (2018), Zcash | Il comportamento di fondatori e miner spiegava il 69% dell’attività dei pool schermati; la corrispondenza di importi univoci ha collegato oltre 1 milione di ZEC, il 28,5% delle monete depositate nel pool | Dati fino a gennaio 2018, quando la maggior parte dell’attività era trasparente |
| Biryukov et al. (2019), Zcash | Attacchi attivi e canali nascosti che potevano identificare le transazioni schermate | Meccanismi, non tassi di collegamento sul campo |
Nel marzo 2024, i ricercatori di Monero hanno inoltre esaminato un presunto episodio di black-marble flooding: un grande volume di transazioni i cui output, se creati da una sola parte, sarebbero noti a quella parte come decoy, indebolendo gli anelli durante l’episodio. Ciò mostra che, in alcuni periodi, la dimensione effettiva di un anello può essere inferiore a 16; un aspetto importante nella valutazione di una transazione dell’era degli anelli.
Esamina queste ricerche con l’approccio di un esaminatore. Ogni dato descrive un periodo storico e un tasso aggregato. Nessuno indica che uno specifico input nel tuo caso fosse tracciabile. I risultati dell’eliminazione relativi a Monero prima del 2017 non si applicano a una transazione del 2025. Le affermazioni dei fornitori commerciali secondo cui sarebbero in grado di tracciare Monero o Zcash schermato non sono state pubblicate con metodi e tassi di errore convalidati; non possono quindi costituire la base di un risultato e, al massimo, suggeriscono dove cercare i registri.
Rimozioni dagli exchange e spostamento dei punti di uscita
Tra il 2023 e il 2024 diversi grandi exchange hanno rimosso Monero dai listini o ne hanno limitato l’uso in alcune regioni, citando le aspettative normative. Le regole variano a seconda della giurisdizione e alcune stanno andando verso il divieto per i fornitori regolamentati di gestire monete per la privacy. L’effetto sulle indagini è che i punti di uscita regolamentati, che conservano registri, sono meno numerosi e i flussi si spostano verso servizi di exchange istantaneo non custodial, scambi peer-to-peer e atomic swap. Identifica subito il servizio a ciascun estremo, conserva i suoi dati pubblici e chiedi quali registri detiene (vedi la lezione Collaborare con i fornitori di servizi).
Formulazione solida: «Il conto del soggetto presso l’exchange ha prelevato 41,2 XMR alle 14:05 UTC (registri dell’exchange). Il pagamento del riscatto di 41,0 XMR all’indirizzo dell’aggressore è dimostrato dalla prova di pagamento della vittima, verificata sul nostro nodo. Tra questi eventi, la blockchain non mostra alcun collegamento che possiamo affermare.» Formulazione non solida: «L’analisi della blockchain ha tracciato i Monero fino al soggetto.»
Focus sull'esame: indirizzi stealth di Monero, sottoindirizzi, dimensione degli anelli pari a 16 da agosto 2022, key image e RingCT, e cronologia delle dimensioni degli anelli per datare le prove; perché l’analisi basata sugli anelli non si applicherebbe alle transazioni effettuate dopo un aggiornamento con prove di appartenenza all’intera blockchain, ma si applicherebbe ancora alla cronologia dell’era degli anelli; chiavi di visualizzazione, prove di pagamento e prove di riserva come divulgazioni verificabili; pool trasparenti, Sprout, Sapling e Orchard di Zcash, fughe di informazioni ai confini, il tornello e ZIP 209; che cosa è ancora osservabile (estremi dei servizi, flussi trasparenti, importi ai confini, appartenenza agli anelli come candidato); risultati di Möser et al., Quesnelle e Kappos et al. e perché non si applicano alle transazioni attuali; rimozioni dagli exchange e spostamento verso punti di uscita non custodial.