Mixer e criptovalute orientate alla privacy · Lezione 4 di 5
Criptovalute orientate alla privacy
10 min di lettura
Quando una traccia entra in Monero o in un pool schermato di Zcash, il tracciamento ordinario si interrompe e la tentazione è quella di rinunciare oppure di sovrainterpretare i pochi segnali rimasti. Nessuno dei due approcci è accettabile in una relazione forense. Questa lezione illustra che cosa nasconde ciascun protocollo, che cosa gli investigatori possono ancora osservare e dimostrare, che cosa è supportato dalla ricerca pubblicata e come formulare conclusioni che reggano al vaglio.
Monero: che cosa è nascosto e che cosa rimane
Monero nasconde i tre elementi necessari per il tracciamento. I pagamenti vengono inviati a indirizzi stealth monouso derivati dall'indirizzo pubblico del destinatario (e dai suoi sottoindirizzi), quindi l'indirizzo del destinatario non compare mai sulla blockchain. Ogni input è firmato con una firma ad anello che comprende l'output reale e alcuni elementi diversivi: dall'aggiornamento della rete di agosto 2022 ogni anello ha 16 membri, quello reale e 15 elementi diversivi. Un'immagine chiave impedisce la doppia spesa senza rivelare quale membro sia stato speso. RingCT, attivato a gennaio 2017 e obbligatorio da settembre 2017, nasconde gli importi mediante impegni crittografici corredati da prove di intervallo.
Le date sono importanti per le prove meno recenti, perché la protezione è aumentata per fasi. Fino a ottobre 2018 il protocollo stabiliva soltanto una dimensione minima dell'anello e i portafogli potevano scegliere anelli più grandi: nessun minimo prima di marzo 2016 (erano validi anelli senza elementi diversivi), poi almeno 3 da marzo 2016, 5 da settembre 2017 e 7 da aprile 2018. L'aggiornamento del 18 ottobre 2018 ha fissato ogni anello a esattamente 11 membri e quello del 13 agosto 2022 lo ha fissato a 16 (gli anelli da 11 erano ancora accettati per circa un giorno, fino al successivo fork del 14 agosto). La dimensione dell'anello consente quindi di datare una transazione solo entro certi limiti: un anello più piccolo di un minimo colloca la transazione prima dell'entrata in vigore di quel minimo e da ottobre 2018 la dimensione è uniforme per il relativo periodo, ma un anello di 11 o più membri non dimostra di per sé che una transazione sia successiva a ottobre 2018. Dal 2020 le transazioni vengono propagate con Dandelion++, che rende più difficile dedurre il nodo di origine dall'osservazione della rete.
Rimangono pubblici: l'esistenza di una transazione, il suo blocco e il suo 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 da 16 membri con una prova sull'intero insieme degli output. Una volta attivato, l'analisi basata sugli anelli non sarà applicabile alle nuove transazioni; continuerà a essere applicabile allo storico del periodo degli anelli. Indicare la data di riferimento di qualsiasi affermazione sul suo stato.
Chiavi che consentono la divulgazione. Monero offre al titolare diversi modi per rivelare informazioni senza cedere la facoltà di spesa, tutti verificabili dall'esaminatore:
- una chiave di visualizzazione privata rivela i pagamenti in entrata verso un indirizzo (per le spese in uscita sono necessarie anche le immagini chiave);
- una chiave di transazione o una prova di pagamento dimostra che una determinata transazione ha pagato un determinato importo a un determinato indirizzo;
- una prova di riserva dimostra che un portafoglio detiene almeno un saldo dichiarato.
Per un riscatto pagato in Monero, chiedere alla vittima l'ID della transazione, la chiave di transazione o la prova di pagamento e l'indirizzo di destinazione. Verificare la prova con un portafoglio open source utilizzando un proprio nodo, registrare la versione del software e il pagamento diventa un fatto di grado A, anche se la blockchain lo nasconde a tutti gli altri. I portafogli sequestrati costituiscono un caso diverso: i portafogli Monero di vecchia generazione utilizzano seed di 25 parole anziché BIP-39 (si veda la lezione Recupero dei portafogli nell'esercizio di poteri legittimi).
Zcash: pool, confini e tornello
Zcash dispone di un pool trasparente (indirizzi t1…, t3…), che si comporta come Bitcoin, e di pool schermati: Sprout (di vecchia generazione, zc…), Sapling (da 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, un meccanismo chiamato tornello. Una regola di consenso (ZIP 209) rende non valido qualsiasi blocco che porterebbe in negativo il saldo di un pool, quindi un'eventuale contraffazione all'interno di un pool verrebbe rilevata al tornello. Registrare i saldi dei pool al momento degli eventi esaminati: forniscono la dimensione dell'insieme di anonimato. I titolari possono divulgare volontariamente l'attività schermata mediante chiavi di visualizzazione.
Confronto tra ciò che ciascuna architettura rivela:
| 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 |
| Ingresso e uscita presso i servizi | Registrazioni del servizio | Registrazioni del servizio | Registrazioni del servizio |
Che cosa gli investigatori possono ancora osservare
| Osservazione | Fonte | Utilità probatoria |
|---|---|---|
| Ingresso e uscita presso exchange e servizi di swap | Registrazioni del servizio ottenute mediante procedure legali | Il principale strumento: identità, indirizzi di deposito e prelievo, orari, dati IP |
| Correlazioni temporali e importi tra asset diversi | Un deposito di Bitcoin o token presso un servizio di swap e un'erogazione in Monero, o viceversa | Insiemi di candidati di grado D finché le registrazioni del servizio non confermano la correlazione (si vedano le lezioni Passaggi tra blockchain e tracciamento tra blockchain e Swap sui DEX, exchange istantanei e flussi di liquidità) |
| Flussi trasparenti di Zcash | Blockchain pubblica | Tracciamento analogo a quello di Bitcoin, grado A per i flussi |
| Importi ai confini di Zcash | Transazioni di schermatura e di rimozione della schermatura | Corrispondenze tra importi simili in entrata e in uscita; solo inferenza |
| Appartenenza agli anelli di Monero | Blockchain pubblica | Un output noto (ad esempio, uno pagato al soggetto da un exchange che collabora) che compare in un anello di una transazione successiva è un candidato tra 16, non una spesa |
| Prove di pagamento, chiavi di visualizzazione | Vittime, servizi che collaborano, portafogli sequestrati | Divulgazione verificabile di pagamenti specifici |
| Dati del portafoglio | Dispositivi legittimamente sequestrati | Cronologia completa delle transazioni del portafoglio stesso |
| Utilizzo di nodi remoti | Un portafoglio collegato a un nodo di terzi ha esposto il proprio indirizzo di rete a quell'operatore | Un possibile detentore di registrazioni; aspettarsi poco |
La riga sull'appartenenza agli anelli richiede attenzione. Se lo stesso servizio vede un output che ha pagato a un cliente comparire in un anello di una transazione successivamente depositata di nuovo presso di esso, tale coincidenza può essere valutata, ma la selezione degli elementi diversivi attinge deliberatamente agli output recenti, quindi la comparsa casuale di un output noto in un anello è prevedibile. Non esiste un tasso di errore pubblicato e convalidato per tali collegamenti. Riportarli come inferenze, indicando la dimensione dell'anello e il numero di anelli in cui è comparso l'output.
La ricerca pubblicata e i suoi limiti
| Studio | Risultato | Periodo e limiti |
|---|---|---|
| Möser et al. (2018), Monero | Circa il 62% degli input con almeno un elemento diversivo era tracciabile per eliminazione ("reazione a catena") e l'ipotesi che il membro più recente dell'anello fosse quello reale risultava corretta circa l'80% delle volte | Dati fino ad aprile 2017; gli autori hanno riscontrato che le transazioni del periodo RingCT erano generalmente immuni all'eliminazione; sono seguite dimensioni obbligatorie degli anelli e una nuova selezione degli elementi diversivi |
| Quesnelle (2017), Zcash | L'abbinamento tra entrate e uscite ha collegato il 31,5% delle monete inviate a indirizzi schermati | L'autore definisce gli abbinamenti indiziari, con possibili coppie coincidenti per caso |
| Kappos et al. (2018), Zcash | Il comportamento dei fondatori e dei miner spiegava il 69% dell'attività del pool schermato; l'abbinamento 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 mediante caratteristiche distintive | Meccanismi, non tassi di collegamento riscontrati sul campo |
A marzo 2024 alcuni ricercatori di Monero hanno inoltre indagato su un sospetto episodio di black-marble flooding: un grande volume di transazioni i cui output, se creati da un unico soggetto, sarebbero stati riconoscibili da quel soggetto come elementi diversivi, indebolendo gli anelli durante l'episodio. Ciò dimostra che la dimensione effettiva di un anello può essere inferiore a 16 in alcuni periodi, un aspetto rilevante quando si valuta una transazione del periodo degli anelli.
Leggere questa ricerca da esaminatore. Ogni cifra descrive un periodo storico e un tasso aggregato. Nessuna indica che uno specifico input del caso in esame fosse tracciabile. I risultati sull'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, quindi non possono costituire la base di una conclusione; al massimo suggeriscono dove cercare registrazioni.
Rimozioni dalla quotazione e cambiamento dei punti di uscita
Tra il 2023 e il 2024 diversi grandi exchange hanno rimosso Monero dalla quotazione o ne hanno limitato l'uso in alcune regioni, citando le aspettative delle autorità di regolamentazione. Le norme differiscono tra le giurisdizioni e alcune si stanno orientando a vietare del tutto ai fornitori regolamentati di gestire criptovalute orientate alla privacy. L'effetto sulle indagini è che i punti di uscita regolamentati che conservano registrazioni diminuiscono e i flussi si spostano verso servizi di exchange istantaneo non custodial, scambi peer-to-peer e swap atomici. Identificare tempestivamente il servizio a ciascun punto di ingresso e uscita, preservarne i dati pubblici e chiedere quali registrazioni detenga (si veda la lezione Collaborare con i fornitori di servizi).
Una formulazione che regge al vaglio: "Dal conto del soggetto presso l'exchange sono stati prelevati 41,2 XMR alle 14:05 UTC (registrazioni dell'exchange). Il pagamento del riscatto di 41,0 XMR all'indirizzo dell'attaccante è dimostrato dalla prova di pagamento della vittima, verificata utilizzando il nostro nodo. Tra questi eventi la blockchain non mostra alcun collegamento che possiamo affermare." Una formulazione che non regge: "L'analisi della blockchain ha ricondotto i Monero al soggetto."
Focus sull'esame: Indirizzi stealth, sottoindirizzi, dimensione dell'anello pari a 16 da agosto 2022, immagini chiave e RingCT di Monero, 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 alle prove di appartenenza all'intera blockchain, ma continua ad applicarsi allo storico del periodo degli anelli; chiavi di visualizzazione, prove di pagamento e prove di riserva come forme di divulgazione verificabile; pool trasparente, Sprout, Sapling e Orchard di Zcash, informazioni rivelate ai confini, tornello e ZIP 209; che cosa può ancora essere osservato (punti di ingresso e uscita presso i servizi, flussi trasparenti, importi ai confini, appartenenza agli anelli come candidatura); risultati di Möser et al., Quesnelle e Kappos et al. e perché non sono applicabili alle transazioni attuali; rimozioni dalla quotazione e spostamento verso punti di uscita non custodial.