Monero ed Anonimato

Per introdurre un servizio di mixing in maniera nativa all’interno di una tecnologia blockchain, nell’aprile 2014 è stata lanciata una nuova piattaforma di pagamenti in valuta virtuale simile alla rete Bitcoin: Monero. Anche se non si tratta dell’unico caso di tecnologia blockchain nata per essere anonima e non tracciabile, Monero è quella che recentemente ha attirato maggiormente l’interesse dei media  principalmente per la possibilità di essere usata per acquisti illegali attraverso il deep web. 
La rete Monero, che si basa sul protocollo CryptoNote24, ha una capitalizzazione di quasi seicento milioni di dollari statunitensi. 

Il valore di un monero, valuta indicata con il simbolo XMR, è di poco più di quaranta dollari. È possibile comprare la valuta in circa venti punti di scambio indicati sul sito ufficiale della piattaforma. 

Per garantire anonimato e non tracciabilità, lo sviluppo di Monero è focalizzato su due obiettivi: 

1. dati due invii di denaro, non rendere possibile affermare che il destinatario sia un’unica persona (non associabilità – unlinkability); 
2. dati due indirizzi qualsiasi, non rendere possibile affermare che vi sia stato scambio di denaro fra gli stessi (non tracciabilità – untraceability).

Il primo dei due obiettivi è ottenuto attraverso il concetto di firma digitale one-time. Il secondo grazie alla ring signatures. L’uso del plurale è legato al fatto che a livello teorico non esiste una sola soluzione di ring signature, ma più soluzioni di cui Monero ne implementa un tipo. Anche in Monero tuttavia sono riscontrabili storicamente due implementazioni di ring signature. La tecnica usata in origine è sta poi modificata nella Ring confidential transaction (RingCTs). Di seguito analizzeremo l’idea originaria per poi illustrare la RingCTs, introdotta nel gennaio 2017 e attualmente in fase sperimentale27. Gli utenti di Monero hanno delle coppie di chiavi private e pubbliche di lungo periodo. L’invio di denaro presuppone però la creazione, per ogni transazione, di chiavi pubbliche e private ‘usa e getta’ (firma digitale one-time). Per inviare dei fondi ad un’altra persona, un utente di Monero genera una chiave pubblica one-time di questa persona ed una chiave identificativa della transazione. A partire dalla chiave della transazione e della sua chiave privata di lungo periodo, il destinatario è in grado di capire di aver ricevuto dei soldi e di spenderli generando una chiave privata one-time. In particolare chi vuole inviare del denaro chiede la chiave pubblica di lungo periodo del destinatario. A questo punto genera un’informazione randomica e crea due chiavi pubbliche: una per la transazione, ed una one-time per il destinatario. 

La chiave pubblica della transazione contiene sia l’informazione di tipo randomico appena creata che un’informazione di tipo deterministico. La chiave pubblica one-time del destinatario è prodotta a partire dall’informazione contenuta nella chiave pubblica della transazione e dalla sua chiave pubblica di lungo periodo. In questo modo anche il destinatario, conoscendo la chiave della transazione e la sua chiave pubblica di lungo periodo, sarà in grado di riprodurre la chiave pubblica one-time e quindi sapere di aver ricevuto dei soldi. Inoltre, usando la propria chiave privata di lungo periodo e la chiave della transazione, il destinatario sarà l’unico in grado di generare la chiave privata one-time che gli consentirà di spendere la valuta virtuale ricevuta. Se una transazione contiene più output, cioè invii a più destinatari, anche se due dei destinatari sono in realtà la stessa persona, i due output avranno comunque chiavi pubbliche one-time diverse. 

In Monero quindi più invii di denaro ad una determinata persona sono in realtà fatti verso chiavi pubbliche differenti e per questo motivo, a partire dalle informazioni contenute nelle copie del registro contabile di Monero, non si è in grado di stabilire se, dati due invii di denaro, la valuta virtuale sia stata o meno spedita ad un’unica persona (unlinkability). Se la firma digitale one-time serve per ottenere il risultato di unlinkability, l’obiettivo della non tracciabilità è perseguito attraverso la ring signature. Uno schema28 di ring signature si basa su tre algoritmi29: 1. un algoritmo che crea una una coppia di chiavi, privata e pubblica; 2. un algoritmo che crea una firma digitale di un messaggio a partire dal messaggio stesso, dalla chiave privata di chi firma e da un insieme di chiavi pubbliche (detto ring) di cui fa parte anche la chiave pubblica del firmatario; Il mondo dell’intelligence – www.sicurezzanazionale.gov.it 8 Servizi di mixing e Monero 3. un algoritmo che, a partire dalla firma, dal messaggio originale e dal ring, restituisce ‘vero’ solo se la firma è stata creata, a partire dal messaggio, da un membro del ring. 

L’utilizzo della ring signature permette quindi, ad un osservatore esterno, solo di poter affermare che un messaggio è stato firmato da uno dei membri del ring. Membri che sono scelti di volta per ogni messaggio da firmare. Chi vuole inviare della valuta virtuale deve averla prima ricevuta su un suo conto: su una chiave pubblica one-time di cui è l’unica persona in grado di costruire la corrispondente chiave privata one-time. Nella rete Monero ci sono però altri conti one-time che hanno ricevuto la stessa quantità di soldi, è possibile quindi creare un ring composto, oltre che dal vero conto di origine della valuta da trasferire, anche da una serie di conti associati alla stessa quantità di denaro ma che servono solo a mascherare la vera origine dei fondi e per questo motivo sono chiamati mix-in. In questo modo, oltre ad un osservatore esterno, anche i miner, cioè i nodi della rete incaricati di registrare le transazioni, non sono in grado di sapere da quale conto sono presi i soldi. Per evitare così la possibilità di avere doppi pagamenti, cioè di inviare dei soldi verso un indirizzo senza cancellarli da quello di origine, è necessario in qualche modo indicare da quale conto è preso effettivamente il denaro. 

La possibilità di usare la valuta disponibile su una chiave pubblica one-time è testimoniata dalla capacità di creare una chiave privata one-time ad essa associata. Per i miner quindi i soldi da cancellare sono quelli del conto legato alla chiave privata one-time che si sta usando per la transazione. Solo l’effettivo proprietario del conto è in grado di creare ed usare questa chiave privata e se gli si chiede di generare una firma di un determinato messaggio e di includere la firma nella transazione, la chiave privata one-time può essere eliminata da parte dei nodi della rete dalle chiavi nuovamente utilizzabili per spedire dei soldi: se usata nuovamente genererebbe infatti la stessa firma, che i miner già conoscono.

 Il messaggio firmato, chiamato key image, consente così di evitare la possibilità dei doppi pagamenti inibendo l’uso ripetuto di una chiave privata one-time. Il meccanismo descritto30 è tuttavia tale da non fornire nessuna informazione che possa essere usata per risalire alla chiave pubblica one-time da cui proviene il denaro speso. Di recente è stata introdotta una nuova modalità di ring signature all’interno di Monero. Questa modalità, chiamata ring confidential transaction (RingCTs) rende possibile includere in un ring anche chiavi pubbliche a cui è associato un ammontare differente rispetto a quello che si sta inviando. La RingCTs è fatta in modo da non fornire informazioni circa l’ammontare di ogni conto incluso nel ring pur rendendo possibile per i miner di verificare che l’ammontare dei soldi inviati combaci con quello dei soldi ricevuti. 

Nell’articolo A Traceability Analysis of Monero’s Blockchain è analizzata la possibilità di tracciare, nonostante l’uso della ring signature, le transazioni effettuate con la piattaforma Monero. Il mondo dell’intelligence – www.sicurezzanazionale.gov.it

Servizi di mixing e Monero In realtà una transazione può essere composta da più input e quindi da più conti di origine dei fondi. Ring signature e key image sono necessari per ogni input. Lo studio della tracciabilità è quindi a livello di ogni singolo input di una transazione. Lo studio esplora le affermazioni che un osservatore esterno può fare analizzando le copie del registro delle transazioni sulla base di tre euristiche. La prima euristica si basa sulle seguenti considerazioni: 

1. se una persona crea un ring composto da un solo conto (cioè non vi sono mix-in) allora il conto è quello da cui sono presi effettivamente i soldi e può essere considerato come speso;

 2. l’efficacia di qualunque ring che usa dei mix-in è misurabile in termini di numero di conti che compongono il ring meno quelli che lo compongono e che sono stati individuati come spesi nel punto precedente (questo conteggio è chiamato effective anonimity-set size); 

3. per un ring la cui anonimity set size è pari a uno è possibile affermare da quale conto sono presi i soldi usati. Se una persona non inserisce dei mix-in non incide quindi solo sulla effective anonimity-set size dei propri input, ma anche su quella di altri input che usano i mix-in. Si ottiene così un effetto a cascata significativo. 

Gli autori dello studio evidenziano infatti come, nella propria analisi, nel 65% dei casi gli utenti non hanno usato dei mix-in e questo impatta sulla identificazione di un altro 22% di conti effettivamente spesi ma che gli utenti avevano provato a non rendere identificabili includendoli in dei ring accompagnati da mix-in. La percentuale di input tracciabili in questo modo è però diminuita dopo fine marzo 2016 in seguito all’introduzione del numero minimo richiesto di due mix-in, numero che dovrebbe passare a quattro32. La seconda euristica si basa su una considerazione di tipo probabilistico: se una transazione indica, come origine, alcuni conti che compaiono come destinazione in un’unica transazione già registrata, allora probabilmente questi conti appartengono alla stessa persona e quindi non sono usati presumibilmente come mix-in. Anche se l’informazione ricavabile in questo modo è solo di tipo probabilistico, è possibile usare questa conoscenza in combinazione con quella ottenuta grazie alla prima euristica per rafforzare o indebolire delle ipotesi sul conto effettivamente usato fra quelli che compongono un ring la cui effective anonimity-set size è stata già ridotta. Analizzando i conti identificati come probabilmente veri (cioè effettivamente spesi nella transazione) dalla seconda euristica con quelli indicati come effettivamente veri dalla prima, gli autori dello studio evidenziano come nell’87% dei casi l’assunto alla base della seconda euristica possa essere considerato vero. Anche la terza euristica si basa su un’ipotesi di tipo probabilistico: più un conto esiste da molto tempo, più è probabile che i soldi siano già stati spesi.

 Quindi all’interno di un ring, più un conto è datato, più è probabile che sia un mix-in. Gli autori dello studio evidenziano come, nel dataset analizzato, nella quasi totalità dei casi i conti individuati come spesi nella prima euristica sono effettivamente quelli meno datati usati in un ring. Le tre euristiche si basano così sul comportamento degli utenti, che può rendere inefficace la bontà di Monero nel rendere non tracciabili le transazioni. Per migliorare il grado di non tracciabilità è necessario così incidere su tale comportamento. Per quanto riguarda l’uso dei mix-in, da fine marzo Il mondo dell’intelligence – www.sicurezzanazionale.gov.it  Servizi di mixing e Monero 2016 è richiesto di indicarne almeno due. Relativamente alla terza euristica, gli autori dello studio suggeriscono che la scelta dei mix-in dovrebbe basarsi sugli effettivi comportamenti di spesa degli utenti e quindi essere fatta in funzione della probabilità che un conto con una data ‘anzianità’ sia stato già usato come vera origine di una transazione e non come mix-in.  

Fonte: https://www.sicurezzanazionale.gov.it/sisr.nsf/approfondimenti/servizi-di-mixing-e-monero.html

Commenti

Post popolari in questo blog

Le 5 criptovalute su cui vale la pena investire

L’Estonia pensa alla cripto-moneta «Estcoins» per gli e-residenti