inizio
inizio

Ti sei mai chiesto come vengono creati i bitcoin? Ovviamente sono generati dal processo di mining, ma la loro emissione si basa principalmente sulla transazione Coinbase. Questa transazione specifica, essenziale per il funzionamento di Bitcoin, è diventata più complessa con l'evoluzione del protocollo. In questo articolo, ti invito a scoprire nel dettaglio tutto quello che c'è da sapere su questa transazione Coinbase.
La transazione coinbase è sempre la prima transazione in ogni blocco Bitcoin. Viene generata dal minatore che ha prodotto con successo una prova di funzionamento valida per questo blocco.

Questa transazione svolge un ruolo su due livelli. Da un lato, consente al minatore vincente di essere ricompensato assegnandogli i bitcoin che gli sono dovuti. Dall'altro, viene utilizzato per introdurre nuovi bitcoin nell'offerta di moneta in circolazione.
I bitcoin ricevuti costituiscono quella che viene chiamata ricompensa in blocco. È un incentivo economico per i minatori a investire nel processo di proof-of-work di Bitcoin. Questa ricompensa è costituita innanzitutto dalle commissioni maturate sulle transazioni integrate nel blocco. Infatti, ogni volta che effettui una transazione in Bitcoin e questa viene confermata, le commissioni che hai scelto in fase di creazione vengono recuperate dal miner che ha prodotto il blocco.
La ricompensa del blocco consiste anche in una quantità di bitcoin di nuova creazione. Questo si chiama finanziamento in blocco. Questa sovvenzione è regolata dalle regole del protocollo. Inizialmente fissato a 50 bitcoin per blocco nel 2009, viene dimezzato ogni 210.000 blocchi, o circa ogni quattro anni, durante un evento noto come «dimezzamento». Dall'ultimo dimezzamento avvenuto nel 2024, la sovvenzione assegnata per ogni blocco è di 3,125 BTC.

Quindi, tutti i BTC in circolazione su Bitcoin provenivano inizialmente da una transazione Coinbase.
Coinbase è una transazione molto specifica. A differenza di altre transazioni Bitcoin, deve soddisfare determinati criteri specifici per essere considerata valida. Il primo di questi criteri è che deve includere un singolo input, che, a differenza dei soliti input, non deve fare riferimento a nessun UTXO esistente. Come accennato in precedenza, la transazione Coinbase viene utilizzata per generare nuovi bitcoin. Ciò significa che, per i nuovi UTXO creati all'uscita di questa transazione, non devono essere consumati UTXO di input. I bitcoin vengono creati ex nihilo. Ecco perché a volte si dice, per semplificare, che la coinbase non ha input. In una transazione tradizionale, ciò sarebbe impossibile, in quanto è necessario fornire bitcoin come input per coprire l'importo che si desidera trasferire.

In realtà, c'è davvero un input nel coinbase. Per garantire che questo input non spenda alcun bitcoin, è obbligatorio che la transazione coinbase utilizzi un UTXO inesistente, designato dal seguente valore:
00000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff
Di solito, ogni input in una transazione Bitcoin è accompagnato da uno ScriptSig contenente la firma digitale necessaria per sbloccare l'UTXO utilizzato. Tuttavia, nel caso della transazione coinbase, poiché non viene consumato alcun UTXO reale, non è necessario includere uno scriptSig. Viene invece utilizzato un campo vuoto, che può contenere dati arbitrari scelti dal minore. Questo campo viene comunemente chiamato «Coinbase Field».
È proprio in questo campo che Satoshi Nakamoto ha inserito la famosa frase» The Times 03/gen/2009 Il cancelliere è sull'orlo del secondo piano di salvataggio per le banche » nel primissimo blocco della blockchain di Bitcoin (il blocco Genesis).

Dall'adozione del BIP34 nel 2012, l'unico vincolo imposto ai minatori per il campo coinbase è quello di includere l'altezza del blocco da minare all'inizio. Questa maggiore precisione aiuta a chiarire in che modo la rete accetta le modifiche alla struttura dei blocchi e le regole di consenso, garantendo al contempo l'unicità di ogni blocco e di ogni transazione Coinbase.

Il resto di questo campo è completamente gratuito. Attualmente, i minori lo utilizzano per diverse funzioni. Innanzitutto, nei pool di mining, è incluso un identificatore univoco per ogni singolo elicottero per garantire che i partecipanti al pool non duplichino il proprio lavoro inutilmente. Il fatto che ognuno di essi abbia un campo coinbase leggermente diverso, assicura che due hacker non eseguano mai esattamente lo stesso calcolo.

Quindi, è comune vedere il nome del pool di mining che ha estratto il blocco inserito in questo campo. Sebbene questa pratica non sia obbligatoria, è ampiamente utilizzata tra i pool che scelgono di aggiungere il proprio nome alle transazioni di Coinbase. Tuttavia, questa identificazione non è necessariamente accurata, in quanto nulla impedisce di indicare il nome di un pool specifico senza effettivamente estrarlo.

Infine, il resto di questo campo viene spesso utilizzato come extra-nonce informale. Per generare un blocco valido, i minatori modificano il nonce a 32 bit nell'intestazione del blocco, creando più hash finché non ne trovano uno inferiore o uguale all'obiettivo di difficoltà. Quando tutti i possibili valori del nonce nell'intestazione sono esauriti, utilizzano parte del campo di input libero nella transazione coinbase come nonce aggiuntivo per continuare a testare nuovi hash.

➤ Scopri di più sulla struttura dei blocchi Bitcoin.
Per quanto riguarda i risultati della transazione Coinbase, la struttura è ancora una volta diversa da quella di una normale transazione.
Innanzitutto, di solito ci sono uno o più output che distribuiscono la ricompensa mineraria, combinando le commissioni e il block grant. Questi output, come in una transazione classica, sono costituiti da UTXO bloccati da uno scriptPubKey. L'unico vincolo per i miner è che la somma richiesta non supera le commissioni totali di tutte le transazioni incluse oltre alla concessione del blocco.
Tuttavia, a differenza delle transazioni tradizionali, i bitcoin generati in una transazione Coinbase sono soggetti a un periodo di scadenza di 100 blocchi. Ciò significa che dopo aver estratto il blocco, i bitcoin guadagnati non sono spendibili fino alla fine di questo periodo di 100 blocchi. Questa regola mira a prevenire le complicazioni che potrebbero verificarsi se i bitcoin provenissero da una blockchain che in seguito diventerebbe obsoleta, poiché i blocchi convalidati a volte vengono finalmente scartati a favore di altri blocchi della stessa altezza, ma integrati in una catena che ha accumulato più lavoro. Se i bitcoin appena creati fossero immediatamente disponibili, qualsiasi transazione che li includeva potrebbe essere annullata in un secondo momento, causando perdite per i possessori.

Imponendo un periodo di 100 blocchi prima che i bitcoin appena creati possano essere spesi, impediamo i disturbi causati dalle monete provenienti da blocchi che vengono successivamente invalidati, impedendo loro di circolare nel sistema e influendo sugli altri utenti. La probabilità che si verifichi una riorganizzazione della catena dopo 101 blocchi è così bassa da essere considerata zero.
Oltre agli output che distribuiscono la ricompensa, ci saranno anche altri output tecnici nel coinbase. A partire dal soft fork SegWit del 2017, le transazioni di Coinbase devono includere anche un output con un OP_RETURN che contenga la radice Merkle dei testimoni delle transazioni.

Questo meccanismo, progettato per risolvere il problema della malleabilità delle transazioni, separa i dati della firma dal resto della transazione. In un blocco, questi dati delle firme sono raggruppati in un albero Merkle separato da quello dei dati della transazione principale e la radice di questo albero viene inserita nell'output di una transazione Coinbase per garantire che sia integrata nel blocco.

Il resto degli output della transazione Coinbase rimane gratuito. Non è raro vedere diversi OP_RETURNS in una coinbase. Oltre alla radice dei testimoni della transazione, obbligatoria in presenza di transazioni SegWit nel blocco, l'altro OP_RETURNS può contenere dati arbitrari utilizzati dai miner per vari scopi specifici, come il merged mining, che consente di riutilizzare il proof-of-work di Bitcoin su altre blockchain, tipicamente sidechain.
➤ Scopri come funzionano le sidechain Bitcoin.
Le transazioni con Coinbase svolgono quindi un ruolo essenziale su Bitcoin. Servono non solo a premiare i miner, a incoraggiarli a contribuire alla ricerca di prove di lavoro, ma anche a emettere denaro in modo equo, meritocratico e programmato, secondo le regole del protocollo.
Le transazioni Coinbase sono diverse dalle altre transazioni Bitcoin perché hanno un input unico che non consuma alcun UTXO esistente. In altre parole, i bitcoin generati da una transazione Coinbase sono privi di qualsiasi cronologia precedente.
Nel tempo, l'uso della transazione Coinbase si è evoluto. Dall'implementazione di SegWit, ora include la radice Merkle dei testimoni delle transazioni. Per il mining, questi campi liberi vengono sfruttati dai pool per varie esigenze interne.

