Fondamenti del tracciamento · Lezione 2 di 5
Metodi di tracciamento e relative conseguenze
9 min di lettura
Quando i fondi rubati vengono mescolati ad altro denaro in un unico wallet, la blockchain registra ogni movimento, ma non indica quali monete o token siano «della vittima». Un metodo di tracciamento fornisce questa risposta, e metodi diversi danno risposte diverse a partire dagli stessi dati. Per un esaminatore, la conseguenza è concreta: il metodo determina quanto può essere congelato presso un exchange, quale destinatario viene indicato in una relazione e quale aspetto l’esperto della controparte contesterà per primo.
Le regole in breve
La lezione IDFE-BA Tracciare i fondi in avanti e all’indietro insegna i meccanismi di FIFO, LIFO, haircut e poison con un esempio svolto. Questa lezione li dà per acquisiti e aggiunge due regole che derivano dal tracciamento dei beni in conti bancari con fondi commisti, per poi passare alla scelta e alla difesa di un metodo.
| Regola | Allocazione di ogni deflusso | Conserva il valore? |
|---|---|---|
| FIFO | I fondi entrati per primi escono per primi | Sì |
| LIFO | I fondi entrati più di recente escono per primi | Sì |
| Haircut (pro rata) | Ogni deflusso comprende la quota contaminata del saldo in quel momento | Sì |
| Poison | Qualsiasi deflusso da un saldo con una quota contaminata è interamente contaminato | No; serve solo a segnalare |
| Clean-first | Il denaro di altra provenienza esce per primo; il valore dell’interesse resta il più a lungo possibile | Sì |
Clean-first riflette una presunzione presente in diversi ordinamenti giuridici: si presume che chi mescola il denaro altrui con il proprio spenda prima il proprio denaro. È la regola più favorevole per un richiedente rispetto al saldo che rimane sul conto.
Il principio del saldo intermedio minimo
Da tempo i tribunali di molti ordinamenti si occupano di conti bancari con fondi commisti; un principio ampiamente utilizzato nel tracciamento dei beni è il saldo intermedio minimo. Stabilisce che l’importo del valore del richiedente ancora presente in un conto non può superare il saldo minimo raggiunto dal conto tra il momento in cui vi è entrato il valore del richiedente e il momento della richiesta.
La logica è semplice. Se un conto conteneva 80.000 unità, di cui 50.000 appartenenti alla vittima, e a un certo punto è sceso a 20.000, allora devono essere usciti almeno 30.000 del valore della vittima, qualunque regola venga applicata. I successivi depositi di denaro appartenente ad altre persone non reintegrano automaticamente la quota della vittima. Gli ordinamenti differiscono sul fatto che tali depositi possano mai ripristinarla, per esempio quando vi sono prove dell’intenzione di sostituire i fondi; nella versione rigorosa non possono farlo, e un esaminatore a cui venga chiesto di calcolare entrambe le versioni dovrebbe presentarle entrambe.
Il principio stabilisce un limite massimo per ciò che rimane, non un’allocazione di ciò che è uscito. Il valore uscito può comunque essere seguito fino ai destinatari, secondo la regola di allocazione applicabile. Quale regola giuridica si applichi spetta al tribunale; il compito dell’esaminatore è calcolare correttamente ogni regola e mostrarne gli effetti.
Un esempio svolto
Il wallet W, su una blockchain basata su account, contiene USDT (una stablecoin con 6 decimali). V è composto da 50.000 USDT provenienti dalla frode ai danni di una vittima; O1 e O2 sono fondi di altra provenienza, non correlata. P è un wallet self-hosted; E è un indirizzo di deposito presso un exchange, dove i fondi potrebbero essere congelati; ciò che rimane in W potrebbe essere congelato dall’emittente.
| Passaggio | Evento | Saldo dopo l’evento |
|---|---|---|
| 1 | +30.000 da O1 | 30.000 |
| 2 | +50.000 dalla vittima V | 80.000 |
| 3 | −60.000 verso P | 20.000 |
| 4 | +40.000 da O2 | 60.000 |
| 5 | −45.000 verso E | 15.000 |
FIFO. P riceve i 30.000 di O1 e 30.000 di V. I 20.000 di V rimasti sono antecedenti al deposito di O2, quindi E riceve 20.000 di V e 25.000 di O2. W conserva 15.000 di O2. Valore della vittima: P 30.000, E 20.000, W 0.
LIFO. P riceve i 50.000 di V e 10.000 di O1, lasciandone 20.000 di O1. E riceve i 40.000 di O2 e poi 5.000 di O1. W conserva 15.000 di O1. Valore della vittima: P 50.000, E 0, W 0.
Haircut. Dopo il passaggio 2, V costituisce 50.000 ÷ 80.000 = 62,5% del saldo. P riceve 60.000 × 0,625 = 37.500. I 20.000 rimasti contengono 12.500 di V; dopo l’arrivo di O2, la quota è 12.500 ÷ 60.000. E riceve 45.000 × 12.500 ÷ 60.000 = 9.375, lasciandone 3.125 in W.
Clean-first. P riceve prima i 30.000 di O1, poi 30.000 di V, lasciandone 20.000 di V. Dopo l’arrivo di O2, E riceve prima i 40.000 di O2, poi 5.000 di V. W conserva 15.000 di V.
Saldo intermedio minimo. Dal passaggio 2 in poi, il saldo è sceso a 20.000 (passaggio 3) e poi a 15.000 (passaggio 5). Nessuna regola può lasciare più di 15.000 di V in W, e tutte le regole di conservazione del valore sopra riportate rispettano tale limite.
| Destinatario | FIFO | LIFO | Haircut | Clean-first | Poison |
|---|---|---|---|---|---|
| P, self-hosted (60.000) | 30.000 | 50.000 | 37.500 | 30.000 | 60.000 |
| E, deposito presso un exchange (45.000) | 20.000 | 0 | 9.375 | 5.000 | 45.000 |
| W, saldo residuo (15.000) | 0 | 0 | 3.125 | 15.000 | 15.000 |
| Valore totale della vittima | 50.000 | 50.000 | 50.000 | 50.000 | 120.000 |
Le conseguenze sono pratiche. Una richiesta di congelamento all’exchange potrebbe indicare un importo compreso tra 0 (LIFO) e 20.000 USDT (FIFO). Un congelamento da parte dell’emittente su W potrebbe essere giustificato per un importo compreso tra 0 e 15.000. Poison attribuisce alla vittima 120.000 USDT di valore a fronte di una perdita di 50.000 USDT, per questo non va mai utilizzato per quantificare gli importi.
Calcolare il limite minimo in SQL
Sulle blockchain basate su account, il saldo intermedio minimo si ricava direttamente da un saldo progressivo:
-- Saldo minimo del wallet W dal deposito della vittima al blocco limite
WITH ledger AS (
SELECT block_number, log_index,
SUM(delta_base) OVER (
ORDER BY block_number, log_index
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS balance_base
FROM w_token_movements -- cronologia completa di W: +afflusso, -deflusso, unità base
WHERE block_number <= 24620000 -- blocco limite indicato nella relazione
)
SELECT MIN(balance_base) AS lowest_balance_base -- dividere per 10^6 solo per la visualizzazione
FROM ledger
WHERE block_number > 24611207
OR (block_number = 24611207 AND log_index >= 112); -- dal deposito della vittima in poi
La query ricostruisce il saldo di W dopo ogni movimento dei token, ordinandoli prima per blocco e poi per indice del log, che sulle blockchain EVM è univoco all’interno di un blocco. Ordinare in base alla marca temporale è errato, perché tutte le transazioni in un blocco condividono la stessa marca temporale. La somma progressiva deve partire dal primo movimento di W, oppure da un saldo verificato a un blocco noto; altrimenti tutti i saldi risultano sfalsati. La query esterna calcola il minimo dal deposito della vittima (blocco 24.611.207, indice del log 112) fino al limite. Gli importi rimangono interi in unità base fino alla visualizzazione. Le funzioni finestra sono SQL standard, ma alcuni motori potrebbero richiedere una sintassi diversa per la clausola di definizione dell’intervallo.
Scegliere e motivare un metodo
Il metodo giusto dipende dalla domanda a cui si deve rispondere; la scelta va effettuata e messa per iscritto prima di calcolare i risultati. Scegliere la regola che produce l’importo più alto presso il destinatario più conveniente è una ricerca strumentale del risultato e si può facilmente contestare nel controesame.
| Domanda | Metodo generalmente adatto | Motivo |
|---|---|---|
| Quali depositi congelare entro poche ore | FIFO, indicando l’intervallo risultante dagli altri metodi | È deterministico, indica importi specifici e non li diluisce |
| Quanto del valore della vittima può ancora trovarsi in questo conto | Saldo intermedio minimo, insieme a ogni presunzione applicata dal tribunale | È limitato dalla cronologia del conto stesso |
| Ripartire fondi aggregati tra molte vittime in situazioni simili | Pro rata (haircut) | Tratta allo stesso modo le vittime in situazioni analoghe |
| Quota di esposizione di un indirizzo o servizio | Haircut | Una risposta proporzionale è quella più corretta |
| Stabilire se un indirizzo è mai entrato in contatto con la fonte | Poison, solo come risposta sì/no | Mai per quantificare gli importi |
Una breve motivazione nelle note del caso dovrebbe includere:
- la domanda a cui risponde il metodo;
- il metodo scelto e perché è adatto a quella domanda;
- i risultati ottenuti applicando almeno un metodo alternativo;
- se la conclusione cambia a seconda del metodo (analisi di sensibilità);
- il blocco limite e la chiave di ordinamento utilizzata;
- ogni presunzione giuridica assunta, segnalando che spetta al tribunale pronunciarsi.
Applicare il metodo in modo coerente lungo tutto il percorso. Passare da FIFO a haircut a metà del tracciamento modifica ogni dato successivo e richiede una motivazione specifica. Nelle blockchain UTXO ogni output è un importo distinto, quindi l’allocazione è necessaria soprattutto quando gli input vengono aggregati in un’unica transazione; nelle blockchain basate su account, ogni indirizzo è un saldo aggregato e l’allocazione è necessaria quasi a ogni passaggio.
Riportare risultati dipendenti dal metodo
Una conclusione che dipende dal metodo dovrebbe dichiararlo nello stesso paragrafo: «Applicando FIFO, 20.000 USDT dei fondi della vittima sono giunti all’indirizzo di deposito E; con gli altri metodi di conservazione del valore esaminati, l’importo varia da 0 a 9.375 USDT (tabella 4)». Dichiarare che l’allocazione è un modello e che la blockchain non registra a chi appartenevano le singole unità. Presentare il saldo intermedio minimo come limite massimo, non come allocazione. Lasciare al tribunale la scelta della regola giuridica applicabile e assicurarsi che disponga dei dati relativi a tutte le regole che potrebbe scegliere.
Focus sull’esame: le regole di allocazione sono modelli, non fatti registrati sulla blockchain; FIFO, LIFO, haircut, poison e clean-first, e quali di esse conservano il valore; il saldo intermedio minimo come limite massimo per ciò che rimane, senza reintegro da parte di depositi successivi nella versione rigorosa; calcolare ogni regola su un piccolo registro e verificare i totali; calcolare il limite minimo con un saldo progressivo ordinato per blocco e indice del log a partire da un punto iniziale verificato; abbinare il metodo alla domanda (congelamento, saldo residuo, vittime con fondi aggregati, esposizione, indicatore di contatto); decidere il metodo prima del calcolo ed evitare la ricerca strumentale del risultato; riportare gli intervalli e lasciare al tribunale la scelta della regola giuridica.
Domande di esercitazione
Verifica la tua comprensione. Queste domande non contano per l’esame.
Accedi per salvare i tuoi progressi e riprendere da dove hai lasciato. È gratuito. Accedi