Come funzionano le transazioni Bitcoin [con esempio pratico]

Come funzionano le transazioni in Bitcoin spegato semplice

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

Se ti stai chiedendo qualcosa come:

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

Questo articolo ti darà le risposte.

Non farti confondere però.

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.

Suggerimento:

Se stai iniziando ad esplorare le dinamiche transazionali, ti consiglio anche di leggere la risposta ai dubbi più comuni sulle transazioni in bitcoin.

Iniziamo.

Come funzionano le transazioni in Bitcoin?

Per capire il funzionamento delle transazioni in Bitcoin, parteremo da un caso tipico:

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

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.

 

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 bitcoin, 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. Lo scopo è intascarsi le fee e i bitcoin che gli spettano come da regole del protocollo.

Non entreremo nel dettagli del mining e del protocollo Bitcoin. Se vuoi una visione d’insieme, leggi il funzionamento nella mia  guida al 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.

L’evoluzione delle transazioni bitcoin: on-chain ed off-chain

All’atto pratico, transare in bitcoin on-chain è 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 grazie a protocolli costruiti sopra la blockchain di Bitcoin e permettono trasferimenti di valore istantanei in bitcoin. Puoi approfondire l’evoluzione delle transazioni (e di bitcoin) nel mio articolo sull’emergente layer 2 di Bitcoin: Lightning Network.

Per restare aggiornato sull’evoluzione di Bitcoin e ricevere gli aggiornamenti dal sito, iscriviti alla Newsletter.

Lascia un commento

Correlati
Potrebbe Interessarti