coinbase transaction
coinbase transaction
Difficoltà: intermedio
Argomento: tecnologia
DEFINIZIONE
Una coinbase transaction, transazione coinbase, è la prima transazione che viene inserita in un blocco Bitcoin dai miner.
La coinbase transaction è fondamentale perché:
- È il meccanismo con cui vengono creati nuovi bitcoin
- Incentiva i miner a mantenere sicura la rete
- Definisce il tasso di inflazione controllato e prevedibile di Bitcoin
Attraverso la coinbase transaction, il miner riceve la ricompensa, o block reward, per il lavoro effettuato per validaresvolto nel validare il blocco e aggiungerlo alla block chain.
La block reward è composta da:
-
- block subsidy: nuovi bitcoin generati dal nulla. Questo è l'unico modo in cui vengono generate nuove monete Bitcoin. La quantità di Bitcoin generata per ogni blocco diminuisce nel tempo, dimezzandosi circa ogni quattro anni (processo noto come halving).
-
- fee: commissioni associate alle transazioni incluse nel blocco
I bitcoin di questa ricompensa vengono assegnati a uno o più output.
Un blocco può contenere una sola coinbase transaction.
La struttura della coinbase transaction è simile alle altre transazioni, con alcune eccezioni:
A differenza delle altre transazioni, una coinbase transaction non consuma UTXO come input. Quindi quello spazio che nelle transazioni normali viene chiamato scriptSig, viene considerato il coinbase data, in cui il miner può inserire informazioni arbitrarie, ad esempio il messaggio del miner, l'altezza del blocco o un "extra nonce" per il mining.
La prima Coinbase Transaction della storia, quella del Genesis Block, conteneva questo messaggio nella coinbase data:
The Times 03/Jan/2009 Chancellor on brink of second bailout for banks
Gli output della coinbase possono essere spesi solo dopo la conferma di 100 blocchi. Se il blocco include transazioni SegWit, la transazione Coinbase deve includere un commit per gli identificatori delle transazioni dei witness in un'uscita aggiuntiva.
Indice precedente ffffffff (in esadecimale): in una transazione normale, l'indice specifica quale output della transazione precedente viene speso (es. 0 per il primo output).
Nella coinbase, questo campo viene impostato a ffffffff (valore massimo di un intero a 32 bit senza segno, pari a 4294967295), che è un indice non valido. Questo segnala che l'input non fa riferimento a nessun output esistente.
aggiornato il 2025-02-08