introduzione
Bitcoin è spesso commercializzato come moneta digitale, ma questa è un’affermazione controversa. Se Alice paga a Bob dieci dollari in contanti, Bob non sa da dove provengono i soldi. Se poi vorrà darli a Carol, lei non potrà sapere che una volta li aveva Alice.
Bitcoin si distingue per la sua natura pubblica. La cronologia di una determinata moneta (più precisamente, l'output della transazione non spesa o UTXO) può essere legalmente visualizzata da chiunque. Questo concetto è simile alla registrazione dell'importo della transazione e dei nomi delle parti per ciascuna transazione.
Tuttavia, gli alias degli indirizzi pubblici rendono difficile l'identificazione degli utenti. Tuttavia, Bitcoin non è completamente privato. L’analisi della blockchain sta diventando sempre più sofisticata ed è in grado di collegare gli indirizzi alle identità in modo sempre più efficiente. Se combinati con altri metodi di tracciamento, alcune organizzazioni possono rendere anonimi gli utenti di criptovaluta. Per evitare ciò, nel tempo sono emerse tecnologie per rompere i legami tra le transazioni.
Cos'è un mixer Bitcoin?
In senso lato, per coin mixing si intende qualsiasi attività legata all’offuscamento di fondi e alla loro sostituzione con altri. Nel contesto delle criptovalute, di solito si riferisce a servizi forniti da terzi. In genere, tali servizi accettano i fondi degli utenti (con una piccola commissione) e restituiscono monete che non hanno alcuna connessione con quelle inviate. Questi servizi sono noti come bicchieri o miscelatori.
La sicurezza e l’anonimato di tali servizi centralizzati sono, ovviamente, discutibili. Gli utenti non hanno alcuna garanzia che riceveranno indietro i loro fondi o che non verranno danneggiati in alcun modo. Inoltre, quando si utilizza il mixer, è necessario prestare attenzione al fatto che gli indirizzi IP e Bitcoin possono essere registrati da terzi. Di conseguenza, gli utenti rinunciano al controllo dei propri fondi nella speranza di recuperare fondi non correlati.
Un approccio più interessante esiste sotto forma di transazioni CoinJoin, che forniscono un maggiore grado di disaccoppiamento. Ciò significa che dopo CoinJoin non può essere garantita alcuna prova che dimostri la connessione dell'utente con le sue transazioni precedenti. Molte soluzioni CoinJoin sono alternative decentralizzate ai mixer. Sebbene possa esserci un coordinatore nel sistema, gli utenti non devono sacrificare la custodia dei propri fondi.
Cos'è CoinJoin?
L'idea delle transazioni CoinJoin è stata proposta dallo sviluppatore Bitcoin Gregory Maxwell nel 2013. Nel suo thread ha descritto brevemente la struttura di tali transazioni e come è possibile ottenere un aumento del livello di riservatezza senza modificare il protocollo.
L'essenza di CoinJoin è combinare i fondi di più utenti in un'unica transazione. Prima di spiegare come (e perché) funziona questo protocollo, diamo un'occhiata alla struttura di una transazione base.
Le transazioni Bitcoin sono costituite da input e output. Quando un utente desidera effettuare una transazione, prende l'UTXO come input, imposta l'output e firma l'input. È importante sottolineare che ciascun input è autofirmato e gli utenti possono impostare più output (pin su indirizzi diversi).

Se consideriamo una determinata transazione con quattro input (0,2 BTC ciascuno) e due output (0,7 BTC e 0,09 BTC), possiamo fare alcune ipotesi. In primo luogo, vediamo che il mittente trasferisce fondi a qualcuno e ne restituisce una parte a se stesso. Poiché vengono utilizzati quattro ingressi, l'uscita più grande è probabilmente destinata al ricevitore. Tieni presente che agli output mancano 0,01 BTC: questa è la ricompensa per il minatore.
È anche possibile che il mittente voglia creare un UTXO più grande da uno più piccolo per combinare input più piccoli per ottenere gli 0,7 BTC desiderati.
Un'altra ipotesi che possiamo fare è che ogni input sia autofirmato. Una determinata transazione può avere fino a quattro parti che firmano gli input. Questo è il principio che rende efficace CoinJoin.
Come funziona CoinJoin?
L’idea è che più parti partecipino alla transazione, depositando fondi e specificando l’output desiderato. Poiché gli input vengono uniti, diventa impossibile dire esattamente quale input appartiene a quale utente. Considera il diagramma seguente:

Ci sono quattro parti qui che vogliono spezzare il collegamento tra le transazioni. Comunicano tra loro (o tramite un coordinatore speciale) per dichiarare gli input e gli output che vorrebbero includere.
Il coordinatore riceve tutte le informazioni, include i dati nella transazione e ogni partecipante le firma prima di inviarle alla rete. Una volta confermata dagli utenti, la transazione non può essere modificata senza diventare non valida. In questo modo non c’è rischio che il coordinatore rubi i fondi.
La transazione funge da sorta di scatola nera per la miscelazione delle monete. Ricorda che stiamo distruggendo un UTXO per crearne uno nuovo. L’unico collegamento che abbiamo tra il vecchio e il nuovo UTXO è la transazione stessa, ma non possiamo distinguere tra i suoi partecipanti. Nella migliore delle ipotesi, possiamo dire che il partecipante ha investito fondi e, forse, di conseguenza ha ricevuto fondi.
Ma anche questo non è garantito. Chi può dire, guardando l'accordo di cui sopra, che ci sono quattro partiti? Forse è una persona che invia i propri fondi a quattro indirizzi? Oppure due persone effettuano due acquisti separati e restituiscono 0,2 BTC ai rispettivi indirizzi? Oppure quattro persone inviano messaggi a nuovi membri o a se stessi? Non possiamo esserne sicuri.
Privacy attraverso il rifiuto
L’esistenza stessa di CoinJoin è sufficiente per mettere in dubbio i metodi di analisi delle transazioni. Nella maggior parte dei casi, puoi dire che è stato utilizzato CoinJoin, ma non puoi sapere a chi sono stati trasferiti i fondi. Con la crescente popolarità, il presupposto che i dati inseriti appartengano a un singolo utente è diventato infondato, portando a un massiccio aumento della privacy in tutto l’ecosistema.
Abbiamo detto che la transazione nell’esempio precedente prevedeva un insieme di quattro input di anonimato, il cui destinatario poteva essere uno qualsiasi dei quattro partecipanti coinvolti. Maggiore è l’anonimato impostato, minore è la probabilità che le transazioni possano essere collegate al proprietario originale. Le più recenti implementazioni di CoinJoin consentono agli utenti di combinare in modo sicuro i propri input con dozzine di altri, fornendo un elevato grado di negabilità. Recentemente una transazione con 100 partecipanti è stata completata con successo.
Conclusione
Gli strumenti di mixaggio delle monete sono un'aggiunta importante all'arsenale di qualsiasi utente che prende sul serio la propria privacy. A differenza degli aggiornamenti sulla privacy proposti (come le transazioni riservate), questi sono compatibili con il protocollo così come esiste oggi.
Per coloro che si fidano dell'affidabilità e della metodologia di terze parti, una soluzione semplice è mescolare i servizi. Per coloro che preferiscono servizi trasparenti e non custoditi, CoinJoin è un'alternativa adatta. Secondo questo principio, le transazioni possono essere effettuate autonomamente, se gli utenti sono tecnicamente esperti, oppure con l’ausilio di strumenti software che sono un’astrazione di meccanismi più complessi. Molti di questi strumenti esistono già e continuano a crescere in popolarità poiché gli utenti cercano una maggiore privacy.

