venerdì 8 aprile 2022

Come Funziona Tornado Cash: Mixer ed Anonimato Cripto

Come si sa, sulle blockchain tutto è pubblico. Certo, non si sa a chi appartiene un address ma questi indirizzi sono univoci. Un po' come il numero civico di una casa. Sicuramente ci sono soluzioni che garantiscono l'anonimato (vedi Monero e Zcash/Dash attivando specifiche funzioni) ma in questo articolo parleremo di Tornado Cash.
Tornado Cash è un vero e proprio mixer, ovvero una soluzione per la privacy su Ethereum, Binance Smart ChainArbitrum, OptimismPolygon, Gnosis (xDai) ed Avalanche. Questo servizio interrompe il collegamento tra mandante e destinatario. Tornado Cash utilizza uno smart contract che accetta depositi su Ethereum (Eth ed alcuni suoi Erc20: Dai, Usdc, Usdt, Wbtc) ed EVM (Bnb sulla Bnb Chain, Matic su Polygon, Avax su Avalanche ed Eth su Arbitrum ed Optmism). Questi depositi possono essere prelevati da qualsiasi indirizzo della rete. Ogni volta che gli asset vengono ritirati su un nuovo indirizzo, non c'è modo di collegare il prelievo al deposito, garantendo la privacy tramite una "private note". Tornado Cash utilizza Zero-Knowledge Proof (zk-SNARK) per ottenere la privacy. Quando un utente decide di effettuare un prelievo, l'utente deve fornire la prova di possedere quell'asset (segreto) corrispondente ad uno dei depositi presenti in elenco. La tecnologia zk-SNARK consente di verificare ciò, senza che l'utente debba rivelare quale deposito esatto sia il suo. Il contratto intelligente verifica quindi la prova e trasferisce i fondi depositati all'indirizzo specificato nella transazione di prelievo. Nessun osservatore esterno è in grado di determinare a quale deposito è collegato questo prelievo.  Tornado Cash non è la prima soluzione per privatizzare le transazioni di Ethereum. Ad esempio Zcash sfrutta lo stesso principio, tra cui Zero-Knowledge Proof. Sostanzialmente Tornado Cash riceve l'Eth depositato su di esso, combina depositi e transazioni (generando un "segreto" con un hash associato chiamato "commit", poi inviato allo smart contract) e quindi distribuisce il token a indirizzi diversi al momento del check-out (l'utente fornirà la prova, con il numero esatto di token che gli spettano, di essere il proprietario di uno dei quegli hash).
In sostanza, Tornado Cash agisce come un proxy per creare l'anonimato nelle transazioni di Ethereum, anzi, più precisamente, come un mixer, mescolando depositi e prelievi in ​​modo che non possano essere collegati. Puoi usare un wallet come Metamask con un nuovo indirizzo che contenga anche un po' Eth (o Bnb o Polygon, etc a seconda del network che stai usando). La domanda difficile qui è come aggiungere Eth a un nuovo indirizzo senza rinunciare alla privacy.
Puoi utilizzare Tornado Cash Relayer insieme a un nuovo indirizzo Ethereum per mantenere la privacy e l'anonimato completo. Relayer consente di prelevare fondi a qualsiasi indirizzo, anche quelli senza Eth. Utilizzando un nuovo indirizzo di prelievo, significa che non c'è modo di collegare il prelievo a un particolare deposito. Quindi non ci sono più piste da seguire che riconducono ad un qualsiasi indirizzo che potrebbe essere collegato a te. Inoltre, gli sviluppatori non hanno alcun controllo su Relayer, quindi non possono apportare modifiche ai dati di ritiro.


MASSIMO ANONIMATO
Di base, la prima cosa che andrebbe fatta è usare un nuovo browser, un nuovo wallet e un nuovo indirizzo IP. Ciò è necessario perché il tuo ISP avrà accesso al tuo indirizzo IP ad ogni passaggio tra il browser e il server di destinazione. Ciò rende pubblicamente disponibili tutte le informazioni trasferite lungo questo percorso.
Il tuo provider è in grado non solo di registrare il tuo indirizzo IP, ma anche i timestamp di tutti i pacchetti di dati inviati a Relayer. Queste informazioni dovrebbero teoricamente essere sufficienti per creare una connessione tra il tuo wallet e i timestamp dei prelievi di Tornado Cash. Ecco perché è fondamentale anche utilizzare una VPN (che cifra tutto il traffico) per offuscare il tuo indirizzo IP, soprattutto quando effettui prelievi. E' consigliato anche cancellare i cookies del browser. Siccome sugli explorer si vede l'interazione con la dapp Tornado Cash sarebbe consigliabile eseguire l'operazione con un indirizzo non associato al vostro nome e cognome (magari utilizzando un P2P senza KYC). Ovviamente non è possibile ricollegare poi il prelievo al nuovo indirizzo però qualcuno che osserva il vostro indirizzo, vede che comunque avete depositato su Tornado Cash ed avete ricevuto fondi dal relayer di Tornado Cash (che sino a prova contraria, tuttavia, ricordo, è qualcosa di legale). Chiaramente però non c'è collegamento tra i vostri 2 indirizzi.


COME FUNZIONA
Come accennato in precedenza, quando depositi token in Tornado Cash, riceverai un "segreto". Conservalo in un luogo sicuro poiché ti servirà in seguito per recuperare i token. Se perdi il tuo segreto, non c'è modo di riavere i tuoi soldi.
A questo punto non ti rimane che decidere la blockchain, il quantitativo (0.1, 1, 10, 100 Eth)  e quale token inviare per far perdere le tracce (selezionando un quantitativo, a lato leggerai quante persone esatte hanno depositato quel quantitativo: più ce ne sono e meglio è. Se i quantitativi sono bassi, conviene aspettare giorni/settimane). Puoi depositare Eth o un altro token Erc20. Decidi l'importo quindi, clicca su "Deposito", salva la "private note" (serve per prelevare), invia deposito ed aspetta almeno 1 giorno. Poi esegui il prelievo (withdraw), grazie al "segreto" (incollo la private note) ed inserisco il nuovo address di destinazione (il relayer che invierà la transazione può essere lasciato quello di default: riceveremo un po' di meno perchè ci sono fee sia del protocollo che di rete).

Per le analisi delle transazioni che potrebbero compromettere l'anonimato: Analyzing Tornado Cash Transactions

Nessun commento:

Posta un commento