Hai appena effettuato un pagamento Bitcoin ed hai scoperto che parte dei tuoi Bitcoin viene trasferita ad un indirizzo sconosciuto? Non preoccuparti. Il tuo portafoglio non è stato compromesso e non è nemmeno un bug. I tuoi BTC vengono semplicemente inviati ad un Change Address di tua proprietà.
Ogni volta che una persona invia delle monete dal proprio wallet una determinata quantità di monete verrà inviata all’indirizzo Bitcoin del destinatario previsto, mentre l’importo residuo verrà restituito al mittente. Non allo stesso indirizzo, ma appunto ad un Change Address associato al proprio wallet.
La maggior parte degli utenti non noterà questa modifica fino a quando non esaminerà il proprio indirizzo su un Block Explorer. Anche per i principianti questo concetto tende a creare confusione perché il saldo dell’indirizzo BTC non sarà accurato e non si sommerà al saldo totale visualizzato dal portafoglio. È perché il saldo totale visualizzato dal portafoglio è il saldo di tutti gli indirizzi che include sia l’indirizzo di ricezione che il change address.
Transazioni Bitcoin
Fondamentalmente ogni transazione Bitcoin consiste di tre cose: un input della transazione, un output e l’importo (BTC) utilizzato. L’input della transazione è l’indirizzo da cui vengono inviati i Bitcoin. L’output della transazione è l’indirizzo a cui vengono inviati i Bitcoin.
Se le uscite non fanno parte di un’altra transazione (i btc non spesi), si chiamano Unspent Transaction Output (UTXO).
In Bitcoin e praticamente in molte altre criptovalute l’UTXO (Unspent Transaction Output) è indivisibile. Questo è quando l’output della transazione precedente diventa l’input di un’altra transazione che deve essere speso nella sua interezza. Non si può dividere ed è la regola. Il protocollo Bitcoin ti consente solo di spendere l’UTXO per intero. Questo viene fatto principalmente per due motivi; sicurezza ed efficienza.
Pertanto, se l’output è maggiore di quanto l’utente desidera pagare in una transazione; viene creato un output di modifica e diventa il nuovo UXTO. Allo stesso modo, se l’output è inferiore a quello che l’utente desidera pagare, il client del portafoglio preleva molti degli output non spesi dell’utente come input per recuperare i fondi.
Ogni uscita è composta da 1 o più ingressi e ogni ingresso può essere composto da 1 o più uscite. Quindi questo ci porta alla conclusione che Bitcoin può essere inviato da più indirizzi e a più indirizzi, tutto in un’unica transazione.
Considera il seguente esempio in cui due parti Bob e Alice sono coinvolte in una transazione.
Bob ha 50 Bitcoin che ha acquistato da uno scambio e li ha ricevuti in un’unica uscita. Ora per qualche motivo Bob desidera inviare ad Alice 0,5 BTC. Tuttavia Bob ha solo un input di 50 BTC.
Poiché gli UTXO sono indivisibili, Bob non può semplicemente inviare 0,5 BTC da solo. Invece è tenuto a spendere l’intero input. Cioè, spende tutti i 50 Bitcoin in una singola transazione creando due nuovi UTXO. Un output di 0,5 BTC va all’indirizzo di destinazione (ad Alice) e gli altri 49,5 BTC tornano all’indirizzo di modifica di proprietà di Bob.
Esempio di ingressi multipli:
Ecco un altro esempio in cui Alice sembra aver accumulato diversi output non spesi da persone diverse. Il portafoglio di Alice ora contiene tre uscite non spese valutate a 0,5 BTC, 0,1 BTC e 0,2 BTC.
Questa volta Alice desidera pagare a Nancy 0,8 BTC. Tuttavia, non ha 0,8 BTC in un singolo output non speso. Quindi usa più output per sommare il valore totale.
Bitcoin funziona in modo simile al modo in cui funziona il denaro fisico. Supponiamo che tu abbia una banconota da $ 100. Sei andato in un bar e hai preso un caffè del valore di 25 dollari. Ora per pagare i 25 dollari strapperai la banconota? No
Pagherai l’intera fattura di $ 100 al cassiere. Il cassiere prende $25 per il caffè e ti restituisce i $75 come resto. Ora, poiché le banconote hanno valori fissi, la tua transazione potrebbe assomigliare a questa:
Input: $100 (hai pagato alla cassa)
Output: 25 dollari vanno alla cassa + per esempio 3 banconote da 20 + una da 10 + una da 5
È stata effettuata una transazione del valore di $ 100 in cui $ 25 sono stati pagati a un’altra persona e $ 75 ti sono stati restituiti come resto.
Hai notato che l’importo del resto non è disponibile nel tuo portafoglio fino a quando il cassiere non lo ha rimborsato. Proprio come in Bitcoin, l’output del cambiamento non è disponibile per la spesa fino a quando la transazione non viene confermata.
Ora questo è esattamente come funziona un “change address” in Bitcoin. A differenza della tua transazione in contanti la transazione Bitcoin comporta costi di commissione.
Come vengono creati i cambi di indirizzo?
Agli albori di Bitcoin agli utenti veniva chiesto di inserire ogni volta manualmente il change address ogni volta. Come è facile immaginare, questo ha portato a tanta confusione e moltissimi utenti hanno perso Bitcoin nel processo. In molti infatti hanno inviato accidentalmente modifiche all’indirizzo sbagliato su cui poi non avevano controllo.
Attualmente questo lavoro viene fatto dai wallet BTC che si occupano di creare e gestire il cambio indirizzo in automatico. Prima che una transazione venga avviata, il tuo portafoglio crea l’indirizzo e lo assegna per ricevere l’output della modifica.
Succede tutto automaticamente in background del portafoglio. E non preoccuparti. Poiché l’indirizzo di modifica viene creato dal tuo portafoglio; il tuo portafoglio contiene la chiave privata di quell’indirizzo. Ciò ti consente di spendere nuovamente le monete extra dal cambio indirizzo. L’unica cosa è che, come abbiamo detto prima, è necessario attendere determinate conferme di blocco.
Bitcoin core, Electrum e la maggior parte degli altri portafogli sono progettati per gestire molto bene questo processo. E di solito troverai gli indirizzi di modifica nella scheda degli indirizzi (quelli gialli).
Perché non ricevere il “cambio” di Bitcoin allo stesso indirizzo?
Mentre l’invio allo stesso indirizzo semplifica la contabilità, riduce la privacy degli utenti. Come abbiamo detto in precedenza in questo articolo, gli indirizzi di modifica svolgono un ruolo chiave nel miglioramento della privacy.
In base alla progettazione, tutte le transazioni Bitcoin sono archiviate in modo permanente sulla blockchain. Questo sistema è completamente trasparente ed è visualizzabile da tutti. Chiunque può tracciare o controllare qualsiasi transazione in qualsiasi momento e capire facilmente da dove è stato inviato l’importo e a chi. Collegando le identità personali si può facilmente iniziare a trarre conclusioni sulla storia finanziaria delle persone. Questi sono dati molto, ma molto sensibili.
Quindi, per preservare l’anonimato e rendere più difficile il lavoro di tracciamento della transazione, gli output di modifica vengono solitamente inviati a un indirizzo di modifica appena creato.
Quindi la prossima volta, se hai inviato Bitcoin a qualcuno e se noti che una grande quantità di BTC viene trasferita a un altro indirizzo, non preoccuparti. Sono i tuoi soldi e l’indirizzo che vedi nella transazione è un change address che tu controlli.