introduzione

Il Bitcoin è spesso visto come denaro digitale, ma questo è discutibile. Se Alice paga a Bob $ 10 in contanti, Bob non ha modo di sapere da dove provenga il denaro. Quando Bob trasferisce i $ 10 a Carol, Carol non ha modo di sapere che i $ 10 provenivano originariamente da Alice.

Tuttavia, la natura pubblica intrinseca di Bitcoin fa sì che la situazione sia diversa. La cronologia di un determinato token (output di transazione non spesi o UTXO per la precisione) è disponibile affinché tutti possano vederla. È molto simile a scrivere l’importo della transazione e i nomi dei partecipanti su una fattura.

Tuttavia, gli indirizzi pubblici possono essere resi anonimi, consentendo agli utenti di nascondere facilmente la propria identità. Tuttavia, Bitcoin non può nascondere completamente le sue tracce. La tecnologia di analisi per blockchain sta diventando sempre più matura e può abbinare efficacemente gli indirizzi alle identità. Oltre ad altre tecniche di sorveglianza, entità dedicate possono anche rendere anonimi gli utenti di criptovaluta. Per risolvere questo problema, sul mercato sono emerse diverse tecnologie per la separazione delle transazioni.


Cos'è il token mixing?

In generale, il token mixing si riferisce a tutte le operazioni che mescolano fondi attraverso swap. Tuttavia, nel mondo delle criptovalute, il mixaggio delle monete è fornito da terze parti. Il fornitore di servizi in genere prende i token dell'utente (insieme a una piccola commissione) e successivamente restituisce alcuni token che non hanno alcuna relazione con i token inviati. Tali servizi sono noti anche come bicchieri o miscelatori di monete.

Naturalmente, la sicurezza e l’anonimato di tali servizi centralizzati sono discutibili. Gli utenti non hanno alcuna garanzia che il mixer restituirà i fondi o che i token restituiti non siano in qualche modo contaminati. Inoltre, quando si utilizza un mixer, gli indirizzi IP e Bitcoin possono essere registrati anche da terzi. Il risultato del token mixing è che gli utenti rinunciano al controllo dei propri fondi nella speranza di ottenere token non correlati.

Attualmente esiste un nuovo schema chiamato "CoinJoin Transaction" che offre agli utenti un ampio margine di negazione. In altre parole, dopo aver utilizzato CoinJoin, viene cancellata l'esatta prova della connessione tra l'utente e le transazioni passate. Molte soluzioni CoinJoin diventano alternative decentralizzate ai mixer. Sebbene sia possibile l'intervento di un coordinatore, gli utenti non devono necessariamente rinunciare ai diritti di gestione dei fondi.


Cos'è CoinJoin?

Il trading di CoinJion è uscito nel 2013 ed è stato proposto per la prima volta dallo sviluppatore Bitcoin Gregory Maxwell. Nel post ha introdotto brevemente la struttura di tali transazioni e come ottenere rendimenti privati ​​elevati senza modificare il protocollo.

In sostanza, le transazioni CoinJoin incorporano input da più utenti. Prima di spiegare come funziona questa tecnologia, comprendiamo innanzitutto la struttura della transazione sottostante.

Le transazioni Bitcoin sono costituite da input e output. Quando un utente desidera effettuare una transazione, prende un UTXO come input, specifica l'output e firma l'input. Tieni presente che ciascun input è firmato in modo indipendente, ma l'utente può impostare più output (destinati a indirizzi diversi).


image of an example transaction with four inputs and two outputs


Prendendo come esempio una determinata transazione composta da quattro input (0,2 BTC ciascuno) e due output (0,7 BTC e 0,09 BTC), possiamo fare una serie di ipotesi al riguardo. Per prima cosa osserva l'avvenuto pagamento: il mittente invia uno degli output a qualcuno e successivamente riceve il resto. Questa transazione utilizza quattro input, quindi l'output maggiore dovrebbe essere diretto al destinatario. Tieni presente che dobbiamo pagare una commissione al minatore e l'output perderà 0,01 BTC.

Il mittente potrebbe anche voler creare un UTXO di grandi dimensioni, combinando così piccoli input per ottenere un output target di 0,7 BTC.

Possiamo anche supporre che ogni input abbia un segno indipendente. Questa transazione prevede al massimo quattro parti che firmano l'input. Questo è esattamente il modo in cui funziona CoinJoin.


Come funziona CoinJoin?

L’idea centrale è che più parti collaborano per creare transazioni, ciascuna delle quali fornisce input e output attesi. Quando tutti gli input sono miscelati, gli altri non possono identificare la corrispondenza tra l'output e l'utente. Osserviamo il seguente diagramma:


image of an example coinjoin


Come mostrato nella figura, quattro partecipanti vogliono interrompere la correlazione tra le transazioni. Si coordinano tra loro (o tramite un coordinatore dedicato) per dichiarare gli input e gli output che desiderano vengano conteggiati.​

Il coordinatore prenderà tutte queste informazioni e le inserirà in una transazione, facendole firmare da ogni partecipante prima di trasmetterle alla rete. Una volta firmata da un utente, la transazione non può essere modificata finché non diventa non valida. Pertanto, il coordinatore non può rubare fondi.​

Questa transazione funge da scatola nera per la miscelazione delle monete. Non dimenticare, distruggiamo l'UTXO iniziale per creare un nuovo UTXO. L’unico collegamento tra la vecchia e la nuova UTXO è la transazione stessa, e ovviamente non possiamo distinguere i partecipanti. La situazione ideale è semplicemente sapere che ci sono partecipanti che forniscono input e potrebbero essere i proprietari dei risultati di output.

Anche così, non possiamo esserne sicuri al 100%. Vedendo la transazione sopra descritta, chi può essere sicuro che ci siano quattro partecipanti? Oppure c'è solo una persona che invia fondi ai suoi quattro indirizzi? Oppure due persone acquistano due volte ciascuna e ciascun indirizzo riceve 0,2 BTC? È anche possibile che quattro persone abbiano inviato fondi a nuovi partecipanti o che i fondi siano tornati all’individuo. Non siamo in grado di determinare le circostanze specifiche.


Tutela della privacy attraverso la “negabilità”

L’avvento dell’implementazione CoinJoin è bastato a mettere in dubbio i metodi di analisi delle transazioni. In molti casi potresti dedurre che si sia verificato un CoinJoin ma non puoi determinare il proprietario dell'output. Man mano che questa tecnologia diventa più comune, il presupposto che tutti gli input siano di proprietà dello stesso utente si indebolisce gradualmente. In un ecosistema ampio e completo, la privacy è migliorata notevolmente.

Nell'esempio sopra, presupponiamo che l'insieme anonimo di transazioni abbia 4 proprietari di input e il proprietario di output può essere una qualsiasi di queste 4 persone. Maggiore è l'anonimato impostato, minore è la probabilità di trovare una corrispondenza tra la transazione e il proprietario originale. Fortunatamente, il recente schema CoinJoin consente a decine di utenti di fondere gli input in modo trustless, migliorando significativamente la "negabilità". Recentemente, CoinJoin ha eseguito con successo centinaia di operazioni.


Riassumere

Per gli utenti che prestano molta attenzione alla privacy, il mixaggio valutario è un metodo supplementare molto efficace. A differenza degli aggiornamenti alla privacy proposti come le transazioni riservate, questa tecnologia è compatibile con i protocolli esistenti.

Per gli utenti che si fidano dell'integrità e dei metodi efficaci di terzi, i servizi di mixaggio valutario sono semplici e convenienti. Per gli utenti che preferiscono una soluzione verificabile o non custodiale, CoinJoin è una scelta eccellente. Gli utenti esperti di tecnologia possono astrarre meccanismi più complessi manualmente o utilizzando strumenti software. Oggi, con l’aumento della necessità di privacy, tali strumenti diventeranno sempre più popolari sul mercato.