Bitcoin transaction illustration

Capitolo 4

Come funzionano le transazioni in Bitcoin

Capisca cosa succede quando si effettua un trasferimento di Bitcoin, compresi ingressi/uscite, UTXO, cambio e come vengono calcolate le commissioni di transazione.

Clock icon14 minuti|Pubblicato il 29.05.2024

Indice dei contenuti

  1. Introduzione
  2. Ingressi e uscite delle transazioni
  3. UTXO è ciò che lei spende
  4. Il concetto di "cambiamento" in Bitcoin
  5. Firmare una transazione
  6. Trasmissioni e conferme
  7. Come funzionano le tasse di commissione di Bitcoin
  8. Come leggere un block explorer di Bitcoin
  9. FAQ

Introduzione

Le transazioni Bitcoin sono probabilmente la parte più cruciale del sistema bitcoin, in quanto sono la cosa che effettivamente elabora. Qualsiasi utente può avviare una transazione, che viene poi propagata sulla rete, convalidata da nodi completi e infine aggiunta alla blockchain di Bitcoin, che non è altro che un registro di transazioni distribuito a livello globale.

Ricordiamo che una blockchain è un registro di chi possiede cosa e quando. Pertanto, una transazione comunica alla rete che il proprietario di un determinato valore di bitcoin ha autorizzato il trasferimento di tale valore a un altro proprietario. Quando le unità Bitcoin vengono trasferite da un indirizzo all'altro, viene creata una traccia immutabile della proprietà.

Tecnicamente, non esistono bitcoin. Sebbene di solito si parli di unità Bitcoin o di bitcoin per dare un senso a ciò che accade quando si effettua una transazione, in realtà non esistono né l'una né l'altra cosa.

Il Bitcoin si basa esclusivamente sulla tecnologia del libro mastro, che abbiamo spiegato qui. Il libro mastro registra costantemente la storia delle transazioni, tenendo traccia delle entrate e delle uscite di tali transazioni.

Di conseguenza, lei e chiunque altro può sfogliare e controllare ogni transazione che sia mai stata registrata sulla blockchain di Bitcoin, ottenendo una panoramica completa di tutti i proprietari di bitcoin.

Ingressi e uscite delle transazioni

Una transazione Bitcoin è composta da due elementi chiave: gli ingressi e le uscite.

Gli ingressi rappresentano gli addebiti da un indirizzo Bitcoin, ovvero la quantità di BTC che viene inviata in una transazione.

Le uscite possono essere viste come crediti verso un indirizzo Bitcoin, ovvero la quantità di BTC che viene ricevuta in una transazione.

Ingressi e uscite Bitcoin

Per effettuare una transazione sono ovviamente necessari degli input per creare degli output. Ma essendo Bitcoin una catena di transazioni, l'ingresso di una transazione è sempre la uscita di una transazione precedente.

In pratica, un input prende gli uscite spendibili di una o più transazioni passate per effettuare una nuova transazione, creando così ulteriori uscite che possono essere spesi nuovamente in futuro.

UTXO è ciò che lei spende

Gli output spendibili delle transazioni precedenti sono chiamati UTXO ("unspent transaction output"), che significa "uscita di transazione non spesa".

Mentre gli input di una determinata transazione sono UTXO provenienti da una o più transazioni precedenti, gli output di quella determinata transazione diventeranno gli UTXO del suo destinatario.

Possiamo quindi dire che gli UTXO sono gli elementi fondamentali delle transazioni Bitcoin.

Essendo per definizione non spesi, gli UTXO possono essere utilizzati come input per una transazione futura. A tutti gli effetti, possiamo dire che le unità di Bitcoin sono visualizzate in un UTXO. Pertanto, il "saldo" Bitcoin di un utente è la somma di tutti gli UTXO del suo portafoglio.

Bitcoin UTXO

Per conoscere gli UTXO che un determinato utente ha il diritto di spendere, il portafoglio dell'utente esegue una scansione dell'insieme di UTXO della blockchain Bitcoin, che consiste nell'importo totale di tutti gli UTXO conosciuti sulla rete. Solo se il portafoglio trova un numero di UTXO sufficiente a raggiungere l'importo che l'utente vuole inviare, crea una transazione con questi UTXO come input.

Quando un UTXO viene speso, la rispettiva transazione Bitcoin che consegna questo UTXO assicura che l'UTXO sarà nuovamente spendibile dal destinatario.

Il concetto di "cambiamento" in Bitcoin

È interessante notare che spendere Bitcoin funziona in modo simile alle transazioni in contanti. Se lei acquista qualcosa che costa 9 euro con una banconota da 10 euro, riceverà indietro 1 euro come resto.

Il Bitcoin funziona allo stesso modo: se gli UTXO utilizzati come input per una transazione sono maggiori dell'importo trasferito, il mittente riceverà la differenza come resto.

A causa della struttura del Bitcoin, un UTXO deve essere consumato per intero quando viene utilizzato, non può essere suddiviso. Per questo motivo il resto deve essere generato in uscita da una transazione.

Ad esempio, se si dispone di 0.6 BTC di UTXO e si desidera inviare 0.5 BTC a qualcun altro, la transazione consumerà 0.6 BTC ma restituirà 0.1 BTC.

Resto Bitcoin

Questo meccanismo ha spaventato molti nuovi utenti di Bitcoin, che hanno visto scomparire la maggior parte del loro saldo Bitcoin dopo aver effettuato una transazione, per poi vedere apparire l'importo giusto un attimo dopo.

Questo accade proprio perché è necessario inviare un numero di UTXO sufficiente a coprire l'importo della transazione desiderata, e la differenza viene restituita.

Poiché tutto questo avviene in una singola transazione, che richiede tempo per essere elaborata e confermata dalla blockchain di Bitcoin, si spiega perché lei non vede il suo resto tornare immediatamente sul suo indirizzo: deve essere verificato dalla rete prima di riapparire.

Firmare una transazione

Quando lei invia Bitcoin a qualcun altro, la transazione deve essere firmata per essere approvata. Ciò significa che gli UTXO che la transazione deve utilizzare devono essere "sbloccati" dalla chiave privata che li controlla. Questo è ciò che accade quando si fa clic sul pulsante "Invia" in un portafoglio Bitcoin: l'applicazione utilizza la chiave privata per generare una firma per la transazione.

In questo modo, ogni transazione contiene la firma utilizzata per approvarla, che è la prova della proprietà dell'importo di bitcoin speso in quella transazione.

Questa firma può essere convalidata in modo indipendente da chiunque legga la rete Bitcoin. In un certo senso, possiamo dire che spendere Bitcoin equivale a firmare una transazione Bitcoin, che trasferisce un certo numero di bitcoin da un indirizzo a un altro.

Questa firma è il modo in cui i proprietari di Bitcoin possono dimostrare, tramite la crittografia, di possedere una certa quantità di bitcoin su un determinato indirizzo.

Da notare che una firma non richiede necessariamente il trasferimento di bitcoin, ma può anche essere usata per firmare un messaggio. Alcuni portafogli Bitcoin forniscono un'interfaccia che consente di inserire una stringa di testo, farla passare attraverso una formula matematica in combinazione con la chiave privata e restituire una stringa di output che conferma il controllo su un indirizzo.

Trasmissioni e conferme

Ora che lei ha firmato una transazione e ha avviato il trasferimento di alcuni bitcoin a un altro indirizzo, vediamo cosa succede dopo.

Per prima cosa, la transazione viene trasmessa ai nodi completi vicini all'utente, che la trasmettono ad altri nodi completi fino a raggiungere l'intera rete, come un'onda.

Una volta fatto, i nodi completi iniziano il loro lavoro di verifica. Verificano che l'utente abbia il saldo sufficiente per effettuare la transazione, controllano la sua firma e se sta cercando di spendere due volte, e controllano che la transazione sia conforme a tutte le regole dell'altra rete.

Dopo che la transazione ha superato questa fase di verifica, viene aggiunta alla mempool (una sorta di sala d'attesa per le transazioni non confermate) dove aspetterà di essere raccolta da un minatore che la includerà in un blocco.

Quando la transazione è stata inclusa in un blocco che è stato estratto con successo, il nuovo blocco viene propagato alla rete e verificato dai nodi completi. Una volta fatto, la transazione è confermata. Evviva!

Fasi di una transazione Bitcoin

L'aggiunta di un blocco alla blockchain richiede la risoluzione di un problema matematico molto complesso e l'inversione è altrettanto difficile. Logicamente, l'inversione di un maggior numero di blocchi diventa esponenzialmente complessa e intensiva, ed è per questo che più blocchi passano dopo il blocco della transazione, più questa sarà sicura.

Pertanto, ogni blocco che passa dopo la transazione rappresenta una conferma in più della stessa. Per questo motivo, se lei controlla la transazione su un block explorer, vedrà il suo numero di conferme aumentare nel tempo.

Le conferme sono utilizzate da molte applicazioni per determinare se considerano la transazione sufficientemente certa o meno. Ad esempio, se lei paga qualcosa con i bitcoin, l'applicazione di pagamento considererà il pagamento riuscito solo se è stato raggiunto un certo numero di conferme.

Come funzionano le tasse di commissione di Bitcoin

Poiché Bitcoin non ha un'entità centrale che elabora le transazioni e mantiene il suo libro mastro, deve esserci un incentivo per qualcuno a svolgere questo compito. Come lei sa dal nostro precedente capitolo sulla rete Bitcoin, questo compito è svolto dai minatori. Sebbene siano pagati con le ricompense dei blocchi, sono anche pagati con le commissioni di transazione.

La commissione di transazione viene pagata dal mittente di una transazione Bitcoin al suo minatore, e l'importo di tale commissione indica ai minatori quanto il mittente è disposto a pagare per elaborare la transazione.

Poiché il mining è un'attività orientata al profitto, i minatori di solito scelgono le transazioni in attesa nella mempool con le tariffe più alte. In teoria, quindi, sarebbe possibile rilasciare una transazione a tariffa zero sulla rete Bitcoin, ma in pratica non entrerebbe mai nella blockchain e rimarrebbe in sospeso per sempre.

Le commissioni per le transazioni Bitcoin sono un mercato guidato dalla domanda e dall'offerta. L'offerta è la capacità disponibile dei minatori di elaborare le transazioni, mentre la domanda è il numero di transazioni che gli utenti inviano alla rete. Pertanto, il costo di una transazione Bitcoin è sempre in evoluzione in base all'attuale livello di utilizzo della rete.

Quando si effettua una transazione, l'applicazione del portafoglio suggerisce automaticamente un importo che dovrebbe far elaborare la transazione in meno di un'ora. Naturalmente, a seconda dell'urgenza della transazione, l'utente può sempre scegliere manualmente una tariffa di transazione più alta o più bassa. Più alta è la tariffa, maggiore è la possibilità che la transazione venga scelta dai minatori per il blocco successivo.

Per verificare il livello attuale delle commissioni di transazione sulla rete Bitcoin, vada su mempool.space e consulti la sezione "Commissioni di transazione":

Commissioni di transazione mempool.space

I costi visualizzati sono espressi in sat/vB, ovvero quanti satoshis (1 BTC = 100.000.000 di satoshis) si devono pagare per ogni byte di dati consumato dalla transazione.

Ad esempio, se una transazione di 100 byte viene inviata con una tariffa di 20 sat/vB, il costo totale sarà di 100 x 20 = 2.000 satoshis, o 0.00002 BTC.

Il numero di byte consumati da una transazione dipende da diversi fattori. In genere, il numero di UTXO necessari per effettuare una transazione influisce in larga misura sul suo costo. Una transazione che utilizza 2 UTXO o una transazione che utilizza 100 UTXO avrà un costo radicalmente diverso. Ecco perché una transazione di 10 bitcoin potrebbe potenzialmente avere un costo inferiore rispetto a una transazione di 2 bitcoin.

Come leggere un block explorer di Bitcoin

I block explorer sono i browser web della blockchain. Permettono di vedere in tempo reale le transazioni che avvengono sulla rete e i dettagli di ogni indirizzo. Il più utilizzato oggi per Bitcoin è mempool.space, di cui abbiamo parlato più volte in questo articolo.

Essere in grado di leggerlo è molto importante: le permetterà di verificare in modo indipendente il saldo del suo portafoglio, la sua storia di transazioni e ciò che è accaduto in dettaglio con ciascuna di esse.

Per questo esempio, abbiamo scelto una transazione a caso da mempool.space, ecco come si presenta:

Transazione mempool.space

Transazione

Nella sezione delle transazioni, vedrà innanzitutto l'hash della transazione (il suo identificatore unico) e il numero di conferme. Vengono inoltre mostrati il timestamp, ovvero il momento in cui la transazione è stata estratta, il minatore che ha elaborato il blocco in cui la transazione è stata inserita e il dettaglio della commissione pagata per la transazione.

Flusso

Questo diagramma le fornisce un modo visivo per comprendere gli input e gli output della transazione. I rami a sinistra mostrano tutti gli input, mentre a destra si vedono tre output: la commissione della transazione (il ramo più piccolo), il cambio (il ramo centrale) e l'importo effettivamente trasferito (il ramo più grande).

Input & Output

Questa tabella mostra sul lato sinistro tutti gli input della transazione, che provengono tutti dallo stesso indirizzo (non è sempre così). Sul lato destro lei può vedere il resto che è stato rispedito allo stesso indirizzo, e poi l'importo principale (0,1 BTC) trasferito a un altro indirizzo.

Dettagli

L'interesse principale è quello di vedere la quantità di dati consumati dalla transazione, che viene utilizzata per determinare la sua tariffa.


FAQ

Che cos'è un UTXO?

UTXO, che significa "output di transazioni non spese", sono le quantità di bitcoin che un indirizzo ha ricevuto e che sono disponibili per essere spese. Il saldo di un portafoglio Bitcoin è quindi la somma dei suoi UTXO.

Perché il mio saldo Bitcoin è scomparso dopo aver inviato una transazione?

Per inviare bitcoin, la transazione utilizza il numero di UTXO del proprio indirizzo necessario per raggiungere l'importo desiderato. Poiché ogni UTXO deve essere utilizzato per intero, è frequente che si utilizzi una quantità superiore a quella desiderata. La differenza viene restituita al portafoglio come resto non appena la transazione viene confermata.

Come inviare Bitcoin?

L'invio e la ricezione di bitcoin avvengono tramite applicazioni di portafogli Bitcoin, come Bridge Wallet.

I portafogli Bitcoin hanno un pulsante di ricezione e uno di invio. Quando si fa clic sul pulsante "Invia", il portafoglio chiede di fornire l'indirizzo del destinatario, incollandolo o scansionando il codice QR. Le chiederà anche l'importo da inviare e, se il suo saldo di Bitcoin è sufficiente, sarà possibile inviare la transazione.

La maggior parte dei portafogli offre anche impostazioni avanzate, in cui è possibile modificare manualmente il prezzo che si è disposti a pagare per la transazione. Se lei non sa come scegliere l'importo, non lo modifichi e mantenga il valore predefinito del portafoglio.

Come ricevere i Bitcoin?

Quando lei fa clic sul pulsante "Ricevi" del suo portafoglio Bitcoin, le viene mostrato l'indirizzo Bitcoin che può condividere con le persone che vogliono inviarle Bitcoin.

È possibile condividere il proprio indirizzo scritto, di solito una stringa di 26-35 caratteri composta da numeri e lettere, oppure condividere l'indirizzo sotto forma di codice QR.

Quanto tempo richiede una transazione Bitcoin?

In media, un blocco di transazioni Bitcoin viene estratto ogni 10 minuti. Se la sua transazione ha un costo sufficiente per essere scelta dai minatori per il blocco successivo, ci vorranno pochi minuti. Se la tariffa è troppo bassa, possono essere necessarie ore o addirittura giorni.

Come accelerare una transazione Bitcoin?

Nel caso in cui una transazione sia rimasta in sospeso per troppo tempo, si può cercare di accelerarla aumentando la sua tariffa con la tecnica del Child Pays For Parent (CPFP). Per farlo, effettui una nuova transazione con qualsiasi importo rimasto nel suo portafoglio, ma con una tariffa significativamente più alta (può stimarla qui), e la invii a se stesso. Si noti che in alcuni casi funziona, ma non sempre.

Come annullare una transazione Bitcoin?

Non è possibile annullare una transazione Bitcoin confermata. Non è possibile nemmeno annullare una transazione non confermata, ma si può provare a sostituirla con una transazione con una commissione più alta per accelerarla.

Come verificare una transazione Bitcoin?

Vada su mempool.space e cerchi la transazione inserendo il suo ID nel campo di ricerca, oppure inserisca l'indirizzo del portafoglio del mittente o del destinatario.

Quante transazioni Bitcoin ci sono in un blocco?

La dimensione di un blocco Bitcoin è limitata a 1 MB di dati, il numero di transazioni che contiene dipende quindi dal loro peso. Ad oggi, i blocchi di Bitcoin contengono da 2.000 a 4.000 transazioni.

Non perdetevi la prossima guida!

Iscrivetevi alla nostra newsletter e riceverete i prossimi capitoli direttamente nella vostra casella di posta elettronica.

Iscrivetevi