Vai al contenuto
buybitcoinsmart

Glossario / Mining e consenso

Maturità Coinbase

Noto anche come Coinbase maturity, Coinbase maturity rule.

Che cos'è la maturità Coinbase?
La maturità Coinbase è la regola di consenso che blocca le monete appena create da un blocco per altri 100 blocchi prima che una transazione possa spenderle.

Le ricompense del mining non sono denaro spendibile nel momento in cui viene trovato un blocco. Bitcoin Core imposta COINBASE_MATURITY a 100 nel suo header di consenso, quindi l'attesa è di 100 blocchi, circa 16 ore e 40 minuti con l'obiettivo di dieci minuti per blocco. I bitcoin che compri su un exchange non sono mai toccati dalla regola, perché tutto ciò che ti è arrivato è già stato speso almeno una volta.

Come funziona

La maturità Coinbase è applicata da ogni nodo completo come regola di rete, il che significa che nessuna impostazione, nessun wallet e nessun pool può allentarla.

Il controllo in sé è una sottrazione. Nel convalidare una transazione, un nodo esamina ogni input e, dove la moneta proviene da una transazione coinbase, sottrae l'altezza del blocco di quella moneta dall'altezza in cui finirebbe la spesa. Se la differenza è inferiore a 100, Bitcoin Core rifiuta la transazione con il codice bad-txns-premature-spend-of-coinbase e un messaggio che riporta la profondità a cui è stata tentata. Una ricompensa pagata nel blocco 900.000 è spendibile per la prima volta nel blocco 900.100, la più bassa altezza in cui quella sottrazione raggiunge 100.

Il ritardo esiste perché un output coinbase è l'unico tipo di moneta che può smettere di esistere. Le monete ordinarie sopravvivono a una riorganizzazione della catena: le transazioni che le contengono tornano nella mempool e vengono minate di nuovo. La ricompensa di un blocco esiste solo perché quel blocco è nella catena, quindi se vince un ramo concorrente la ricompensa svanisce, e con essa tutto ciò che ne discende. Le spese costruite su una ricompensa poi svanita travolgerebbero ogni wallet che l'avesse toccata.

Bitcoin Core sorveglia anche l'intervallo tra i blocchi. Ogni voce della mempool è contrassegnata a seconda che spenda o meno un coinbase, e il commento nel codice sorgente spiega perché: quelle voci vengono rilette durante le riorganizzazioni per verificare che la regola dei 100 blocchi sia ancora rispettata. Tutto ciò che è tornato immaturo viene scartato invece di essere minato.

Una proprietà della regola coglie di sorpresa molti. L'attesa si conta in blocchi, non in ore, quindi un'epoca di difficoltà lenta la allunga e una veloce la accorcia. Bitcoin punta a un blocco ogni 600 secondi, da cui derivano sia le 16 ore e 40 minuti sia i consueti 144 blocchi al giorno, e una media di undici minuti allunga gli stessi 100 blocchi a 18 ore e 20 minuti.

Dove lo vedi

L'avvistamento più comune della maturità Coinbase è un wallet che riporta due saldi invece di uno.

Il comando getbalances di Bitcoin Core restituisce un campo immature, documentato nel codice sorgente come il saldo proveniente da output coinbase immaturi, e getreceivedbyaddress e listunspent accettano entrambi un flag include_immature_coinbase che per impostazione predefinita vale false. Il wallet di Core è un blocco più severo del consenso, e tiene una ricompensa immatura finché il blocco che l'ha pagata non è profondo 101 blocchi, così un miner in solitaria vede il saldo sbloccarsi un blocco più tardi di quanto richieda la sola regola di rete.

Le dashboard dei pool usano un proprio vocabolario, di solito una colonna pending o immatura accanto a una confermata. Un pool che paga un importo fisso per share accredita i suoi miner molto prima che le monete maturino, quindi anticipa denaro contro una ricompensa che non può ancora muovere, ed è il pool, non il miner, a essere esposto se quel blocco viene sostituito.

La regola fissa anche il limite minimo alla velocità con cui le monete minate raggiungono un mercato. Un miner che vuole vendere aspetta i 100 blocchi, invia a un exchange e poi attende la sua politica di deposito, di norma poche conferme e non cento.

Maturità Coinbase vs conferma

La maturità Coinbase è una profondità fissa scritta nel consenso, mentre un conteggio di conferme è un totale progressivo dal quale chiunque può scegliere una soglia.

Un exchange che chiede sei conferme prima di accreditare un deposito ha scelto quel numero da sé e può cambiarlo domani. La regola dei 100 blocchi non è una scelta. Copre solo le monete create da un blocco, si applica in modo identico su ogni nodo che convalida, e una transazione che la viola non è lenta ma non valida: nessun miner può includerla, perché anche il blocco che la contiene sarebbe rifiutato.

Da non confondere con

Domande frequenti

Perché un miner non può spendere subito la ricompensa di un blocco?

Perché il consenso non accetterà la spesa finché il blocco che ha creato le monete non è profondo 100 blocchi, circa 16 ore e 40 minuti con l'obiettivo di dieci minuti per blocco. Un blocco che esce perdente da una riorganizzazione della catena porta con sé la sua ricompensa, quindi il ritardo impedisce a quelle monete di circolare prima che quel rischio sia passato.

La maturità coinbase riguarda i bitcoin che compro su un exchange?

No, si applica solo agli output creati da un blocco. I bitcoin che compri sono già stati minati e spesi almeno una volta, quindi l'unica regola di attesa che tocca il tuo deposito o prelievo è la politica di conferme dell'exchange stesso.

100 blocchi sono la stessa cosa di 100 conferme?

Quasi. Bitcoin Core accetta una spesa nella sua mempool non appena il blocco che ha coniato la moneta mostra 100 conferme, quindi una ricompensa pagata nel blocco 900.000 può essere minata nel blocco 900.100. Il wallet di Core è un blocco più prudente e tiene le monete nel saldo immaturo fino a 101 conferme, quindi ciò che offre il tuo wallet e ciò che la rete accetterebbe possono differire di un blocco.

Leggi anche

Termini correlati

Altro in Mining e consenso

Leggi questa pagina in inglese