Per comprendere nel profondo il funzionamento interno delle Bitcoin unspent transaction output (UTXO), occorre innanzitutto avere una solida conoscenza di base del processo di costruzione delle transazioni Bitcoin (BTC).
Le transazioni in Bitcoin, al loro livello più elementare, generano nuove transazioni utilizzando gli output delle transazioni precedentemente completate come input per la costruzione della nuova transazione.
Prendiamo ad esempio il seguente scenario: Mario vuole dare a Maria 1 bitcoin, ma sa che deve pagare una commissione di transazione di 0,25 bitcoin. Di seguito sono riportati alcuni esempi di input possibili per questo tipo di transazione:
- Input 1: 0,25 bitcoin (BTC)
- Input 1: 0,25 bitcoin (BTC)
- Input 3: 0,25 bitcoin (BTC)
- Input 4: 0,25 bitcoin (BTC)
- Input 5: 0,25 bitcoin (BTC).
Tenendo conto del costo della transazione, pari a 0,25 BTC, il risultato finale dello scambio, ovvero la quantità di bitcoin che Maria otterrebbe realmente, sarebbe il seguente:
- Output 1: 0,25 bitcoin (BTC)
- Output 1: 0,25 bitcoin (BTC)
- Output 3: 0,25 bitcoin (BTC)
- Output 4: 0,25 bitcoin (BTC)
- Output 5: 0,25 bitcoin (BTC).
Di conseguenza, al termine della transazione, Maria riceverà 1 bitcoin (BTC). L’output di una transazione può essere considerato un output di transazione non speso (UTXO) o un output di transazione speso. Entrambi i termini si riferiscono alla stessa cosa. Affinché una transazione sia considerata legittima, come quella di Mario, l’unico tipo di output della transazione che può essere utilizzato come input è quello che non è ancora stato speso.
Anche gli output sono valori interi discreti che hanno un prezzo in satoshi, ma non possono essere suddivisi più di quanto non lo siano già. Al momento, la più piccola unità di conto utilizzabile sulla rete Bitcoin si chiama satoshi e un bitcoin equivale a 0,00000001 satoshi.
Per difenderti adeguatamente dagli attacchi normativi e dai disastri di mercato, se hai esposizioni in criptovalute e DeFi leggi subito il nostro approfondimento per navigare senza paura durante la tempesta:
Sta arrivando l’Apocalisse DeFi e non ho niente da mettermi
Table of Contents
Cosa sono le Bitcoin unspent transaction output (UTXO)
L’insieme di UTXO è un database mondiale che mostra tutti gli output spendibili che sono disponibili per essere utilizzati nella creazione di una transazione in bitcoin (BTC). Questo è il ruolo principale che l’insieme UTXO svolge nella rete Bitcoin. Quando si forma una nuova transazione, questa utilizza un output non speso dall’insieme UTXO. Questo fa sì che l’insieme diventi più piccolo di quanto non fosse prima. D’altra parte, la dimensione dell’insieme UTXO aumenta ogni volta che viene generato un nuovo output non speso.
I nodi completi Bitcoin sono necessari per tenere un registro di tutte le uscite che non sono ancora state spese sulla rete Bitcoin (BTC). Questo viene fatto per garantire quanto segue:
Un utente non stia cercando di spendere bitcoin che sono già stati spesi (noto anche come double spend) in questa transazione.
L’importo totale dei bitcoin che possono essere spesi con la chiave privata di un utente è noto come il suo saldo. Questo importo è la somma di tutte le uscite individuali dell’utente. Per questo motivo, ogni volta che un utente avvia una transazione, vengono utilizzate le uscite dell’insieme UTXO dell’utente. Durante l’elaborazione di una transazione, tutte le uscite che non sono ancora state spese devono essere completamente esaurite e il resto che doveva essere dato deve essere restituito se il valore totale delle uscite è superiore al valore della transazione.
Ad esempio, se un utente possiede un UTXO del valore di 10 bitcoin ma la sua transazione richiede solo 2 bitcoin, i 10 bitcoin vengono trasferiti per intero e vengono prodotte due uscite:
- L’output 1-2 Bitcoin sarà pagata al destinatario.
- L’output un pagamento compreso tra 2 e 8 BTC rimborsato al portafoglio dell’utente come resto.
Durante una transazione, gli output di transazione registrati in precedenza e non ancora spesi vengono esauriti e vengono creati nuovi output di transazione, che possono essere utilizzati in una transazione successiva. In questo modo è possibile spostare i bitcoin da un proprietario all’altro e ogni transazione contribuisce alla catena di transazioni consumando e producendo UTXO.
D’altra parte, la catena di input e output non è rispettata da un certo tipo di transazione, nota come transazione coinbase. Una transazione coinbase è la prima transazione che un miner inserisce in un blocco che ha prodotto; è una transazione che ricompensa il miner in bitcoin per aver costruito con successo un blocco che può essere trasmesso alla rete. I minatori vengono ricompensati in bitcoin per aver creato con successo blocchi che possono essere trasmessi alla rete. Poiché questo tipo di transazione non richiede alcun input, non fa uso di UTXO.
Se desideri una guida completa sul Margin Trading e l’importanza della comprensione profonda di leva finanziare ed esposizione sui mercati, non perdere il nostro approfondimento:
Cos’è il Margin Trading e come funziona nei mercati delle criptovalute
Come funzionano le transazioni bitcoin sulla blockchain
Un PubKey è uno script di blocco che viene allegato all’output di una transazione Bitcoin. Affinché un destinatario possa spendere i suoi bitcoin (BTC), deve prima soddisfare una serie di requisiti. D’altra parte, scriptSig è lo script di sblocco che soddisfa i vincoli stabiliti sull’output da scriptPubKey. Di conseguenza, scriptSig è ciò che consente di spendere i bitcoin ed è quindi necessario affinché la transazione abbia luogo.
Continuando con l’esempio precedente, affinché Maria possa spendere i bitcoin ottenuti da Mario, ogni uscita avrà uno script di blocco chiamato scriptPubKey. Affinché questo script di blocco sia soddisfatto, deve essere prima soddisfatto lo script di sblocco chiamato scriptSig.
Per dimostrarlo, quando Mario decide di iniziare la transazione con Maria, gli output che Maria riceve contengono una certa quantità di bitcoin (BTC) che possono essere spesi solo nelle specifiche circostanze delineate dallo scriptPubKey collegato alla transazione. Quando Maria decide di spendere questi output, genera prima un input che contiene uno script di sblocco chiamato scriptSig. Affinché Maria possa spendere questi output, i criteri imposti da Mario sugli output precedenti devono essere soddisfatti da scriptSig.
Polvere di Bitcoin (Bitcoin dust) e unspent transaction output (UTXO)
Ci sono casi in cui l’insieme Bitcoin UTXO contiene uscite non spendibili; tuttavia, questo non era il caso prima della versione 0.9 del client Bitcoin Core. L’insieme Bitcoin UTXO ora contiene uscite spendibili.
La creazione di applicazioni come smart contract e applicazioni di registrazione digitale da parte di sviluppatori che utilizzano il linguaggio di scripting delle transazioni Bitcoin noto come Script ha portato alla generazione di output non spendibili. Queste applicazioni hanno generato output che non potevano essere spesi, ma sono stati comunque conteggiati come parte dell’insieme UTXO.
L’effetto finale è stato un insieme di UTXO in continua crescita, che ha reso più costoso mantenere un nodo Bitcoin completo. Si tenga presente che i nodi completi Bitcoin sono necessari per tenere traccia di tutte le uscite nell’insieme UTXO, quindi questo ha reso la gestione di un nodo completo Bitcoin più difficile e dispendiosa in termini di tempo.
Tuttavia, con la versione 0.9 del client Bitcoin core è stato creato l’operatore RETURN. Questo operatore è responsabile della creazione di uscite non spendibili, che non vengono conservate nell’insieme UTXO. Tuttavia, nonostante il fatto che le uscite RETURN non siano più conservate nel set UTXO, sono ancora registrate sulla blockchain, il che significa che c’è ancora bisogno di spazio su disco per ospitare questi dati.
La “polvere di Bitcoin” (Bitcoin Dust)
Nell’implementazione di riferimento di Bitcoin Core, la polvere è definita come un output ogni volta che la tassa richiesta per trasferirla è superiore a un terzo del valore della polvere. In altre parole, la polvere, o crypto dust, è un termine che si riferisce ai bitcoin di basso valore per i quali la tassa di transazione da pagare per spostarli è superiore al valore dei bitcoin stessi.
La polvere può rappresentare una sfida, in quanto la sua gestione è intrinsecamente inefficiente e costosa. Tuttavia, se diversi output di basso valore vengono combinati in un unico output di valore superiore, la possibilità che si verifichi una transazione di questo tipo aumenta. Gli utenti di alcuni portafogli hanno la possibilità di eseguire questa azione, che viene fornita dai fornitori dei wallet crittografici.
In sintesi
Per riassumere quanto affrontato nell’articolo di oggi, l’insieme Bitcoin UTXO comprende tutti gli output spendibili generati dalla rete Bitcoin. Ogni output è un valore intero discreto espresso in termini di satoshi.Ai nodi completi della rete Bitcoin viene assegnata la responsabilità di monitorare tutti gli output spendibili sulla rete per garantire che nessun bitcoin venga speso due volte.
L’uso di Script per costruire applicazioni può portare alla generazione di output non spendibili. Gli output non spendibili sono ancora registrati sulla blockchain di Bitcoin, nonostante non siano più inclusi nell’insieme UTXO.
I bitcoin che producono output di basso valore, talvolta noti come “polvere di bitcoin” o bitcoin dust, sono valute digitali le cui commissioni di transazione sono superiori al valore dei bitcoin stessi.
*NB: Le riflessioni e le analisi condivise sono da intendere ad esclusivo scopo divulgativo. Quanto esposto non vuole quindi essere un consiglio finanziario o di investimento e non va interpretato come tale. Ricorda sempre che le scelte riguardo i propri capitali di rischio devono essere frutto di ricerche e analisi personali. L’invito è pertanto quello di fare sempre le proprie ricerche in autonomia.