Cos'è il set UTXO su Bitcoin?

Disponibile come podcast
Condividi l'articolo:

Bitcoin si basa in parte su un database che registra tutte le transazioni, noto come «Blockchain». Questo termine è ormai famoso, ma sapevi che esiste un altro database altrettanto importante per il funzionamento dei nodi Bitcoin? Questo elemento molto meno conosciuto è il set UTXO.

In questo articolo, ti invito a scoprire cos'è il set UTXO e il suo ruolo nel funzionamento di Bitcoin. Studieremo anche perché la sua evoluzione potrebbe rappresentare una minaccia per la stabilità di Bitcoin a medio termine e quali soluzioni vengono prese in considerazione per risolvere questo problema.

Cos'è un UTXO su Bitcoin?

UN UTXO (Output di transazioni non spese) è un output di una transazione Bitcoin che non è stato ancora speso. Concretamente, si tratta di pezzi di bitcoin più o meno grandi che un utente detiene e che sono disponibili per essere utilizzati in una transazione futura.

Ogni UTXO rappresenta una certa quantità di bitcoin ed è protetto da uno script che definisce le condizioni in cui può essere speso. Queste condizioni richiedono generalmente una firma ottenuta utilizzando una chiave privata in possesso del legittimo proprietario.

Per dirla semplicemente, l'UTXO per Bitcoin è il biglietto in euro. Bitcoin è l'unità di conto utilizzata su Bitcoin e UTXO è il mezzo che consente di rappresentare queste unità di conto.

Come funziona una transazione Bitcoin?

Una transazione consiste nel trasferimento di bitcoin da una serie di voci (Ingressi) a una serie di uscite (Uscite).

Le voci di una transazione corrispondono agli UTXO delle transazioni precedenti, che vengono consumati durante questa nuova transazione. Uno script di firma (Script SIG) viene utilizzato per sbloccare ogni UTXO nelle voci soddisfacendo le condizioni di spesa definite durante la creazione dell'UTXO.

In cambio, la transazione crea nuovi UTXO negli output. Ogni output associa una quantità di bitcoin a una nuova condizione di spesa (ScriptPub Key), spesso utilizzando un indirizzo di ricezione. Questi UTXO appena creati saranno quindi disponibili per essere utilizzati come input nelle transazioni future.

Cos'è il set UTXO?

Il set UTXO rappresenta tutti gli UTXO esistenti in un dato momento su Bitcoin. In altre parole, è un elenco esaustivo di tutti i bitcoin disponibili per essere spesi. Quindi, se sommiamo gli importi di tutti gli UTXO presenti nel set UTXO, otteniamo l'offerta totale di moneta in circolazione su Bitcoin.

Ogni nodo della rete mantiene il proprio set UTXO completo a livello locale, parallelamente alla Blockchain. Questo set UTXO viene costantemente aggiornato man mano che nuove transazioni vengono integrate nei blocchi.

Quando una nuova transazione viene inviata da un utente sulla rete, ciascun nodo verifica che gli UTXO utilizzati come input siano presenti nel relativo set UTXO. Ciò garantisce che i bitcoin spesi esistano effettivamente e non siano già stati consumati in un'altra transazione. Se l'UTXO è legittimo, la transazione viene accettata, altrimenti viene rifiutata per evitare doppie spese.

Una volta convalidata la transazione, il nodo aggiorna il suo set UTXO: rimuove gli UTXO usati come input e aggiunge i nuovi UTXO creati come output. Di conseguenza, il set UTXO viene costantemente aggiornato per riflettere le monete bitcoin disponibili.

Sul client di maggioranza Bitcoin Core, il set UTXO è conservato nel file»Chainstate».

➤ Scopri di più su come funziona un nodo Bitcoin.

Perché l'evoluzione del set UTXO potrebbe diventare un problema?

UTXO è in continua e rapida crescita su Bitcoin. A causa di numerosi fattori esterni e interni al sistema, il rapporto medio di UTXO creato dagli UTXO consumati è molto sbilanciato. Questa espansione è dovuta, in parte, all'aumento del prezzo del Bitcoin, che incoraggia l'uso di UTXO più piccoli, aumentandone così il numero totale. La crescente adozione sta inoltre determinando una maggiore necessità di UTXO.

Esiste anche la classica struttura delle transazioni di pagamento in Bitcoin, in genere un input per due output, che crea due UTXO per uno solo consumato. Infine, il CIOH (Euristica comune sulla proprietà degli input), pone un problema di riservatezza nel consolidamento di più UTXO e costituisce un ulteriore ostacolo alla riduzione del loro numero. UTXO and knots è quindi destinato a una crescita naturale e inevitabile.

Questo problema è noto da diversi anni agli sviluppatori di Bitcoin Core. L'aggiornamento SegWit del 2017 ha anche introdotto un incentivo economico al consolidamento riducendo le commissioni per le transazioni che consumano più input e creano meno output. Tuttavia, questa misura non è stata sufficiente per arginare il fenomeno.

Il problema di questa crescita è che il mantenimento del set UTXO richiede sempre più RAM. Affinché i nodi siano in grado di convalidare le transazioni in modo efficace, una parte del set UTXO deve essere archiviata nella RAM, in quanto ciò consente una verifica rapida. Questo problema riguarda anche l'orario di sincronizzazione iniziale (OFFERTA), ovvero il tempo necessario per scaricare e convalidare l'intera blockchain all'avvio di un nuovo nodo.

Con l'aumentare delle dimensioni dell'UTXO, aumenta anche il fabbisogno di RAM. Tuttavia, l'aumento della capacità RAM del computer (legge di Moore) non segue la stessa curva della crescita del set UTXO. Se questa tendenza continua, la gestione di un nodo Bitcoin diventerà sempre più costosa in termini di hardware.

Questo aumento dei requisiti hardware per l'esecuzione di un nodo potrebbe influire sul decentramento e sulla sicurezza della rete Bitcoin. Se il costo di manutenzione di un nodo aumenta, meno persone saranno in grado di farlo, il che ridurrà il numero di nodi e diminuirà la distribuzione e la robustezza della rete. La dimensione dell'UTXO è quindi una sfida importante per la redditività di Bitcoin a medio termine.

Quali sono le soluzioni all'aumento delle dimensioni del set UTXO?

La soluzione che sembra emergere per risolvere questo problema delle crescenti dimensioni dell'UTXO impostato su Bitcoin è Utreexo.

Utreexo è una soluzione inventata da Tadge Dryja (che è anche il cocreatore del Lightning Network) per comprimere il set UTXO utilizzando un accumulatore basato su alberi Merkle. L'UTXO classico, che contiene tutti gli UTXO, richiede molto spazio di archiviazione. Con Utreexo, questo vincolo viene alleviato, poiché i nodi Bitcoin non conservano più tutti gli UTXO, ma solo alcune impronte digitali crittografiche. Questo riduce drasticamente i requisiti di RAM e storage.

Quando un utente effettua una transazione compatibile con Utreexo, fornisce sia la prova del possesso degli UTXO utilizzati sia i percorsi Merkle associati. Il nodo verifica quindi queste prove per garantire che gli UTXO esistano complessivamente in base alla loro impronta crittografica, senza dover archiviare tutti i dati.

Utreexo può essere implementato in due modi. Il primo è generalizzarne l'uso in modo che tutte le transazioni contengano queste prove. Tuttavia, ciò aumenterebbe le dimensioni dei blocchi, il che influirebbe sulle esigenze di larghezza di banda e archiviazione. Il secondo metodo si basa su»Nodi bridge»: nodi completi che memorizzano anche il set UTXO completo e forniscono le prove necessarie per i nodi Utreexo. Utreexo sarebbe quindi un'opzione per gli utenti che non possono permettersi un nodo completo. In entrambi i casi, c'è un compromesso, sia in termini di risorse richieste che di dipendenza dai Bridge Nodes.

➤ Scopri cos'è Mempool su un nodo Bitcoin.

Conclusione

Il set UTXO è un grande elenco di tutti i pezzi di bitcoin esistenti in un dato momento, che viene gestito da ciascun nodo. Svolge un ruolo importante nel funzionamento di Bitcoin, ma la sua crescita rapida e quasi naturale porrà sfide per il futuro. Se le dimensioni dell'UTXO continuano ad aumentare, il costo di gestione di un nodo potrebbe diventare proibitivo per alcuni utenti.

Utreexo offre una soluzione riducendo i requisiti di RAM attraverso l'uso di accumulatori crittografici. Tuttavia, questo protocollo comporta necessariamente dei compromessi, sia sulla dimensione dei blocchi che in termini di dipendenza dai Bridge Nodes. In futuro potrebbero emergere altre soluzioni, ma è certo che si tratterà di un dibattito tecnico che dovrà essere affrontato nei prossimi anni.

Disponibile come podcast

Riepilogo

Condividi l'articolo:

Potrebbero piacerti questi articoli

Bitstack SAS, una società iscritta nel Registro del Commercio e delle Società di Aix-en-Provence con il numero 899 125 090, con il nome commerciale Bitstack, è registrata come agente di Xpollens - un istituto di moneta elettronica approvato dall'ACPR (CIB 16528 - RCS Nanterre n. 501586341, 110 Avenue de France 75013 Parigi) - presso l'Autorità di controllo e risoluzione prudenziale («ACPR»).») con il numero 747088 e approvato come Crypto-Asset Service Provider («PSCA») presso l'Autorité des Marchés Financiers («AMF») come scambio di criptovalute con fondi, lo scambio di criptoasset per altri cryptoasset, esecuzione di ordini di criptoasset per conto dei clienti, custodia e amministrazione di criptoasset per conto dei clienti e fornitura di servizi di trasferimento di criptovalute per conto dei clienti con il numero A2025-003, la cui sede principale si trova al 100 Impasse des Houillères 13590 Meyreuil.

L'investimento in asset digitali comporta il rischio di perdita parziale o totale del capitale investito.
Le performance passate non sono garanzia di performance future.
SCARICA
Bitstack