HomeCryptoAltcoinMonero increases privacy with Dandelion++

Monero increases privacy with Dandelion++

Lo sviluppatore Lee Clagett ha adattato Dandelion++ al protocollo di Monero attraverso un soft fork al fine di migliorare la privacy della blockchain.

Monero è la privacy coin più utilizzata nel panorama delle criptovalute e possiede tre fattori chiave per un successo a lungo termine: privacy sufficiente, decentralizzazione e adozione promettente. 

Il network di Zcash, che possiede una tecnologia di offuscamento delle transazioni nettamente migliore, registra un basso utilizzo delle transazioni “shielded”, a confronto con Monero che invece ha tutte le transazioni schermate di default.

Durante il 2019 Monero ha migliorato di molto la sua tecnologia. Ha risolto i problemi di scalabilità con l’introduzione del blockchain pruning e ha migliorato la privacy delle sue transazioni con il fork dello scorso novembre, eliminando gradualmente gli ID di pagamento e aggiungendo nel protocollo i requisiti di almeno due output e 10 conferme per ogni transazione. Ha anche introdotto un nuovo algoritmo di PoW denominato RandomX, specificamente ottimizzato per le CPU, penalizzando notevolmente il mining di ASIC o GPU.

La tracciabilità delle transazioni attraverso l’indirizzo IP

Monero utilizza le Ring Signatures per mixare gli input e gli output delle transazioni, di fatto rendendo molto difficile la tracciabilità dei mittenti. 

C’è però un aspetto importante che è frutto dell’architettura di rete di Monero. I diversi nodi che compongono la rete di Monero vengono identificati utilizzando gli indirizzi IP, esponendo il rischio che un osservatore possa connettere gli indirizzi IP alle transazioni. Istruendo una botnet connessa alla rete di Monero, si potrebbe essere in grado di spiare le transazioni da diversi punti della rete, in modo da consentire una analisi dei tempi a confronto con le informazioni recuperabili sui nodi.

Si tratta di una attività complessa e laboriosa, ma non così improbabile se pensiamo al alle aziende come Chainalysis che si occupano di tracciare le transazioni su blockchain per conto di governi, istituzioni e exchange. Una volta risaliti all’indirizzo IP è facile risalire all’identità dell’utente e ad una vastità di informazioni che lo riguardano. Questo problema si può mitigare utilizzando connessioni VPN o la rete TOR, ma gli sviluppatori di Monero hanno pensato di dare più privacy alle transazioni anche in questo senso in maniera nativa sul protocollo.

Come funziona Dandelion++

Sviluppato inizialmente per Bitcoin dai ricercatori della University of Illinois, Dandelion è un metodo per nascondere questa possibile connessione tra mittente e indirizzo IP, e sarà implementato nel protocollo di Monero nel prossimo fork.

In questo momento, il nodo Monero che avvia la trasmissione di una nuova transazione utilizza un processo chiamato “flooding”, o di diffusione, con cui comunica la transazione a tutti i suoi nodi collegati, che a loro volta comunicano a tutti gli altri nodi e così via, propagando la transazione a tutta la rete come un’onda. 

Dandelion dirige le transazioni verso un nodo remoto in un modo speciale non rilevabile prima di iniziare la diffusione. Per fare ciò i ricercatori hanno lavorato su modelli matematici per l’anonimato utilizzati per studiare le varie tecniche di propagazione di una transazione, considerando che una botnet spia possa essere presente nel network. Scoprendo così che le attuali tecniche di propagazione sono inadeguate per proteggere la privacy.

Per ovviare a questo problema, Dandelion definisce un processo per trovare un nodo proxy da trasmettere (fase di anonimizzazione) e stabilisce un altro processo per la trasmissione ai restanti nodi (fase di diffusione). Le due fasi utilizzano diversi insiemi di connessioni P2P con la differenza che l’insieme della fase di anonimato cambia nel tempo.

Il processo è stato chiamato Dandelion in quanto la propagazione della transazione assomiglia al fiore del tarassaco a fine maturazione, il dente di leone. Prima avviene la ricerca di un nodo proxy attraverso uno speciale percorso lineare (lo stelo del fiore), poi la diffusione da questo nodo proxy in modo rapido e simmetrico (la parte lanosa che contiene i semi). Se Dandelion viene utilizzato da tutti i nodi della rete dimostra di resistere allo spionaggio di una botnet di nodi che si comportano da osservatori passivi.

Ma cosa succede se la rete non è composta di soli nodi onesti che utilizzano Dandelion? 

Alcuni nodi potrebbero non seguire le regole e generare un numero qualsiasi di connessioni in uscita verso nodi onesti o contraddittori. Per ovviare a questo inconveniente i ricercatori hanno sviluppato Dandelion++, introducendo una connettività dinamica dei nodi che procede a intervalli discreti chiamati epoche.

Ogni nodo cambia epoca indipendentemente ogni pochi minuti, e a ogni nuova epoca seleziona due nuove connessioni a caso dalle sue connessioni in uscita chiamate “relay”. Ogni volta che il nodo crea la propria transazione, lo invia su uno di questi due relay, e ogni volta che riceve una transazione da un altro nodo per l’inoltro durante la fase di stelo lo invia in modo casuale a una delle due nuove connessioni relay.

La fase del “soffione” è stata migliorata rendendo casuali i tempi delle comunicazioni, al fine di rendere più difficile l’individuazione della fonte da parte dei nodi spia. Ad ogni epoca, un nodo si classifica in modo casuale come relay o come diffusore. Se un nodo è un diffusore, ogni volta che gli viene data una transazione da trasmettere nella fase di stelo lo trasmette usando la diffusione.

Inoltre, è presente un meccanismo fail-safe, per cui viene avviato un timer quando un nodo inoltra una transazione durante la fase stelo. Se durante quel lasso di tempo il nodo non riceve indietro la transazione nella fase di diffusione ne inizia una a sua volta. Questo perchè i nodi malevoli potrebbero scartano le transazioni durante la fase di stelo piuttosto che inoltrarle, in un attacco denominato “black hole attack”.

L’implementazione in Monero

Lo sviluppatore Lee Clagett ha adattato Dandelion++ al protocollo di Monero, e la pull request (la richiesta di modifica su GIthub) è in attesa delle necessarie verifiche per essere introdotto nel codice di Monero attraverso un soft fork.

Nei test condotti con i modelli matematici sviluppati, i ricercatori hanno dimostrato che le transazioni rimangono anonime anche con una elevata presenza di nodi spia nella rete. 

“Dandelion++ da garanzie formali di resistenza alla deanonimizzazione.”

Questo miglioramento comporta un rallentamento dell’ordine di alcuni secondi nella propagazione delle transazioni, ma gli sviluppatori non ritengono che influenzi le performance della rete. 

Se utilizzato insieme ad altri layer di sicurezza come VPN e/o TOR che impediscono il monitoraggio da parte degli ISP provider), Dandelion++ garantisce un buon livello di anonimato.

RELATED ARTICLES

MOST POPULARS

GoldBrick