Cos'è l'UTXO?
Il nome inglese di UTXO è Unspent Transaction Output, che viene tradotto come "output di transazione non speso". Va detto che il concetto centrale della transazione Bitcoin e il punto di conoscenza fondamentale della transazione è UTXO, quindi in questo articolo parleremo di questo UTXO.
Componenti di una transazione
Non esiste il concetto di conto in Bitcoin. Il cosiddetto saldo di un indirizzo viene effettivamente calcolato contando tutte le transazioni relative a questo indirizzo. Concentriamoci quindi sul microscopio e osserviamo innanzitutto quali elementi sono inclusi in una transazione.
Il primo elemento è input, che è Input. Innanzitutto non tutte le offerte lo prevedono. Ad esempio, ogni blocco contiene una transazione speciale autonoma dai minatori, che è la cosiddetta transazione coinbase. Si tratta di una transazione senza input. In questa transazione, una certa quantità di Bitcoin viene trasferita direttamente al minatore che ha prodotto questo blocco. Ad eccezione di questo caso speciale, tutte le altre transazioni hanno input. Ad esempio, se Xiao Ming vuole trasferire 1 Bitcoin a Xiao Gang, quale dovrebbe essere l'input di questa transazione? Si tratta di alcune transazioni relative all'indirizzo di Xiao Ming. Per essere più precisi, si tratta di output di transazioni non consumati appartenenti all'indirizzo di Xiao Ming incluso in queste transazioni, che è UTXO.
Quindi entriamo naturalmente nel secondo elemento, ovvero che la transazione dovrebbe includere l’output. "Output" è un termine, chiamato Output in inglese. Nella transazione in cui Xiao Ming trasferisce un Bitcoin a Xiao Gang, l'output della transazione è il Bitcoin che punta all'indirizzo di Xiao Zhang. In questo modo comprendiamo le ultime tre lettere di UTXO TXO, dove TX sta per transazione e O sta per Output. L'ultima U si riferisce a Unspent, che significa non consumato. Se Xiao Zhang non ha mai utilizzato questo Output per inserire altre transazioni, allora questo Output non è mai stato consumato ed è un UTXO.
L'ultimo elemento è la commissione di gestione. In una transazione non coinbase, l'input deve essere uguale all'output più la commissione di gestione. La commissione di gestione deve essere trasferita al miner. Per semplicità nella discussione, ignoriamo le spese di gestione.
Comprendere i componenti di base delle transazioni Bitcoin significa in realtà comprendere UTXO. Vai su http://blockchain.com e fai clic su una transazione specifica. Nei dettagli puoi vedere i fattori che abbiamo appena menzionato.
Inserisci input e apporta modifiche
Una caratteristica di UTXO è che, come le monete, non può essere suddiviso e utilizzato. Quindi, come si ottiene l'importo immesso durante la transazione e come si ottiene il resto?
Xiao Ming trasferisce 1 Bitcoin a Xiao Gang. L'intero processo è così. Xiao Ming deve raccogliere input sufficienti. Ad esempio, nella transazione precedente corrispondente all'indirizzo di Xiao Ming, ha trovato un UTXO con un valore nominale di 0,9, che non è sufficiente per 1 Bitcoin gli input sono consentiti nella transazione, quindi Xiao Ming ha trovato un altro UTXO con un valore nominale di 0,2, quindi ci saranno due input in questa transazione di trasferimento. Ci saranno anche due output contemporaneamente, uno che punta all'indirizzo di Xiaogang, con un valore nominale di 1 Bitcoin. L'altro indica l'indirizzo di Xiao Ming, con un valore nominale di 0,1 Bitcoin. Questo risultato è il resto.
Per risolverlo, l'intero processo è il seguente: Xiao Ming deve prima raccogliere abbastanza input** di valore sufficiente. Qui ha trovato due input, e questi due input stessi sono gli output delle transazioni precedenti. Questi due output sono UTXO prima di essere consumati, ma una volta che la transazione corrente ha effetto, entrambi verranno consumati e in questa transazione verranno generati due nuovi UTXO, uno che punta a Xiao Ming e l'altro che punta a Xiao Gang. Equivale a Xiao Ming e Xiao Gang che ricevono una moneta, che può essere spesa in altre transazioni in futuro. Il saldo dei rispettivi indirizzi di Xiao Ming e Xiao Gang è in realtà la somma di tutti gli UTXO corrispondenti.
In questo modo, capiremo come raccogliere input sufficienti, come generare output e apportare modifiche alle transazioni.
Perché utilizzare il modello UTXO?
A questo punto abbiamo una domanda: Bitcoin non è solo un grande registro? Perché non utilizzare il modello di account, ma utilizzare il modello UTXO?
Il modello di conto è il modello base di una banca tradizionale o di un servizio come Alipay. Con questo modello, ho un conto corrispondente che registra che ho 13 yuan, quindi il numero 13 è chiaramente registrato nel sistema. Il modello di conto è davvero molto semplice e molto flessibile. È il modello di conto utilizzato in Ethereum e in altri progetti blockchain. Guardando di nuovo Bitcoin, Xiao Ming ha 13 monete. In effetti, non esiste alcun numero 13 sulla blockchain, perché ci sono solo transazioni sulla blockchain. Ma quando apriamo un browser blockchain come http://blockchain.com, possiamo vedere il saldo corrispondente a un indirizzo. Questo è calcolato dal browser blockchain stesso e non è qualcosa che è originariamente sulla blockchain.
Ma molti esperti diranno che UTXO è un ottimo modello, soprattutto perché UTXO è molto adatto per il calcolo parallelo. Questa funzionalità è molto intelligente nelle reti di computer distribuite. I dettagli specifici non sono ciò di cui si occupa questo articolo. Raccomando l'articolo sull'account pubblico WeChat NervosNetwork (Confronto tra modelli UTXO e account), che contiene una discussione più dettagliata.
Riassumere
UTXO Qui smettiamo di parlare e riassumiamo qualche parola. UTXO è un concetto fondamentale per comprendere le transazioni Bitcoin. Per gli studenti che vogliono comprendere i principi alla base di Bitcoin, questa è una trappola che non può essere aggirata. Ogni transazione può contenere più input e solitamente contiene due output. L'output totale più le spese di gestione è esattamente uguale all'input totale. Ogni uscita è come una moneta, ha un proprio taglio e appartiene ad un indirizzo specifico. L'output che non è stato utilizzato come input di altre transazioni è l'"output della transazione non spesa", ovvero UTXO. Non esiste il concetto di account nel modello UTXO, quindi sembra un po' contorto se confrontato con il modello di account, ma in realtà presenta enormi vantaggi, come essere molto utile per il calcolo parallelo nei sistemi distribuiti.