Fermata #79 - Bitcoin Training - Coin Control (Parte 2)
Preservare la privacy nelle transazioni Bitcoin. Invio, ricezione di pagamenti e CoinJoin. Parte 2 dell’approfondimento dedicato alla gestione dei propri UTXO
Nella fermata #64 - il primo articolo dedicato al Coin Control - abbiamo approfondito come gestire gli UTXO per ottimizzare la spesa in commissioni di transazione. In questa seconda parte capiremo come farlo per preservare la privacy. Per cogliere al meglio ogni passaggio è consigliata la lettura preventiva della fermata #38, in cui è spiegato in modo approfondito il concetto di Unspent transaction output (UTXO).
Qui puoi ascoltare un estratto gratuito di Bitcoin Train Podcast!
Per accedere alla completa versione narrata dell’articolo ed entrare nel gruppo Telegram dedicato alla newsletter, abbonati a Bitcoin Train!
Poiché tutte le transazioni Bitcoin sono registrate pubblicamente sulla timechain, il modo in cui ci si approccia all'invio e alla ricezione dei pagamenti determina quali informazioni vengono esposte. Capire come funzionano gli UTXO e gli indirizzi dei wallet e prestare attenzione a come si interagisce con essi può limitare occhi indiscreti che vogliano tracciare i comportamenti di spesa e il saldo in bitcoin dei propri portafogli.
E’ importante ricordare che, se si tiene alla propria privacy, non basta mixare i propri bitcoin tramite CoinJoin (dettagli più avanti), serve anche conoscere le basi del Coin Control. Ma niente paura, nulla di troppo complicato. Il coin control aiuta a evitare il riutilizzo degli indirizzi mettendo nelle mani dell’utente la responsabilità del controllo degli UTXO.
Quali informazioni sono disponibili pubblicamente sulla timechain?
UTXO e indirizzi bitcoin non sono la stessa cosa. E’ utile pensare a un UTXO come un singolo pezzo di bitcoin, l’indirizzo è la posizione in cui l'UTXO è memorizzato. Un singolo indirizzo può contenere zero UTXO, un UTXO o molti UTXO e ogni wallet può generare miliardi di indirizzi diversi.
Chiunque voglia accedere alla timechain può monitorare gli indirizzi ma non può sapere, senza informazioni aggiuntive, a quali wallet siano riconducibili. Di conseguenza, non può sapere a chi appartengano gli UTXO inclusi in tali indirizzi.
Un modo per poter collegare più indirizzi allo stesso wallet è conoscerne la chiave pubblica. E’ importante selezionare accuratamente le persone o le aziende con le quali si decide di condividere la propria chiave pubblica.
Privacy nella ricezione di bitcoin
Il saldo di ogni indirizzo è visibile on-chain, per cui se si utilizzasse sempre lo stesso per ricevere pagamenti, chiunque abbia avuto modo di conoscere tale indirizzo - come per esempio, uno dei soggetti che lo ha sfruttato per un pagamento - potrebbe conoscerne la quantità di bitcoin associati consultando la timechain.
Dunque, ogni volta che si riceve una transazione in bitcoin è bene utilizzare un nuovo indirizzo. Quest’ultimo sarà esposto in modo permanente al mittente che, se malintenzionato, potrebbe seguirne i movimenti passati e futuri. Tuttavia, se si genera un nuovo indirizzo per ogni transazione, controllando la timechain il mittente vedrà unicamente il suo pagamento e nessun altro movimento: né passato, né futuro.
C’è una buona notizia. La gran parte dei wallet in circolazione ormai genera automaticamente un nuovo indirizzo per ogni pagamento da ricevere. In questo modo il mittente non può associare il nuovo indirizzo a nessun altro usato in precedenza, a meno che non sia in possesso di altre informazioni.
Privacy nell’invio di bitcoin
Tale pratica aiuta a incrementare la propria privacy anche nel momento in cui si invia un pagamento in uscita. Utilizzando un solo indirizzo per inviare bitcoin a qualcuno, si espongono al destinatario solo gli UTXO che si trovano su quell’indirizzo, preservando quindi la riservatezza di tutti gli altri UTXO detenuti sugli altri indirizzi del wallet.
Ma cosa succede se c’è bisogno di pagare un importo superiore agli UTXO detenuti su un unico indirizzo? Il wallet, di default, unisce più indirizzi per sommare gli UTXO fino a quando non arriva a un importo uguale o superiore a quello del pagamento da effettuare. Questa mossa rivelerà al destinatario il controllo di più indirizzi.
E’ consigliabile dunque prestare attenzione a quali indirizzi vengono riuniti per fornire gli input di una transazione. L’ideale sarebbe poter selezionare manualmente gli indirizzi da sfruttare, funzione ormai abilitata dalla maggioranza dei wallet.
Un altro fattore a cui prestare attenzione è il resto. Effettuando una transazione che non includa la totalità dei bitcoin detenuti su uno o più indirizzi, il wallet crea un nuovo indirizzo al quale assegnare il resto. In questo caso chi ha ricevuto il pagamento può supporre che quei bitcoin siano controllati dal mittente.
La soluzione ideale per tutelare la privacy è quella di conservare i bitcoin in UTXO di varie dimensioni, in modo da avere un'ampia gamma di opzioni tra cui scegliere ogni volta che si desidera spenderli.
Non avete mai seguito queste pratiche? Niente paura, c’è il CoinJoin.
CoinJoin
CoinJoin è un protocollo che permette di tagliare il collegamento tra la storia passata e la storia futura degli UTXO. L’utilizzo di CoinJoin rende quasi impossibile ricostruire il percorso del denaro che riporti a una specifica identità.
Ci sono diverse applicazioni: Join Market, Whirlpool, Wasabi. Quest’ultima è indubbiamente la più user-friendly.
Come funziona? Unendo più partecipanti in quella che viene definita una transazione collaborativa. I partecipanti al CoinJoin inviano tutti insieme i propri UTXO, questi vengono mixati l’un l’altro, spezzettati, e distribuiti casualmente ai partecipanti. In questo modo chi effettua CoinJoin registra uno o più UTXO e ne riceverà diversi, di importi spesso più bassi e generati a loro volta dagli UTXO di altri partecipanti, per un ammontare equivalente all’importo inizialmente registrato, meno una piccola commissione. Una volta effettuato il CoinJoin è bene abituarsi a seguire le best practice del Coin Control per distinguere gli UTXO mixati, quindi caratterizzati da maggior privacy, da quelli non mixati.
Graficamente un CoinJoin appare più o meno così:
Nuovo speaker annunciato da BTC Prague, la conferenza Bitcoin più grande d’Europa che si terrà a Praga dall’8 al 10 giugno!
Marek “Slush” Palatinus è co-fondatore di Satoshi Labs, società a capo, tra gli altri prodotti, degli hardware wallet Trezor.
Usa il codice BTCTRAIN per ottenere il 10% di sconto sui biglietti d’ingresso. Ulteriore sconto del 5% pagando in bitcoin. Biglietti acquistabili da qui.
Online su YouTube la live di lunedì scorso con Massimo Musumeci
E’ online il nuovo video-approfondimento dedicato al tema della settimana di Bitcoin Train sul canale YouTube di Massimo Musumeci, fisico, ricercatore Bitcoin ed esperto di privacy e sicurezza informatica.
Questa settimana si è parlato di come utilizza bitcoin con il Lightning Network nella quotidianità. Appuntamento a lunedì 20 febbraio!