Punti chiave:
- Una transazione Bitcoin comporta molteplici passaggi che avvengono dietro le quinte dopo che gli utenti premono il pulsante “invia”.
- Le fasi comprendono la creazione di un nuovo indirizzo Bitcoin univoco, l’invio del pagamento, la verifica della transazione, la codifica delle informazioni in un nuovo blocco e la convalida dei pagamenti utilizzando come input solo gli output di transazione non spesi (UTXO).
- La velocità delle transazioni di Bitcoin al minuto e all’ora può variare a seconda delle condizioni della rete.
Dietro le quinte del processo di transazione Bitcoin
Introduciamo le procedure di transazione di Bitcoin con il seguente scenario:
Bob, un commerciante online, decide di accettare Bitcoin come pagamento.
Alice, un’acquirente, ha dei bitcoin e vuole acquistare della merce da Bob.
I wallet sono file che consentono di accedere a più indirizzi Bitcoin. Un indirizzo è una stringa di lettere e numeri, come ad esempio: 1HULMwZEPkjEPech43BeKJL1ybLCWrfDpN. Ogni indirizzo ha un proprio saldo di bitcoin e gli utenti possono creare tutti gli indirizzi che vogliono. Immagina gli indirizzi come conti bancari che funzionano in modo un po’ diverso.
Per un approfondimento su Bitcoin, consulta l’articolo Cos’è Bitcoin? Guida completa per i principianti di criptovalute .
Creare un nuovo indirizzo
Il software client Bitcoin genera indirizzi per gli utenti. Quando Bob crea un nuovo indirizzo, in realtà sta generando una “coppia di chiavi crittografiche”, composta da una chiave privata (che solo l’utente conosce) e da una chiave pubblica (che è nota a chiunque).
Al momento in cui si firma un messaggio con una chiave privata, è possibile verificarlo utilizzando la chiave pubblica corrispondente. Il nuovo indirizzo Bitcoin di Bob rappresenta una chiave pubblica unica e la chiave privata corrispondente è memorizzata nel suo wallet. La chiave pubblica consente a chiunque di verificare la validità di un messaggio firmato con la chiave privata.
Invio di un pagamento
Il wallet di Alice contiene le chiavi private di ciascuno dei suoi indirizzi. Alice dice al suo client Bitcoin che desidera trasferire BTC all’indirizzo di Bob. Il client Bitcoin firma quindi la richiesta di transazione con la chiave privata dell’indirizzo da cui sta trasferendo i bitcoin. Chiunque sulla rete può ora utilizzare la chiave pubblica per verificare che la richiesta di transazione provenga effettivamente dal legittimo proprietario dell’account.
In altre parole:
La chiave pubblica viene utilizzata per ricevere bitcoin.
La chiave privata viene utilizzata per firmare le transazioni e spendere i bitcoin.
Quando si spendono i bitcoin, si presenta la propria chiave pubblica e la firma digitale in una transazione Bitcoin. La transazione è firmata digitalmente da una chiave privata, che indica l’autorizzazione a spendere i fondi a cui si riferisce la transazione.
Con la chiave pubblica e la firma digitale, tutti i membri della rete Bitcoin possono verificare e accettare la transazione come valida, confermando che l’utente ha trasferito i bitcoin che possedeva al momento del trasferimento.
In che modo guadagnano i miner: ricompense dei miner per la verifica delle transazioni
Supponiamo che Gary, Glenn e George siano dei miner di Bitcoin. I loro computer raggruppano le transazioni degli ultimi 10 minuti in un nuovo blocco di transazioni. Ogni blocco include una transazione “coinbase” che invierà 50 bitcoin al miner vincitore, in questo caso Gary. Nel wallet di Gary viene creato un nuovo indirizzo con il saldo dei bitcoin appena coniati.
Inoltre, i miner ricevono le commissioni pagate dagli utenti che inviano transazioni. La commissione è un incentivo per includere la transazione nel blocco.
Cos’è l’halving di Bitcoin e come influisce sulle ricompense di mining? Scoprilo qui.
Sequenza di transazioni
- La transazione viene trasmessa alla rete Bitcoin, dove ogni partecipante convalida e propaga la transazione fino a raggiungere quasi tutti i nodi della rete.
- La transazione viene verificata da un nodo di mining e inserita in un blocco di transazioni che viene registrato sulla blockchain.
- Una volta registrata sulla blockchain e confermata da un numero sufficiente di blocchi successivi, la transazione diventa parte permanente del ledger pubblico distribuito di Bitcoin ed è accettata come valida da tutti i partecipanti.
- I bitcoin ricevuti come parte della transazione possono essere spesi in una nuova transazione.
Quanto sono veloci le transazioni di Bitcoin al secondo?
Quanto tempo occorre per tutto questo?
Bitcoin gestisce un flusso medio di transazioni di 7 transazioni al secondo (tps), pari a 420 transazioni Bitcoin al minuto, 25.200 transazioni all’ora e oltre 600.000 transazioni al giorno. Sebbene possa sembrare molto, si tratta comunque di un valore basso rispetto a sistemi di transazione più consolidati come Visa, che possono gestire migliaia di transazioni al secondo.
Codifica delle informazioni in un blocco: gli hash crittografici
È la crittografia che garantisce la sicurezza della blockchain, dove le funzioni di hash crittografico trasformano un insieme di dati in una stringa alfanumerica di lunghezza fissa, nota come valore hash.
Anche piccole modifiche ai dati originali possono produrre un valore hash completamente diverso. È praticamente impossibile prevedere quale insieme di dati iniziali genererà uno specifico valore hash.
Ad esempio:
Nonces
Per creare valori hash diversi a partire dagli stessi dati, Bitcoin utilizza il nonce. Cambiando il nonce si ottiene un valore hash molto diverso.
I computer dedicati al mining calcolano nuovi valori hash combinando il valore hash precedente con il nuovo blocco di transazioni e un nonce. La generazione di hash è un processo computazionalmente semplice, ma nel sistema Bitcoin, il nuovo valore hash deve rispettare un requisito specifico: deve iniziare con un certo numero di zeri.
I miner non possono anticipare quale nonce produrrà un valore hash con il numero richiesto di zeri iniziali. Pertanto, sono costretti a generare numerosi hash con nonce diversi fino a trovare quello che soddisfa il requisito.
Ma dov’è la transazione non confermata di Alice nel nonce?
Nel frattempo, il trasferimento di Alice a Bob rimane sepolto sotto altre transazioni più recenti. Anche se non è ancora stato codificato sulla blockchain, è già in coda per essere confermato e questa informazione non può essere più alterata. Se qualcuno tentasse di modificare i dettagli, dovrebbe ripetere l’intero processo svolto da Gary. Questo perché qualsiasi modifica richiederebbe un nonce vincente completamente diverso, e poi sarebbe necessario ripetere il lavoro di tutti i miner successivi, il che è praticamente impossibile.
Output delle transazioni non spese (UTXO)
Prima di introdurre gli output delle transazioni non spese (UTXO), dobbiamo conoscere gli input e gli output delle transazioni Bitcoin.
Input
Un input rappresenta un riferimento a un output di una transazione precedente. Nella nuova transazione, i valori di tutti gli input (ossia il valore totale delle criptovalute degli output delle transazioni precedenti a cui si fa riferimento) vengono sommati. Il totale, al netto di eventuali commissioni di transazione, viene completamente utilizzato dagli output della nuova transazione.
Spesso una transazione comprende più input.
Output
Un output contiene le istruzioni per l’invio di bitcoin e include il valore che avrà una volta rivendicato.
Output di transazione non spesa (UTXO)
Poiché ogni output di una specifica transazione può essere speso una sola volta, gli output di tutte le transazioni presenti nella blockchain possono essere classificati come UTXO (output di transazioni non spese) o output di transazioni già spese. Affinché un pagamento sia valido, deve utilizzare solo gli UTXO come input.
La figura sopra mostra le parti principali di una transazione Bitcoin. Ogni transazione ha almeno un input e un output, e ciascun input spende i satoshi pagati da un output precedente. Ogni output rimane in sospeso come UTXO fino a quando non viene speso da un input successivo. Quando il wallet Bitcoin di un utente indica un saldo di 10.000 satoshi, ciò significa effettivamente che ha 10.000 satoshi in attesa in uno o più UTXO.
UTXO durante le transazioni
Immaginiamo che qualcuno abbia usato l’indirizzo 1HULMwZEPkjEPech43BeKJL1ybLCWrfDpN per ricevere bitcoin già due volte. La transazione del 5 febbraio 2019 contiene 4.000 satoshi e quella del 9 marzo 2019 contiene 6.000 satoshi. La blockchain di Bitcoin non li aiuterà a sommare il saldo in modo che esista un record con 1HULMwZEPkjEPech43BeKJL1ybLCWrfDpN: 10.000. Invece, ogni volta che un utente vuole spendere i suoi bitcoin, deve sbloccare le transazioni che gli appartengono (con i bitcoin inviati alla sua chiave pubblica) una per una.
Ad esempio, per inviare 3.000 satoshi, è sufficiente sbloccare la transazione del 5 febbraio 2019 o quella del 9 marzo 2019, poiché entrambe contengono più di 3.000 satoshi.
Ma per inviare 8.000 satoshi, è necessario sbloccare entrambe le transazioni per spendere tutti i bitcoin in una nuova transazione, poiché non è consentita la spesa parziale; l’utente deve utilizzare tutti i bitcoin che ha sbloccato. Se l’utente intendeva inviare solo 8.000 satoshi, deve comunque spendere 10.000 satoshi nella nuova transazione, quindi inviare nuovamente 2.000 satoshi a un indirizzo che gli appartiene.
In questo articolo troverai un’introduzione al trading di Bitcoin.
Conclusione: pagare con Bitcoin
Mentre le transazioni Bitcoin funzionano senza problemi, i pagamenti al dettaglio nella vita reale con BTC sono ancora ostacolati dalla lentezza delle transazioni. Eppure, effettuare pagamenti reali con Bitcoin è una delle funzionalità chiave di BTC che Satoshi Nakamoto aveva previsto nel whitepaper. Il layer2 di Bitcoin, denominato Lightning Network, fornisce attualmente una soluzione a questo problema di scalabilità.
Per saperne di più: possibilità di effettuare pagamenti quasi istantanei con Bitcoin attraverso Lightning Network.
Svolgi la due diligence e conduci le tue ricerche
Tutti gli esempi menzionati in questo articolo hanno unicamente scopo informativo. Non dovresti interpretare queste informazioni o qualsiasi altra parte del contenuto come consulenza legale, fiscale, finanziaria, di investimento, sulla sicurezza informatica o di qualsiasi altro tipo. Niente di quanto contenuto in questo documento costituisce una sollecitazione, una raccomandazione, un’approvazione o un’offerta da parte di Crypto.com per investire, acquistare o vendere criptovalute, token o altri asset crypto. I rendimenti derivanti dall’acquisto e dalla vendita di criptovalute potrebbero essere soggetti a imposte, tra cui l’imposta sulle plusvalenze, del tuo Paese. Qualsiasi descrizione dei prodotti o delle funzionalità di Crypto.com ha unicamente scopo illustrativo e non costituisce un’approvazione, un invito o una sollecitazione.
Le prestazioni passate non costituiscono una garanzia né un indicatore delle prestazioni future. Il valore delle criptovalute può aumentare o diminuire, e c’è il rischio di perdere l’intero importo o una parte significativa dell’importo di acquisto. Quando valuti un asset crypto, è fondamentale condurre ricerche approfondite e svolgere la dovuta diligenza al fine di prendere la decisione migliore possibile, poiché ogni acquisto sarà di tua piena responsabilità.