Halving

Principiante
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;
}