Bitcoin, dalle basi
UTXO Bitcoin: cosa sono e a cosa servono
In breve: un UTXO è una specifica uscita di una transazione Bitcoin che non è ancora stata spesa. Ogni pagamento consuma interamente uno o più UTXO e crea nuovi output per destinatario e resto. Il wallet calcola il saldo sommando quelli spendibili. Questa guida di bitcoinforfreedom.it separa le regole verificabili dalle semplificazioni dell'interfaccia.
Indice della guida13 sezioni
- Che cos'è un UTXO in Bitcoin?
- Come passa un UTXO da output a input?
- Che cos'è l'insieme degli UTXO?
- Perché il saldo del wallet non è un unico numero sulla blockchain?
- In che modo gli UTXO incidono sulle commissioni?
- Che cos'è la coin selection?
- Quali effetti hanno gli UTXO sulla privacy?
- Gli UTXO cambiano la custodia dei bitcoin?
- Come si controlla un UTXO senza affidarsi a un block explorer?
- Qual è la differenza tra UTXO, indirizzo e chiave privata?
- Cosa conviene ricordare prima di gestire gli UTXO?
- Quali sono le domande frequenti sugli UTXO?
- Quali fonti primarie e quale metodo sono stati usati?
Che cos'è un UTXO in Bitcoin?
Un UTXO è un output di una transazione Bitcoin che non è ancora stato speso. Contiene un valore in satoshi e condizioni crittografiche da soddisfare per usarlo come input di una nuova transazione. Il saldo mostrato da un wallet deriva, in sostanza, dalla somma degli UTXO che può spendere.
La sigla significa Unspent Transaction Output, cioè “output di transazione non speso”. Non descrive una moneta separata, un account o un file nel wallet: indica una specifica uscita di una transazione registrata nella catena, identificabile tramite il txid della transazione e l'indice dell'output, spesso chiamato vout.
La documentazione per sviluppatori di Bitcoin chiarisce che ogni input non coinbase spende un outpoint precedente, formato proprio da txid e indice. L'output associa inoltre un importo in satoshi a uno script di blocco, detto scriptPubKey, che stabilisce le condizioni per la spesa. Fonte: Bitcoin Developer Reference.
Come passa un UTXO da output a input?
Ogni pagamento consuma uno o più UTXO esistenti e crea nuovi output. Un input indica l'output precedente da spendere e fornisce i dati necessari a soddisfarne le condizioni; gli output della nuova transazione assegnano il valore ai destinatari e, quando serve, restituiscono il resto al pagatore.
Il ciclo può essere letto in quattro passaggi:
- una transazione crea un output da 100.000 satoshi;
- finché quell'output non viene speso, è un UTXO;
- una nuova transazione lo cita come input attraverso
txid:vout; - la nuova transazione crea altri output, che diventano a loro volta UTXO se validi e non spesi.
Un UTXO si spende interamente a livello di transazione. Se devi pagare 30.000 satoshi con un UTXO da 100.000, non ne “tagli” una parte lasciando invariato il resto: la transazione consuma l'output originale e può creare, per esempio, un output al destinatario e un output di resto. La differenza non assegnata agli output costituisce la commissione del miner. La guida ufficiale sulle transazioni descrive questo meccanismo e raccomanda un nuovo indirizzo per il resto. Fonte: Bitcoin Developer Guide.
Esempio numerico
| Elemento | Valore | Cosa rappresenta |
|---|---|---|
| UTXO A selezionato | 70.000 sat | Primo input |
| UTXO B selezionato | 40.000 sat | Secondo input |
| Totale input | 110.000 sat | Valore disponibile nella transazione |
| Pagamento | 85.000 sat | Output al destinatario |
| Resto | 23.000 sat | Nuovo output controllato dal pagatore |
| Commissione | 2.000 sat | Input meno output |
L'esempio è didattico: un wallet reale stima il peso della transazione, sceglie gli input e decide se creare il resto secondo le proprie regole. La relazione contabile, invece, è sempre verificabile: la somma degli output non può superare la somma degli input, salvo il caso speciale della transazione coinbase che crea il sussidio di blocco e raccoglie le commissioni.
Che cos'è l'insieme degli UTXO?
L'UTXO set è l'insieme corrente degli output validi e non ancora spesi che un nodo usa per verificare nuove transazioni. Quando un output viene speso, esce dall'insieme; quando una transazione valida crea nuovi output, questi vi entrano. Non è un saldo globale per indirizzo, ma uno stato derivato dalla catena.
Un nodo che valida una transazione controlla, tra le altre cose, che gli input facciano riferimento a output spendibili e che le condizioni previste siano soddisfatte. La distinzione tra output spesi e non spesi impedisce di accettare due volte la stessa uscita come input nella catena valida. Fonte: Bitcoin Developer Guide, blockchain.
Bitcoin Core espone funzioni specifiche per interrogare questo stato. L'RPC gettxout verifica un determinato output non speso, gettxoutsetinfo restituisce statistiche sull'insieme e scantxoutset cerca output compatibili con descrittori indicati dall'utente. Sono strumenti di nodo, non servizi che attribuiscono automaticamente un'identità alle uscite. Fonte: Bitcoin Core RPC 31.0.0.
Perché il saldo del wallet non è un unico numero sulla blockchain?
Bitcoin usa un modello basato su output, non un registro di conti con una riga “saldo”. Il wallet individua gli UTXO spendibili con le proprie chiavi e regole, ne somma il valore e distingue importi confermati, non confermati, bloccati o non ancora maturi. Il numero visualizzato è quindi una vista calcolata.
Due wallet che controllano le stesse chiavi possono mostrare valori temporaneamente diversi se hanno una diversa altezza di sincronizzazione, politiche differenti per le transazioni non confermate o filtri diversi sugli output spendibili. Questo non modifica le regole di consenso: indica soltanto che il saldo dell'interfaccia dipende dai dati conosciuti e dalle categorie applicate dal software.
Il punto operativo è semplice: possedere la chiave necessaria non “contiene” i bitcoin. La chiave consente di autorizzare una spesa conforme allo script dell'UTXO; il nodo verifica poi quella spesa rispetto alle regole di Bitcoin e allo stato degli output non spesi.
In che modo gli UTXO incidono sulle commissioni?
La commissione dipende dalla dimensione virtuale e dal fee rate della transazione, non dal valore economico inviato in sé. Se per raggiungere lo stesso importo servono molti input, la transazione tende a pesare di più; per questo numerosi UTXO piccoli possono costare più di pochi UTXO grandi quando vengono spesi insieme.
La relazione pratica è:
commissione stimata = virtual size × fee rate
Il tipo di script degli input e degli output cambia il peso effettivo. Segregated Witness ha introdotto il calcolo in weight units e la virtual transaction size, separando parte dei dati di witness dalla serializzazione di base. Fonte: BIP 141.
Questo non significa che “più UTXO” producano sempre una commissione maggiore: il wallet può selezionarne solo alcuni, un singolo UTXO può essere sufficiente e il fee rate varia con la domanda di spazio nei blocchi. Significa invece che la struttura degli input è una componente misurabile del costo.
Che cos'è la coin selection?
La coin selection è il processo con cui il wallet sceglie quali UTXO usare come input. Deve coprire pagamento e commissione, gestire l'eventuale resto e bilanciare obiettivi che possono entrare in conflitto: costo immediato, costo futuro, frammentazione, conferme disponibili e riservatezza delle informazioni.
Non esiste una scelta universalmente migliore. Una selezione che evita il resto può ridurre un output e alcune ambiguità, ma potrebbe utilizzare input meno convenienti. Consolidare molti UTXO quando il fee rate è basso può ridurre il peso di transazioni future, ma collega nello stesso evento output che prima non erano necessariamente associabili fra loro.
Il codice di Bitcoin Core valuta candidati di input attraverso algoritmi e una metrica di waste che considera costi correnti, costi attesi di spesa e valore eccedente. Questo è comportamento del wallet, non una regola di consenso. Fonte: Bitcoin Core, coinselection.cpp.
Quali effetti hanno gli UTXO sulla privacy?
Spendere più UTXO nella stessa transazione può fornire a un osservatore indizi che quegli input siano controllati insieme, ma resta un'euristica, non una prova d'identità. Anche l'individuazione del resto si basa su schemi probabilistici. Riutilizzare indirizzi rende più semplice collegare incassi e spese pubblicamente visibili.
Per ridurre l'esposizione involontaria:
- usa un nuovo indirizzo per ogni ricezione quando il wallet lo supporta;
- verifica destinatari, importi, commissione e resto prima di firmare;
- evita di unire senza motivo UTXO appartenenti a contesti che vuoi tenere separati;
- usa etichette locali e coin control solo se comprendi cosa il wallet rivela;
- considera che affidarsi a un server esterno può esporre richieste e indirizzi al gestore del servizio.
La guida per sviluppatori raccomanda di evitare il riuso delle chiavi e degli indirizzi perché la blockchain pubblica permette di seguire attività passate e future associate agli stessi riferimenti. Fonte: Bitcoin Developer Guide, “Avoiding Key Reuse”.
Nessuna singola funzione rende Bitcoin anonimo. Coin selection, rete usata dal wallet, gestione degli indirizzi, comportamento del destinatario e pubblicazione di dati fuori catena concorrono tutti al risultato.
Gli UTXO cambiano la custodia dei bitcoin?
Il modello UTXO non decide chi custodisce le chiavi. In autocustodia, l'utente o una configurazione condivisa controlla le chiavi richieste dagli script; con un custode, è il servizio a controllarle e l'utente dipende dai suoi registri e dalle sue procedure. La blockchain continua a verificare output e condizioni, non contratti commerciali.
Un backup deve proteggere il materiale necessario a ricostruire le chiavi e il criterio con cui il wallet trova gli script. I wallet deterministici descritti dal BIP 32 derivano un albero di chiavi da un'unica origine, ma formati, percorsi e funzioni aggiuntive possono variare. Verifica sempre la procedura di ripristino del software specifico prima di depositare fondi. Fonte: BIP 32.
Per flussi con hardware wallet, multisig o firme distribuite, il formato PSBT permette di trasportare una transazione incompleta e i dati relativi agli UTXO tra creatori, aggiornatori, firmatari e finalizzatori. Un firmatario deve comunque verificare output, valori, script e commissione prima di approvare. Fonti: BIP 174 e Bitcoin Core PSBT Howto.
Come si controlla un UTXO senza affidarsi a un block explorer?
Con un nodo Bitcoin Core sincronizzato puoi interrogare direttamente lo stato conosciuto dal nodo. Occorrono txid e indice dell'output; gettxout restituisce i dati se l'output è presente nell'UTXO set considerato. Per gli output del proprio wallet, listunspent offre una vista filtrabile degli UTXO disponibili.
Esempio concettuale:
bitcoin-cli gettxout "TXID" VOUT true
bitcoin-cli -rpcwallet="NOME_WALLET" listunspent
Il terzo argomento di gettxout indica se includere o meno la mempool nella verifica. Un risultato nullo può significare che l'output è già speso, non esiste nello stato interrogato o dipende da una transazione non considerata. Prima di trarre conclusioni, controlla sincronizzazione del nodo, rete selezionata e parametri. Fonte: Bitcoin Core gettxout.
Qual è la differenza tra UTXO, indirizzo e chiave privata?
Un UTXO è valore vincolato da condizioni di spesa; un indirizzo comunica una destinazione; una chiave privata autorizza operazioni previste dallo script; un wallet coordina questi elementi. Nessuno dei quattro coincide automaticamente con una persona, un conto bancario o un contenitore fisico dei bitcoin.
| Concetto | Funzione | Cosa non è |
|---|---|---|
| UTXO | Output non speso con valore e condizioni | Un account personale |
| Indirizzo | Codifica usata per comunicare una destinazione compatibile | Il contenitore dei fondi |
| Chiave privata | Segreto usato in specifiche condizioni di firma | Un dato da condividere per ricevere |
| Script | Regola che definisce come un output può essere speso | Una prova automatica dell'identità civile |
| Wallet | Software o dispositivo che gestisce chiavi, script e transazioni | La blockchain stessa |
Queste distinzioni evitano due errori comuni: pensare che i bitcoin “siano dentro” il wallet e credere che un indirizzo equivalga sempre a una persona. Bitcoin registra transazioni e condizioni di spesa; l'associazione con soggetti, scopi e proprietà giuridica dipende da informazioni esterne.
Cosa conviene ricordare prima di gestire gli UTXO?
Tratta ogni UTXO come un pezzo spendibile con storia, valore e costo di utilizzo propri. Prima di consolidare, dividere o selezionare manualmente gli output, valuta commissioni, privacy, conferme e capacità di ripristino. Se non ti serve il coin control, lascia che un wallet affidabile applichi le sue politiche e verifica sempre il riepilogo prima della firma.
Checklist operativa:
- conserva un backup verificato e adatto al wallet utilizzato;
- non riutilizzare indirizzi per comodità;
- controlla fee rate, dimensione stimata, destinatari e resto;
- evita consolidamenti urgenti durante fee rate elevati;
- non classificare automaticamente un piccolo UTXO come attacco o “polvere”: valuta contesto e costo di spesa;
- usa un nodo proprio quando vuoi ridurre la dipendenza informativa da servizi terzi;
- per importi rilevanti, prova prima il flusso con somme limitate.
Per capire come gli UTXO vengono usati anche come ancoraggi in protocolli di validazione lato client, leggi LNP/BP: standard e protocolli sopra Bitcoin.
Quali sono le domande frequenti sugli UTXO?
Un UTXO è la stessa cosa di un bitcoin?
No. Un UTXO è una specifica uscita di transazione non ancora spesa, espressa in satoshi e vincolata da condizioni. Il saldo del wallet è la somma degli UTXO che può spendere.
Un UTXO può essere speso solo in parte?
No. La transazione consuma interamente l'UTXO selezionato e crea nuovi output: uno per il pagamento, uno eventuale per il resto e la differenza destinata alla commissione.
Perché molti UTXO possono aumentare le commissioni?
Molti UTXO possono richiedere più input. Più dati rendono la transazione virtualmente più grande; a parità di fee rate, una dimensione maggiore tende a produrre una commissione più alta.
È sempre meglio avere pochi UTXO?
No. Ridurre il numero degli output può contenere alcuni costi futuri, ma consolidarli può collegare attività prima separate e peggiorare la privacy. La scelta dipende da commissioni, importi e obiettivi.
Come posso vedere gli UTXO del mio wallet?
Un wallet con coin control può mostrarli nell'interfaccia. Con Bitcoin Core puoi usare listunspent per il wallet e gettxout per verificare uno specifico output nello stato conosciuto dal nodo.
Quali fonti primarie e quale metodo sono stati usati?
Questa guida è stata verificata il 31 agosto 2026 confrontando struttura delle transazioni, regole sugli output, RPC e formati di firma con documentazione Bitcoin Developer, BIP e repository Bitcoin Core. Gli esempi numerici sono originali e didattici; non descrivono una transazione reale né costituiscono una raccomandazione di custodia o investimento.
