Come funzionano le transazioni Bitcoin spiegato semplice

Come funzionano le transazioni in Bitcoin spegato semplice

In questo articolo vediamo come funzionano le transazioni in Bitcoin con un esempio pratico.

Sebbene alcuni termini siano simili alle transazioni bancarie, nel Bitcoin le transazioni seguono logiche completamente diverse. Tuttavia, anziché incasinarci la vita con dei termini estraniati dal contesto, guarderemo ad un caso pratico che ci porterà nel dietro le quinte di una transazione bitcoin per capire come funziona.

Come si trasferisce la proprietà dei bitcoin? Come fa il network di Bitcoin a verificare che la transazione sia regolare? Cosa succede nella blockchain?

Queste e altre domande troveranno risposta in questo articolo (non troppo tecnico) sulle transazioni in bitcoin.

Iniziamo.

Come funzionano le transazioni in Bitcoin? un esempio smontato pezzo per pezzo

Il caso in esame è il seguente:

Paolo, il nostro novello investitore, ha appena comprato 1.5  bitcoin su un exchange e ora vuole trasferirli sul suo wallet non custodial.

Paolo ha recentemente letto su Checkpoint Bitcoin che tenere i bitcoin sull’exchange è una pessima idea perché lo espone a diversi rischi. Del resto, a Paolo non interessa fare trading ma vuole conservare i suoi bitcoin per un po’ di tempo e vedere come tirerà il vento in futuro.

Pertanto, ora Paolo vuole mandare i bitcoin sul suo wallet ed esserne il solo in controllo. E qui ha inizia la nostra storia che attraversa le transazioni in Bitcoin.

Generare l’indirizzo dove ricevere la transazione bitcoin

Paolo è davanti il computer con 2 attività in corso:

  • In una pagina del browser tiene aperto il suo conto sull’exchange. Il saldo segna 1.5 bitcoin.
  • Su un’altra finestra del desktop tiene aperto il suo portafoglio bitcoin, dove ha appena generato un indirizzo bitcoin da comunicare all’exchange.

A quel punto, copierà l’indirizzo nella pagina dell’exchange per richiedere il trasferimento di bitcoin dall’exchange al suo wallet.

Creazione della transazione bitcoin Pt.1 – Gli UTXO

L’exchange riceve la richiesta e si prepara ad inviare i bitcoin. Tuttavia Paolo ha richiesto il trasferimento dell’intera cifra (1.5 bitcoin), pertanto l’exchange deve compiere la sua prima scelta e cioè ‘quali bitcoin inviare’. Che vuol dire?

Questa è la prima differenza con il mondo tradizionale.

Nel mondo bancario quando vuoi trasferire denaro ad un soggetto, la cifra esatta viene prelevata dal tuo conto e trasferita ad un altro conto. Con Bitcoin è diverso. L’exchange selezionerà degli UTXO – delle transazioni bitcoin ricevute e non spese – che userà per creare la transazione verso Paolo.

Quando vuoi spendere dei bitcoin, ti trovi davanti delle transazioni uniche e distinte da te ricevute e non ancora spese che userai nella loro interezza per formare la transazione.

Transazioni bitcoin e saldo wallet
Le transazioni ricevute da un wallet sono come i soldi inseriti in un salvadanaio. Distinti e separati.

Aprendo il wallet ed esaminando i suoi UTXO, l’exchange si trova questo davanti questo scenario:

  • UTXO #1: 0.399437 bitcoin
  • UTXO #2: 0.7236827 bitcoin
  • UTXO #3: 2.23947823 bitcoin
  • UTXO #4: 50 bitcoin
  • UTXO #5: 0.000537 bitcoin
  • UTXO # 6: 3 bitcoin
  • UTXO #7: 1 bitcoin
  • UTXO #8: 0.7236827 bitcoin
  • UTXO #9: 1940 bitcoin
  • UTXO #10: 1200 bitcoin
  • UTXO #11: 2800 bitcoin

Saldo (somma UTXO): 6000 bitcoin

L’exchange decide di prendere la transazione n°7 e n°8:  Un totale di 1.7236827 bitcoin. 

Come vedi, è più di quanto l’exchange deve a Paolo. Perchè?

Le transazioni in Bitcoin prevedono che gli UTXO siano spesi per intero. Quando superano l’importo che si vuole spendere, semplicemente si crea un’ulteriore transzione che costituirà il ‘resto’.

Proprio come quando paghi in contanti, la transazione di resto è una transazione aggiuntiva che restituisce la differenza dell’importo dovuto al proprietario inviandolo su un nuovo indirizzo. In questo caso, l’exchange riceverà un UTXO di 0.223827 (meno le fee come vedrai dopo).

A questo punto l’exchange ha solo deciso quali UTXO spendere. Ora deve creare la transazione e ‘firmarla’ così da ultimare il trasferimento verso Paolo. Vediamo di che si tratta.

Creazione della transazione bitcoin Pt.2 – La firma digitale

L’exhange prende gli UTXO #7 e #8 e li firma con la chiave privata del wallet in suo possesso.

Lo scopo di questa procedura è di creare una transazione che, quando trasmessa al network, renda i nodi del network capace di validare la fattibilità della transazioni e le intenzioni del proprietario (nel nostro esempio l’exchange).

La transazione bitcoin che si sta costruendo avrà 3 elementi indispensabili:

  1. Gli input della transazione. Si tratta degli indirizzi dove sono depositati i bitcoin che si intende spendere.
  2. La firma digitale.  Un pezzo unico di dato che è matematicamente e inequivocabilmente legato al titolare degli indirizzi da cui si stanno spendendo quei bitcoin e che dimostra che la transazione è stata costruita dal legittimo proprietario.
  3. Gli output della transazione. Si tratta degli indirizzi di destinazione. In questo caso l’indirizzo generato da Paolo e trasmesso all’exchange.

Nota una particolarità: gli output di questa transazione domani costituiranno gli input delle transazioni effettuate da Paolo.

Arrivati qui, la transazione è pronta. Ora bisogna trasmetterla al network di Bitcoin e ai suoi miner così che possano aggiornare la blockchain e rendere a tutti gli effetti la transazione effettiva ed irreversibile.

Trasmissione della transazione bitcoin ai miner.

Seguendo le logiche di Bitcoin, la transazione costruita dall’exchange viene trasmessa al network di bitcoin attraverso il gossip protocol e cioè spifferandola a tutti i nodi che ci si trova attorno.

La transazione viene verificata nella sua fattibilità da questi nodi (utenti con il software Bitcoin e la blockchain nel PC) i quali a loro volta ‘spargeranno la voce’ finchè tutto il network conoscerà l’esistenza della transazione.

Sebbene la transazione sia ora nota, non è ancora in nessun blocco della blockchain. Pertanto Paolo non ha ancora in mano niente.

Le transazioni note ma non ancora inserite in un blocco aspettano la loro sorte in una specie di sala d’attesa virtuale detta mempool.

L’attesa durerà  finchè un miner si deciderà ad inserirla in un blocco, motivato dalle fee (ossia le commissioni che si può intascare per minare quella transazione specifica). Questa è la parte finale del processo che porta una transazione ad essere effettiva.

Grafico che mostra le transazioni in attesa di conferma coon le relative fee incluse
Grafico che mostra le transazioni in attesa di conferma con le relative fee incluse | fonte: CBP prep course

Inserimento della transazione in un blocco

A questo punto è il turno dei miner.

I miner sbirciano costantemente nella mempool e pescano gruppi di transazioni (quelle con le fee più alte) con le quali costruiscono i blocchi della blockchain. Ogni miner costruisce un blocco “ideale” fatto di transazioni in attesa nella mempool e poi lo mina, così da intascarsi le fee e i nuovi bitcoin che gli spettano come da regole del protocollo Bitcoin.

Non entreremo nel dettagli del mining e del protocollo Bitcoin. Se vuoi una visione d’insieme, leggi questa guida: il funzionamento di Bitcoin.

Cambio di stato della transazione: da pending a confermata

La transazione ora è passata dalla mempool ad un blocco inserito nella blockchain e conferisce finalmente 1.5 bitcoin a Paolo. Quel blocco infatti è ora noto a tutto il network e rappresenta lo stato contabile di Bitcoin nel mondo.

Se Paolo avesse monitorato incessantemente lo stato della transazione l’avrebbe vista passare da pending a confermata. Dal momento in cui la transazione è inserita in un blocco, ogni blocco rappresenterà una conferma. Maggiore è il numero di conferme, maggiore è la certezza che niente cambi.

Per convenzione, il massimo livello di certezza viene considerato 6 conferme. Tuttavia, 1 conferma può essere abbastanza a seconda di cosa stai transando.

La transazione è in un blocco ed il trasferimento è irreversibile
La transazione è effettiva solo quando inserita in un blocco della blockchain

Tutto questo processo, che mediamente prende 10 miuti, fa si che il nostro Paolo sia diventato ufficialmente il titolare di quei bitcoin.

Funzionamento transazioni bitcoin: conclusioni

Quello che hai visto è il dietro le quinte di una transazione in bitcoin. All’atto pratico, transare in bitcoin è qualcosa di semplicissimo che richiede pochi click e un’attesa media di 10 minuti, il tempo di creazione di un blocco.

Questo tipo di transazione bitcoin viene detto on-chain perché la transazione viene registrata immutabilmente sulla blockchain di Bitcoin.

L’alternativa alle transazioni on-chain sono quelle off-chain ossia transazioni che vengono effettuate sopra la blockchain di Bitcoin e permettono trasferimenti di valore istantanei in satoshi. Se vuoi saperne di più sulle transazioni off-chain, ne ho parlato in via generale nel mio articolo sui micropagamenti in bitcoin e le sue possibilità.

Concludo l’articolo con un po’ di termini strampalati, dubbi amletici e chiarificazione di vario genere sulle transazioni in bitcoin.

FAQ sulle transazioni bitcoin

Cos’è la blockchain in parole semplici?

La blockchain è un registro digitale che descrive lo stato contabile del Bitcoin, e cioè indica quali indirizzi sono attualmente in possesso di bitcoin e come ci sono finiti. Questo registro è distribuito su centinaia di computer (detti nodi) e viene aggiornato seguendo delle procedure particolari cosicchè tutto il network abbia lo stesso registro e quindi riconosca il medesimo stato contabile.

Cosa succede se una transazione bitcoin non viene confermata?

Se una transazione bitcoin non viene confermata quel trasferimento non è effettivo. Di conseguenza, quegli stessi bitcoin sono ancora nelle mani di chi li dovrebbe inviare che nel frattempo potrebbe costruire un’altra transazione e spenderli altrove.

Come cercare una transazione in bitcoin?

Per cercare una transazione in bitcoin puoi aprire il tuo wallet e vederne lo stato. In alternativa, puoi inserire l’indirizzo d’interessa all’interno di quei siti che analizzano la blockchain (i cosiddetti block explorer). Il modo migliore per cercare e verificare una transazione è consultare il proprio nodo.

Quanto costa una transazione bitcoin?

Il costo di una transazione bitcoin dipende fondamentalmente dal tipo di indirizzo utilizzato dal ricevente e dalle fee (commissioni) impostate per il trasferimento. Maggiore è l’urgenza nell’avere una transazione confermata, più alte saranno le fee che bisogna inserire per renderla ‘attraente’ ai miner. Minore è l’urgenza, minore sarà la priorità che avrà quella transazione. (leggi anche la prossima risposta)

Quanto pesa una transazione bitcoin?

Il peso di una transazione bitcoin è determinato da vari elementi tra cui il numero di input, di output ed altre informazioni necessarie. L’unità di misura invece sono i bytes. Ogni blocco della blockchain di Bitcoin ha una dimensione massima di 1mb, pertanto più spazio in bytes occupa una transazione, più costosa (in termini di satoshi) sarà la transazione.

Come si effettuano i pagamenti con i bitcoin?

I pagamenti in bitcoin si effettuano trasferendo bitcoin dall’acquirente al venditore nello stessa modo in cui si trasferisce denaro da un conto in banca ad un altro. Simile ai trasferimenti cash, non c’è un istituto finanziario in mezzo a regolare e permettere lo scambio. Basandosi su internet, lo scambio può essere effettuato con chiunque nel pianeta ed ovunque esso sia.

Quanto impiega una transazione bitcoin? Quanto può durare?

In media una transazione bitcoin impiega 10 minuti per essere convalidata ed essere inserita in un blocco della blockchain. Tuttavia 10 minuti è una indicazione di massima perché può richiedere anche meno di un minuto o oltre un’ora.

Cosa sono le fee?

Le fee sono le commissioni pagate da chi effettua la transazione bitcoin. La fee viene corrisposta al miner che mina il blocco in cui la specifica transazione viene inserita.

Cosa vuol dire pending?

Pending vuol dire che una transazione non è stata ancora confermata ma è nota al network. Questo significa che la transazione è nella mempool in attesa di essere inserita in un blocco della blockchain e quindi rendere effettiva la transazione in esame.

Fabio Arcieri
Fabio Arcieri
Sono laureato in economia e mi occupo di marketing e comunicazione. Per anni ho avuto la sensazione che ci fosse qualcosa di rotto nelle fondamenta della società e, dopo aver scoperto Bitcoin, finalmente sono riuscito a mettere insieme i pezzi. Checkpoint Bitcoin è il mio contributo alla causa del Bitcoin.
Potrebbe interessarti
Continua a navigare per aree tematiche
Segui Checkpoint Bitcoin

Lascia un commento