Contenuti
- Introduzione
- Che cos'è il coin mixing?
- Che cos'è un CoinJoin?
- Come funziona un CoinJoin?
- Privacy tramite negazione
- In chiusura
Introduzione
Che cos'è il coin mixing?
La sicurezza e l'anonimità di questi servizi centralizzati è ovviamente discutibile. Gli utenti non hanno alcuna garanzia che il mixer restituisca il loro denaro o che le monete rese non siano state segnate in qualche modo. Un altro aspetto da considerare quando si usa un mixer è che l'indirizzo IP e l'indirizzo Bitcoin potrebbero essere registrati da una terza parte. In fondo, gli utenti rinunciano al controllo dei loro fondi nella speranza di ricevere indietro monete non collegate.
Esiste un approccio senza dubbio più interessante, le transazioni CoinJoin, che creano un livello significativo di negazione plausibile. Ciò significa che, dopo un CoinJoin, nessuna prova può collegare con certezza un utente alle sue transazioni precedenti. Molte soluzioni di CoinJoin offrono un'alternativa decentralizzata ai mixer. Anche se potrebbe essere coinvolto un coordinatore, gli utenti non devono rinunciare alla custodia dei propri fondi.
Che cos'è un CoinJoin?
Le transazioni Bitcoin sono costituite da input e output. Quando un utente vuole effettuare una transazione, prende i suoi UTXO come input, specifica gli output e firma gli input. E' importante sottolineare che ciascun input viene firmato in modo indipendente, e gli utenti possono impostare output multipli (destinati a diversi indirizzi).
Se analizziamo una transazione composta da quattro input (0,2 BTC ciascuno) e due output (0,7 BTC e 0,09 BTC), possiamo fare alcune supposizioni. La prima è che stiamo guardando lo svolgimento di un pagamento – il mittente sta inviando uno degli output a qualcuno, e restituendo il resto a sé stesso. Dato che ha usato quattro input, l'output più grande è probabilmente per il ricevente. Nota che mancano 0,01 BTC negli output, corrispondenti alla commissione pagata ai miner.
E' anche possibile che il mittente voglia creare una UTXO grande riunendo diverse più piccole, quindi consolida gli input più piccoli per ottenere il risultato desiderato di 0,7 BTC.
Un'altra supposizione che possiamo fare si basa sul fatto che ogni input viene firmato in modo indipendente. Questa transazione potrebbe avere fino a quattro partecipanti diversi che firmano gli input, e qui troviamo il principio che rende efficaci i CoinJoin.
Come funziona un CoinJoin?
L'idea è che più parti si coordinano per creare una transazione, fornendo ciascuna gli input e gli output desiderati. Dato che tutti gli input vengono combinati, diventa impossibile dire con certezza quale output appartiene a quale utente. Considera il diagramma riportato sotto:
Qui, abbiamo quattro partecipanti che vogliono spezzare il collegamento tra transazioni. Si coordinano tra loro (o tramite un coordinatore dedicato) per annunciare gli input e gli output che vogliono includere.
Il coordinatore prenderà tutte le informazioni, le userà per creare una transazione, e farà firmare ogni partecipante prima di trasmetterla al network. Quando gli utenti hanno firmato, la transazione non può essere modificata senza diventare invalida. Quindi, non c'è il rischio che il coordinatore scappi con i soldi.
Ma anche questo non è affatto garantito. Chi può dire, analizzando la transazione descritta sopra, che ci sono quattro partecipanti? Si tratta di una persona che invia i propri fondi a quattro suoi indirizzi? Due persone che effettuano due acquisti separati e restituiscono 0,2 BTC ciascuno nei propri indirizzi? Quattro persone che inviano a nuovi partecipanti, o rinviano indietro a sé stessi? Non possiamo esserne sicuri.
Privacy tramite negazione
Il fatto stesso che esistano implementazioni di CoinJoin è sufficiente per mettere in dubbio i metodi usati per analizzare le transazioni. Puoi dedurre che un CoinJoin ha avuto luogo in molti casi, ma non sai comunque nulla su chi possiede gli output. Man mano che diventano più popolari, la supposizione che diversi input siano tutti posseduti dallo stesso utente viene indebolita – un enorme balzo in avanti per la privacy nell'ecosistema in generale.
In chiusura
Per chi si fida dell'integrità e della metodologia di terze parti, i servizi di mixing sono un soluzione semplice. Per chi invece preferisce un'alternativa verificabile e non custodiale, le soluzioni CoinJoin sono superiori. Queste possono essere eseguite manualmente da utenti tecnicamente esperti, oppure usando strumenti software che si occupano dei meccanismi più complessi. Esistono già diversi strumenti che continuano a crescere in popolarità grazie al numero sempre più grande di utenti che vogliono una maggiore privacy.