Autore: Clementine Money | Pubblicazione originale: 23/11/2022 | Tradotto da: 31febbraio | Milano Trustless | Link: Bitcoin UTXOs: Explained for Beginners
Se possedete bitcoin, in realtà possedete un mucchio di UTXO. In questo articolo vi spiegheremo cosa sono gli UTXO e come funzionano, a livello di principianti
Che cos'è un UTXO?
UTXO sta per:
U = Unspent
TX = Transaction
O = Output
*Output non speso della transazione
Gli UTXO sono come 'pezzi' di bitcoin. Sono gli output delle transazioni bitcoin passate, che possono essere utilizzati come input nelle transazioni bitcoin future.
Similitudini tra UTXO e contanti
È facile pensare agli UTXO in termini simili al contante: se Bob vuole consegnare 10 dollari di valore alla sua amica Mallory, può farlo consegnandole una banconota da 10 dollari:
- Bob prende una banconota da 10 dollari (input)
- Bob consegna la banconota da 10 dollari a Mallory (output)
Allo stesso modo, se Mallory vuole consegnare 0,4 BTC alla sua amica Alice, può farlo creando una transazione:
- Mallory seleziona uno degli UTXO che possiede del valore di 0,4 BTC (input)
- Mallory designa Alice come destinataria di 0,4 BTC (output).
Come gli UTXO si differenziano dal denaro contante
Con il contante fisico, la banconota da 10 dollari che Bob ha raccolto (input) è lo stesso oggetto fisico della banconota da 10 dollari che ha consegnato a Mallory (output), e quella banconota da 10 dollari può continuare a essere spesa e rispesa più e più volte. Tuttavia, i 0,4 BTC scelti da Mallory (input) vengono completamente distrutti quando decide di trasferirne il valore ad Alice! Al suo posto, viene creata 'una nuova entità' del valore di 0,4 BTC (output) che viene assegnato ad Alice.
Ma... perché?
La risposta è che bitcoin prevede lo scambio di informazioni pure senza una terza parte fidata. E, beh... è piuttosto facile copiare le informazioni! Quindi, se le persone potessero riutilizzare gli stessi bitcoin più volte come noi riutilizziamo le banconote di carta con il contante fisico, le persone potrebbero contraffare facilmente i bitcoin.
Regole da ricordare
Gli UTXO di Bitcoin seguono regole semplici, tra le quali spicca il fatto che ogni UTXO (cioè ogni 'pezzo' di bitcoin) può essere speso una sola volta.
Ecco tre regole fondamentali da ricordare sulle transazioni bitcoin e sugli UTXO:
- Tutti gli input della transazione devono essere UTXO.
- Gli UTXO non possono essere spesi parzialmente. Quando viene speso, un UTXO viene distrutto.
- La somma degli input deve sempre essere uguale alla somma degli output (più la commissione del miner).
Vediamo ora come queste regole si applicano a una transazione bitcoin reale.
Esempio di transazione
Di seguito è riportata una transazione di esempio in cui Bob paga ad Alice 1,75 BTC
Il wallet di Bob
In alto a sinistra, possiamo vedere che Bob possedeva un totale di 5,74 BTC prima di effettuare il pagamento ad Alice. Questo numero è quello che Bob avrebbe visto sulla prima pagina dell'applicazione relativa al suo portafoglio. Dietro le quinte, il software somma, per Bob, tutti gli UTXO delle transazioni precedenti per ottenere questa cifra di 5,74 BTC [un saldo totale, n.d.t.].
In alto a destra, possiamo vedere che Bob possiede un totale di 3,989 BTC dopo il pagamento ad Alice. Questo perché Bob ha pagato 1,75 BTC ad Alice e 0,049 BTC a se stesso come resto. I restanti 0,001 BTC sono rimasti per essere raccolti come commissione da un miner, per un totale di 1,751 BTC di spese.
5,74 - 1,751 = 3,989 BTC
Il wallet di Alice
Analogamente, in basso a sinistra possiamo vedere che Alice possedeva 0,2 BTC prima della transazione. Nel suo caso, questo saldo era interamente il risultato di una transazione passata. Lo sappiamo perché aveva un solo UTXO.
In basso a destra, possiamo vedere che Alice possiede ora 1,95 BTC dopo la transazione. Questo perché Bob le ha pagato 1,75 BTC.
0,2 + 1,75 = 1,95 BTC
La transazione
L'effettiva transazione in bitcoin tra Bob e Alice contiene input e output. Ma come vengono scelti questi input e output?
Ricordiamo le tre semplici regole elencate sopra. I nodi applicano queste regole (e altre ancora):
- Tutti gli input della transazione devono essere UTXO.
Controllando gli input delle transazioni di Bob, possiamo vedere che i due input sono stati entrambi presi dal suo set di UTXO esistenti. Il suo portafoglio ha selezionato {1,5 BTC + 0,3 BTC}. - Gli UTXO non possono essere spesi parzialmente. Una volta speso, un UTXO viene distrutto.
Osservando i dettagli della transazione, si può notare che entrambi gli input di cui sopra sono stati spesi interamente e di conseguenza sono stati creati due nuovi output. - La somma degli input deve sempre essere uguale alla somma degli output (più la commissione del miner).
Gli input di cui sopra ammontano a 1,8 BTC. Possiamo lavorare a ritroso per capire quali dovrebbero essere le sue uscite.
Sappiamo che Bob vuole inviare ad Alice 1,75 BTC, pagando anche una commissione al miner per assicurarsi che la sua transazione venga aggiunta a un blocco. La tariffa del miner viene determinata in base al mercato delle tariffe correnti, che l'applicazione del portafoglio di Bob controllerà per lui. Al momento della transazione di Bob, i miner stanno guadagnando in media circa 0,001 BTC, quindi il suo portafoglio utilizza automaticamente questa cifra come tariffa per il miner.
Dopo aver contabilizzato Alice e le fee, a Bob restano 1,8 - 1,75 - 0,001 = 0,049 BTC. Questo importo residuo deve essere restituito a Bob come resto.
Le uscite di Bob ammontano a 1,779 BTC. Aggiungendo gli 0,001 BTC (tassa) = 1,8 BTC.
Assemblare le transazioni
Fortunatamente, non dovete preoccuparvi di sbagliare i passaggi sopra descritti (a meno che non siate dei pazzi e lo vogliate provare con un paper wallet, ma questo è un argomento per un altro articolo). Tutto il lavoro di assemblaggio di una transazione e di verifica della validità degli input e degli output è gestito in modo automatizzato dal software del portafoglio.
Cosa vedono gli utenti
Quando si invia una transazione in bitcoin, ecco cosa si vede:
- si apre il proprio portafoglio (di solito un'applicazione sul telefono)
- si scansiona un codice QR della persona che si desidera pagare
- si specifica la quantità di bitcoin che si vuole inviare.
E... voilà! Avete appena speso bitcoin. È così semplice.
Cosa succede davvero
Quando si invia una transazione in bitcoin, ecco cosa succede davvero:
- si apre il proprio portafoglio (di solito un'applicazione sul telefono)
- si scansiona un codice QR della persona che si vuole pagare (ad esempio, Alice)
- il software del wallet traduce il codice QR in un indirizzo bitcoin
- si specifica l'importo che si vuole inviare (ad esempio, 0,5 BTC)
- il software del portafoglio controlla tutti gli UTXO disponibili e sceglie una combinazione di UTXO che, sommata, è superiore all'importo che si desidera inviare più una commissione per il miner
- il software del portafoglio crea una transazione bitcoin utilizzando gli UTXO trovati sopra come input (ad esempio 0,35 e 0,3). Scrive anche nuovi output nella transazione, assegnandoli a ciascuna parte come appropriato:
Input #1 = 0,35 BTC
Input #2 = 0,3 BTC
------------------------
Totale input = 0,65 BTC
Output #1 = 0,5 BTC ad Alice
Output #2 = 0,149 BTC all'utente (come resto)
------------------------
Totale output = 0,649 BTC
Residuo = 0,001 BTC al miner (commissione per il minatore) - successivamente, il software del vostro portafoglio firma la transazione utilizzando la vostra chiave privata. Questo dimostra matematicamente che siete gli unici proprietari degli UTXO utilizzati come input (i precedenti 0,35 BTC e 0,3 BTC), il che significa che siete autorizzati a spenderli
- a questo punto, il vostro wallet trasmette la transazione alla rete bitcoin affinché tutti i nodi la vedano
- i nodi Bitcoin che ricevono il messaggio trasmesso controllano la transazione per assicurarsi che segua tutte le regole del protocollo e sia considerata valida. In particolare, verificano che la firma sia valida e che gli input della transazione non siano stati spesi
- una volta convalidata, i nodi aggiungono la transazione alla propria mempool, dove attende di essere raccolta da un miner, per essere messa in un blocco della blockchain
- dopo che il miner la aggiunge alla blockchain, la transazione è effettivamente conclusa (nota: tecnicamente si ritiene che la prassi migliore sia quella di aspettare che vengano estratti altri blocchi (3-5) sopra il blocco contenente la transazione prima di considerarla veramente irreversibile)
- dopo che il blocco viene aggiunto alla blockchain, il miner riceve la commissione residua dalla transazione come parte della coinbase transaction.
Dove sono depositati gli UTXO?
Risposta breve: nella blockchain di bitcoin.
Risposta più lunga: gli UTXO sono semplicemente valori bloccati agli indirizzi sulla blockchain di bitcoin. Quindi, se 'possedete bitcoin', significa che disponete di chiavi private che possono sbloccare specifici UTXO dagli indirizzi e utilizzarli come input nelle transazioni.
Poiché gli UTXO vengono distrutti una volta spesi, si può pensare a tutti i bitcoin esistenti in circolazione come all'insieme di tutti gli UTXO 'ancora vivi'. Questo è noto come 'set di UTXO' ed è memorizzato da tutti i full node della rete, in modo da garantire che le nuove transazioni non tentino di spendere due volte le monete.
UTXO e privacy
Poiché ogni UTXO è un 'pezzo' di bitcoin risultante da una transazione precedente, ciò significa che ogni UTXO può essere collegato a una transazione precedente. E poiché la blockchain di bitcoin è pubblica e visualizzabile da chiunque abbia una connessione a Internet, ciò significa che se possedete bitcoin, i vostri UTXO possono essere rintracciati!
Pertanto, l'unico modo per rimanere privati con i bitcoin è quello di rimanere anonimi. Ecco perché molti Bitcoiner invitano gli utenti a evitare gli exchange centralizzati che obbligano le persone a fornire informazioni private su di sé prima di effettuare una transazione, come nome, età, data di nascita, fototessera, ecc. Questi requisiti sono noti come "KYC" (abbreviazione di "Know Your Customer").
Fornire queste informazioni a un'azienda e poi inviare bitcoin al vostro portafoglio personale equivale a dire a quell'azienda quali sono i vostri UTXO in bitcoin. Una volta che la società sa quali sono i vostri UTXO, può fornire queste informazioni anche ad altre società o governi, compromettendo completamente la vostra privacy
Milano Trustless (31febbraioMI)
#MilanoTrustless è un progetto personale per #orangepillare 🟠💊 Milano e infondere ai (meravigliosi) milanesi la mentalità #trustless
follow me :
Related Posts
Personal Server - How to setup and configure
Jun 09, 2024
Nehajte se igrati, začnite se učiti!
Feb 19, 2024
Unpacking Plan ₿ Conference 2023: A Journey with Bitcoin Enthusiasts
Oct 28, 2023