Fondamenti del tracciamento · Lezione 1 di 5
Tracciare secondo uno standard probatorio
9 min di lettura
Qualsiasi analista può seguire una transazione su un explorer. Una traccia forense è diversa: potrebbe essere letta da un pubblico ministero che deve decidere se formulare un’accusa, usata per congelare i beni di qualcuno e riesaminata riga per riga da un esperto della controparte. Questa lezione illustra che cosa afferma effettivamente una traccia, come assegnare un grado a ciascun collegamento, come registrare ogni passaggio affinché possa essere verificato e come una ripetizione indipendente dell’analisi trasformi una traccia in una prova.
Che cosa afferma una traccia
Una traccia è un’affermazione sul flusso di valore: il valore uscito dall’indirizzo A è arrivato all’indirizzo B attraverso un percorso dichiarato, secondo un metodo di allocazione dichiarato e sulla base dei dati osservati fino a un blocco dichiarato. Non è un’affermazione sull’identità. «I proventi del riscatto sono arrivati a un indirizzo di deposito dell’exchange K» è un risultato di tracciamento. «Il sospettato ha ricevuto il riscatto» combina un risultato di tracciamento, un’attribuzione e, di norma, documenti ottenuti tramite procedura legale (vedi la lezione Da indirizzo a entità a persona).
È importante tenere separate le affermazioni, perché possono rivelarsi infondate per ragioni diverse. Chiunque disponga di una copia della blockchain può verificare un flusso. Un’attribuzione si basa su etichette, documenti o euristiche che possono essere errati o non aggiornati. Se una relazione le fonde in un’unica frase, all’esperto della difesa basta confutare l’affermazione più debole per screditarle entrambe.
Una buona pratica consiste nel suddividere ogni risultato in tre domande distinte:
| Domanda | Prove tipiche | Punto debole tipico |
|---|---|---|
| Flusso: il valore si è spostato da A a B? | Dati della transazione verificati su un nodo | Quasi nessuno una volta che il blocco è definitivo |
| Allocazione: quanto di quel valore corrisponde al valore oggetto dell’indagine? | Un metodo di tracciamento dichiarato | Il risultato dipende dal metodo scelto |
| Controllo: chi controlla A o B? | Euristiche, etichette, documenti del fornitore | Tassi di errore, etichette obsolete, indirizzi condivisi |
Tre tipi di collegamento
Ogni passaggio di una traccia si basa su uno di tre tipi di collegamento. La lezione IDFE-BA Tracciamento tra blockchain applica un’idea analoga, basata su tre gradi, ai bridge; qui la applichiamo a ogni passaggio.
Un collegamento deterministico è scritto nei dati della blockchain stessa. In una blockchain UTXO, un input che spende un output precedente crea un collegamento deterministico tra le due transazioni. In una blockchain basata su account, è deterministica una transazione riuscita che trasferisce valore a un indirizzo, oppure un evento Transfer emesso dal contratto del token in una transazione riuscita. Chiunque esegua un nodo ottiene la stessa risposta.
Un collegamento euristico applica una regola che di solito è valida, ma che presenta eccezioni note. L’euristica della titolarità comune degli input, il rilevamento del resto e l’inoltro di un indirizzo di deposito a un hot wallet sono euristiche (vedi le lezioni IDFE-BA L’euristica della titolarità comune degli input e Euristiche per il rilevamento del resto). Ciascuna presenta modalità di errore documentate, come le transazioni CoinJoin o i wallet che randomizzano il resto.
Un’inferenza è una conclusione tratta da schemi circostanziali: un prelievo di importo simile 20 minuti dopo un deposito, una corrispondenza negli orari della giornata o un finanziatore di gas condiviso. Le inferenze sono piste investigative. Giustificano una richiesta di documenti, ma raramente costituiscono da sole risultati probatori.
È importante notare ciò che un collegamento deterministico non prova. Prova che il valore si è spostato da un indirizzo a un altro. Non prova che la stessa persona controlli entrambi gli estremi e, quando più input confluiscono in una transazione, non indica quale parte di un output sia «il denaro rubato». Queste sono questioni di controllo e allocazione.
Assegnazione dei gradi di confidenza
Una traccia necessita di una scala di valutazione dichiarata, affinché ogni collegamento abbia un grado interpretabile dal lettore. Ogni unità definisce la propria scala; l’esempio seguente è illustrativo e non costituisce uno standard pubblicato.
| Grado | Fondamento | Esempio |
|---|---|---|
| A, registrato sulla blockchain | Collegamento deterministico verificato rispetto a un nodo | Un input spende l’output 0 della transazione precedente |
| B, corroborato | Un’euristica confermata da prove indipendenti, come i documenti di un fornitore o una seconda euristica non correlata | Un presunto indirizzo di deposito confermato dai registri dell’exchange |
| C, singola euristica | Un’euristica con modalità di errore note | Un output di resto scelto in base alla corrispondenza del tipo di script |
| D, inferenza | Solo correlazione o schema | Importo simile prelevato poco dopo un deposito |
Due regole rendono utile la scala. Primo, un percorso è solido quanto il suo collegamento più debole: una traccia di cinque passaggi con un collegamento di grado C è un percorso di grado C per qualsiasi affermazione che dipenda da quel collegamento. Secondo, assegna un grado a ogni affermazione, non a ogni transazione: lo stesso passaggio può avere un flusso di grado A e un’affermazione di controllo di grado C. Per la formulazione della probabilità e della confidenza nella relazione stessa, vedi la lezione IDFE-BA Confidenza, incertezza e linguaggio e la lezione Redigere la relazione forense.
Un percorso tracciato: esempio svolto
Una vittima ha pagato un riscatto di 2,50000000 BTC. L’esaminatore ne segue il percorso in avanti:
| Passaggio | Transazione | Osservazione | Flusso | Affermazione sul controllo |
|---|---|---|---|---|
| H1 | a71f…09d2 | Il wallet della vittima invia 2,50000000 BTC a bc1q…ra5m | A | Il registro dei pagamenti della vittima conferma il mittente (B) |
| H2 | 5d07…e310 | Spende l’output di 2,5 BTC più 0,80000000 BTC da bc1q…x8w2; un output di 3,29990000 BTC a bc1q…c0n1; commissione di 0,00010000 | A | bc1q…x8w2 è controllato dallo stesso soggetto: euristica della titolarità comune degli input (C) |
| H3 | 9c1e…44ab | bc1q…c0n1 invia 1,20000000 BTC a bc1q…dx7e e 2,09980000 BTC a bc1q…p3e9; commissione di 0,00010000 | A | bc1q…dx7e è un indirizzo di deposito dell’exchange K: consolidato insieme a depositi noti (C) |
Gli importi tornano: 2,5 + 0,8 = 3,3 BTC in entrata, 3,2999 in uscita più 0,0001 di commissione; poi 1,2 + 2,0998 + 0,0001 = 3,2999. Il flusso dall’indirizzo del riscatto a bc1q…dx7e è di grado A in ogni passaggio e non dipende dall’euristica della titolarità comune degli input al passaggio H2: il valore si è spostato, a prescindere da chi possedesse bc1q…x8w2. Ciò che cambia il quadro è l’allocazione. I 2,5 BTC sono stati uniti a 0,8 BTC di origine sconosciuta; pertanto, la quantità del deposito di 1,2 BTC da considerare come provento del riscatto dipende dal metodo (vedi la lezione Metodi di tracciamento e relative conseguenze). Con il metodo della decurtazione proporzionale è pari a 1,2 × 2,5 ÷ 3,3 = 0,90909091 BTC; con qualsiasi metodo che preservi il valore, non può superare 1,2 BTC. L’etichetta dell’indirizzo di deposito resta di grado C finché i registri dell’exchange K non la confermano; a quel punto passa al grado B.
I casi pubblici presentano la stessa struttura. Nel giugno 2021 gli investigatori hanno annunciato il sequestro di 63,7 BTC sui circa 75 BTC di riscatto pagati in seguito all’attacco a Colonial Pipeline. Secondo il comunicato ufficiale, hanno seguito più trasferimenti sul registro pubblico fino a un indirizzo di cui detenevano la chiave privata. La traccia ha stabilito dove fosse finito il valore; il sequestro dipendeva da prove separate relative al controllo della chiave.
Documentare ogni passaggio
Ogni passaggio viene inserito in un registro strutturato al momento dell’esame, non ricostruito al momento della stesura della relazione. Un registro minimo di un passaggio:
{
"case_id": "CF-2026-0142",
"hop_id": "H3",
"chain": "bitcoin-mainnet",
"txid": "9c1e…44ab",
"spends": "5d07…e310:0",
"output_ref": "9c1e…44ab:0",
"block_height": 939874,
"block_hash": "0000…3f9a",
"block_time_utc": "2026-03-02T14:07:51Z",
"from": "bc1q…c0n1",
"to": "bc1q…dx7e",
"amount_sat": 120000000,
"allocation": {"method": "haircut", "traced_sat": 90909091},
"grades": {"flow": "A", "control": "C"},
"basis": "output 0; destinatario consolidato insieme a depositi K noti (vedi ATTR-11)",
"source": "nodo personale, Bitcoin Core 29.0, verificato il 2026-03-05T09:12Z",
"examiner": "EX-07"
}
Il registro indica l’output esatto, non solo la transazione, perché una transazione può pagare più destinatari. Memorizza l’importo in satoshi come numero intero per evitare errori dovuti agli arrotondamenti, oltre all’hash del blocco e all’altezza, così da poter rilevare una riorganizzazione o un errore di digitazione. Mantiene l’allocazione e i gradi separati dai fatti osservati, cita il fondamento di ogni affermazione non deterministica tramite un riferimento e registra quale fonte di dati è stata utilizzata e quando. Gli orari sono in UTC. Per le blockchain basate su account si usano gli stessi campi, sostituendo il riferimento all’output con un indice del log o la posizione nella traccia. Le lezioni Conservare le prove on-chain e Hashing, registrazione e catena di custodia illustrano come calcolare gli hash di questi registri e conservarli.
Ripetizione indipendente dell’analisi
Le prove blockchain offrono un vantaggio particolare: i dati sottostanti sono pubblici e identici per chiunque convalidi la blockchain. Pertanto, un’altra persona può ripetere una traccia a partire dai dati grezzi, e dovrebbe farlo.
La norma ISO/IEC 27037 distingue la ripetibilità, cioè ottenere gli stessi risultati con la stessa procedura nello stesso ambiente, dalla riproducibilità, cioè ottenere gli stessi risultati con lo stesso metodo in un ambiente diverso, per esempio con un altro esaminatore che utilizzi un altro nodo o strumento. La ripetizione dell’analisi verifica la riproducibilità. Può avvenire a due livelli:
- Verifica: un secondo esaminatore controlla ogni registro di passaggio rispetto al proprio nodo: il txid esiste, l’output e l’importo corrispondono, l’hash del blocco corrisponde e il blocco è definitivo.
- Ripetizione indipendente dell’analisi: il secondo esaminatore riparte solo dagli elementi iniziali, dall’ambito, dal metodo e dai criteri di arresto, senza vedere il percorso del primo esaminatore, e ripete il tracciamento. La concordanza ha così un significato più ampio del semplice controllo dei calcoli; inoltre, lavorare senza conoscere il primo risultato riduce il bias di conferma.
Quando i risultati differiscono, individua il primo passaggio in cui divergono e registra la causa: un’interpretazione diversa del resto, un metodo di allocazione diverso, un blocco di cutoff successivo o un trasferimento interno non rilevato. Risolvi la divergenza a partire dai dati grezzi e conserva il disaccordo e la sua risoluzione nel fascicolo del caso. Una traccia che non può essere riprodotta da un secondo esaminatore competente non è pronta per essere utilizzata come base probatoria.
Focus sull'esame: una traccia afferma un flusso di valore, non un’identità; separare le affermazioni su flusso, allocazione e controllo; collegamenti deterministici, collegamenti euristici e inferenze, con esempi; ciò che un collegamento deterministico non prova; una scala di valutazione dichiarata e la regola del collegamento più debole per i percorsi; riconciliare importi e commissioni passaggio per passaggio; i campi di un registro di passaggio (riferimento esatto all’output o al log, unità di base intere, altezza e hash del blocco, orario UTC, metodo, gradi, fondamento, fonte); ripetibilità e riproducibilità (ISO/IEC 27037); verifica e ripetizione indipendente dell’analisi, e risoluzione delle divergenze.