UTXO
Un UTXO, acronimo di Unspent Transaction Output (traducibile come “output di transazione non speso”), è quella quantità di criptovalute ottenuta dal destinatario, o risparmiata dal mittente, a seguito di una transazione su alcune blockchain (come quella di Bitcoin); l’importo di ogni UTXO potrà quindi essere “speso” in un nuovo scambio. Il saldo di un wallet crypto è, perciò, costituito dalla somma di tutti gli UTXO non ancora utilizzati.
Descriviamo con un esempio il funzionamento del modello UTXO: Anna ha nel suo portafoglio 1 Bitcoin e vuole trasferire a Beatrice 0.4 BTC; la transazione non sposterà l’importo esatto, ma avrà come input 1 BTC, che verrà poi diviso in 0.4 Bitcoin da inviare a Beatrice e 0.6 da restituire ad Anna. Gli output distinti di 0.4 BTC e 0.6 BTC, così generati, rappresentano due UTXO, che potranno essere input per future transazioni.
A tal proposito, il singolo BTC dell’esempio era costituito da un solo UTXO, in quanto risultato “intero” di passati scambi, perciò abbiamo dovuto frammentarlo; tuttavia, se da transazioni precedenti Anna avesse già ricavato un UTXO da 0.4 BTC, avrebbe potuto inviarlo direttamente a Beatrice. Al contrario, se Anna volesse inviare 1 Bitcoin “intero”, ma non avesse un UTXO di tale importo, potrebbe usare un UTXO da 0.7 BTC e uno da 0.3 BTC, sempre ottenuti da transazioni precedenti. Gli UTXO in input, infatti, possono anche essere “sommati” per produrre un output dal valore maggiore.
Il meccanismo è quindi molto simile a quello degli acquisti in moneta fiat, come l’Euro: gli UTXO sono equivalenti al resto che riceviamo quando paghiamo un oggetto con una quantità di denaro superiore al suo costo effettivo, perché non abbiamo banconote o monete del taglio giusto. Ad esempio, non possiamo “dividere” una banconota da 10€ per pagare un oggetto che ne costa 5€, dunque riceveremo come resto 5€, che potranno essere utilizzati per acquisti futuri.
Tornando al mondo crypto, il mittente firma ogni transazione con la sua chiave privata, così da “sbloccare” gli UTXO che possiede, indicando anche l’indirizzo wallet o la chiave pubblica del destinatario. Questo permette di tracciare gli scambi: gli UTXO rappresentano una “catena di proprietà”, essendo inizio e fine di ogni transazione. La “cronologia” di un UTXO, infatti, permette di risalire fino al miner che, in primo luogo, l’ha ricevuto come ricompensa dal mining.
Inoltre, ogni nodo nel network della blockchain conserva un registro aggiornato (set) di tutti gli UTXO esistenti in un dato momento e dei relativi proprietari. Complessivamente, il set di UTXO raccoglie un numero di coin pari alla disponibilità totale di quella criptovaluta.
In questo modo, i nodi possono verificare la validità di una transazione: controllano sempre che la quantità in input sia pari o superiore alla somma degli output, così da impedire agli utenti di spendere due volte gli stessi UTXO, un’azione illecita chiamata double spending.
Il modello UTXO, tuttavia, non viene sfruttato da tutte le blockchain: Ethereum, ad esempio, sfrutta il modello account per gestire i bilanci dei wallet e le transazioni effettuate sul network.