Halving
Nel settore delle criptovalute, il termine halving si riferisce a un processo che riduce il tasso di emissione di nuove monete. Più precisamente, l'halving è la riduzione periodica della sovvenzione per blocco (block subsidy) fornita ai miner. L'halving assicura che un crypto asset segua un tasso di emissione costante fino al raggiungimento della sua
offerta massima.
Per quanto riguarda Bitcoin, le nuove monete vengono generate continuamente come parte della
ricompensa del blocco (che è composta dalla block subsidy più le commissioni di transazione). Quindi, ogni volta che un miner "scopre" e convalida con successo un nuovo
blocco, guadagna nuove monete create come compenso per il suo
lavoro.
Quindi il processo di
mining è quello che introduce nuovi
Bitcoin nel sistema, e questo avviene a un ritmo prevedibile e controllato. I nuovi blocchi di Bitcoin vengono minati, in media, ogni 10 minuti e la sovvenzione per blocco segue un tasso di decadimento controllato. Di conseguenza, l'halving garantisce che la block subsidy diminuisca del 50% ogni 210.000 blocchi (circa ogni quattro anni).
A partire dal
genesis block, la block subsidy di Bitcoin è stata inizialmente fissata a 50 BTC. Poi è stata ridotta a 25 BTC nel 2012 e a 12,5 BTC nel 2016. L'halving più recente è avvenuto a maggio 2020, riducendo la sovvenzione per blocco a 6,25 BTC. Dopo 32 halving, il processo si arresta e non verranno creati altri Bitcoin. A questo punto, l'offerta massima di 21 milioni di BTC sarà raggiunta.
Segui gli halving di Bitcoin
L'halving è una parte importante del protocollo Bitcoin e, visto che il codice è open-source, chiunque è in grado di vederlo. Ad esempio, l'implementazione di
Bitcoin Core è disponibile su
GitHub, e una delle
sezioni del codice che definisce la sovvenzione per blocco ha questo aspetto:
CAmount GetBlockSubsidy(int nHeight, const Consensus::Params& consensusParams)
{
int halvings = nHeight / consensusParams.nSubsidyHalvingInterval;
// Forza la ricompensa del blocco a zero quando lo spostamento a destra (right shift) è indefinito.
if (halvings >= 64)
return 0;
CAmount nSubsidy = 50 * COIN;
// Subsidy is cut in half every 210,000 blocks which will occur approximately every 4 years.
nSubsidy >>= halvings;
return nSubsidy;
}