Leggere una blockchain con gli explorer pubblici · Lezione 3 di 8
All'interno di una transazione Bitcoin: input, output e resto
5 min di lettura
L'ID della transazione
Ogni transazione ha un ID della transazione, solitamente abbreviato in TXID (gli explorer di Ethereum lo chiamano hash della transazione). È una stringa esadecimale di 64 caratteri calcolata a partire dai dati della transazione, quindi in pratica ogni transazione ha il proprio. Il TXID è l'informazione più utile da richiedere quando qualcuno afferma di aver inviato un pagamento: basta incollarlo in un explorer per verificarne personalmente i dettagli, anziché affidarsi a uno screenshot.
Gli importi in Bitcoin sono espressi in BTC o in satoshi (sats), l'unità più piccola. Un bitcoin equivale a 100.000.000 di satoshi.
Bitcoin non prevede saldi di conto
Per chi è abituato ai conti bancari, Bitcoin funziona in modo sorprendente. La blockchain non memorizza un saldo per ciascun indirizzo. Memorizza invece gli output di transazione non spesi, o UTXO.
Un'immagine utile è quella di un portafoglio pieno di banconote:
- Ogni output di una transazione è come una banconota con un valore e un vincolo di spesa. Il vincolo stabilisce quale indirizzo (più precisamente, quale chiave) può spenderlo.
- Per effettuare un pagamento, si utilizzano banconote intere come input. Non è possibile strappare una banconota a metà.
- Se le banconote utilizzate valgono più del pagamento, si riceve un resto, sotto forma di un nuovo output che torna a un indirizzo sotto il proprio controllo.
Il "saldo" che un explorer mostra per un indirizzo Bitcoin è semplicemente la somma degli output non spesi vincolati a quell'indirizzo.
Input, output e resto
Ecco un esempio svolto. Il wallet di Ana contiene due output non spesi: uno da 0,30 BTC e uno da 0,25 BTC. Ana vuole pagare 0,50 BTC a Bruno.
| Importo (BTC) | |
|---|---|
| Input 1 (output precedente destinato ad Ana) | 0,3000 |
| Input 2 (output precedente destinato ad Ana) | 0,2500 |
| Totale in entrata | 0,5500 |
| Output 0: a Bruno | 0,5000 |
| Output 1: resto restituito ad Ana | 0,0498 |
| Totale in uscita | 0,5498 |
| Commissione (totale in entrata meno totale in uscita) | 0,0002 |
Emergono tre aspetti:
- Entrambi gli input vengono spesi interamente. Dopo questa transazione, i due vecchi output di Ana non esistono più come monete non spese.
- Il resto è un output ordinario. Sulla blockchain appare esattamente come un pagamento, motivo per cui gli explorer devono stimare quale output rappresenti il resto.
- La commissione non è scritta da nessuna parte. È la differenza tra ciò che entra e ciò che esce. Gli explorer la calcolano e la visualizzano. Se un wallet dimenticasse di aggiungere un output di resto, l'intera differenza andrebbe al miner come commissione.
Come gli explorer visualizzano una transazione Bitcoin
Gli explorer mostrano solitamente gli input a sinistra e gli output a destra, con una freccia tra i due. Per ciascuna parte ci si può aspettare quanto segue:
- Input: l'indirizzo e l'importo di ciascun output precedente che viene speso, con un link alla transazione che lo ha creato. Seguendo questi link è possibile tracciare i fondi a ritroso.
- Output: ciascun indirizzo destinatario e il relativo importo, con numerazione a partire da 0. Ogni output è contrassegnato come non speso o speso, e un output speso rimanda tramite un link alla transazione successiva che lo ha speso. È così che si tracciano i fondi in avanti.
- Riepilogo: TXID, stato (non confermata o confermata, con l'altezza del blocco), commissione, tasso di commissione, dimensione e ora della prima osservazione o della conferma.
Distinguere il pagamento dal resto
Poiché gli output di resto assomigliano a pagamenti, gli explorer e gli analisti si affidano a euristiche, regole pratiche spesso corrette, ma non sempre. Indizi comuni:
- Importi tondi: nell'esempio, 0,50 BTC sembra essere il pagamento previsto e 0,0498 BTC sembra essere il resto residuo.
- Tipo di indirizzo: il resto viene spesso inviato allo stesso tipo di indirizzo degli input (ad esempio, entrambi iniziano con bc1q).
- Indirizzi nuovi: i wallet moderni inviano il resto a un indirizzo nuovo, mai utilizzato prima.
Alcuni explorer evidenziano il probabile output di resto. Questa indicazione va considerata un indizio, non un fatto. Tracciare correttamente i fondi e sapere quando le euristiche falliscono fa parte del programma IDFE Crypto Forensic Examiner.
Altri schemi che si incontrano
Molti output (raggruppamento). Gli exchange spesso pagano centinaia di clienti in un'unica transazione per risparmiare sulle commissioni. Si possono osservare uno o due input e un lungo elenco di output.
Molti input (consolidamento). Un wallet che ha raccolto molti piccoli output può combinarli in un unico output più grande quando le commissioni sono basse.
La transazione coinbase. Come illustrato nella lezione precedente, la prima transazione di ogni blocco non ha un input ordinario. Gli explorer mostrano il suo input come "coinbase" o "monete appena generate".
Output di dati. Alcuni output contengono dati anziché valore, utilizzando un'istruzione chiamata OP_RETURN (tradizionalmente limitata per impostazione predefinita a 80 bytes). Il loro valore è solitamente zero e non possono mai essere spesi. Gli explorer spesso visualizzano i dati come testo, se leggibili.
Transazioni non confermate e confermate
Una transazione che è stata trasmessa alla rete ma non è ancora stata inclusa in un blocco è non confermata. Gli explorer la mostrano con uno stato come "in attesa" o "non confermata" e senza altezza del blocco. Una volta inclusa in un blocco, l'explorer mostra l'altezza del blocco e inizia a contare le conferme. La prossima lezione spiega che cosa determina la rapidità con cui ciò avviene.
Focus sull'esame: che cos'è un TXID e perché richiederlo, il modello UTXO (gli output vengono spesi interamente e il resto ritorna come nuovo output), come la commissione sia pari al totale degli input meno il totale degli output, come leggere input e output su un explorer (output spesi e non spesi, link a ritroso e in avanti) e perché l'identificazione del resto è un'euristica.
Domande di esercitazione
Verifica la tua comprensione. Queste domande non contano per l’esame.
Accedi per salvare i tuoi progressi e riprendere da dove hai lasciato. È gratuito. Accedi