I've found many posts on this topic, but still not satisfied, so I go directly into the code
in main.cpp
unsigned int calculateBlocktime(const CBlockIndex* pindex)
{
unsigned int nBlockTime;
double diff = GetDifficulty(pindex);
double dBlockTime = -13.03*log(diff)+180;
if (dBlockTime < 15)
{
nBlockTime = 15;
}
else
{
nBlockTime = dBlockTime;
}
return nBlockTime;
}
int64_t calculateMinerReward(const CBlockIndex* pindex)
{
int64_t nReward;
unsigned int nBlockTime = calculateBlocktime(pindex);
int height = pindex->nHeight+1;
if (height == 1)
{
nReward = 564705 * COIN; // Verium purchased in presale ICO
}
else if ((pindex->nMoneySupply/COIN) > 2899999)
{
double dReward = 0.04*exp(0.0116*nBlockTime); // Reward schedule after 10x VRC supply parity
nReward = dReward * COIN;
}
else
{
double dReward = 0.25*exp(0.0116*nBlockTime); // Reward schedule up to 10x VRC supply parity
nReward = dReward * COIN;
}
return nReward;
}
I only focus on these lines
else if ((pindex->nMoneySupply/COIN) > 2899999)
{
double dReward = 0.04*exp(0.0116*nBlockTime); // Reward schedule after 10x VRC supply parity
nReward = dReward * COIN;
}
let
T=nBlockTime
t=seconds after hit 2899999 supply
v=new verium supply every year after hit 2899999 supply
then
v = 3600*24*365/T*0.04*exp(0.0116*T)
when T=15 (minimum block time), v=100078.9
when T=86 (stationary point of the supply function, 1/0.0116=86.2) v=39775.9
when T=300 (very low difficulty) v=136486.6
That means,
At least 39775 coins are produced every year, and no theoretical upper limit.
However, practical upper limit would be 136486.6
Sounds a little crazy, although in 10 years, the total supply is still very low.
Please correct me if I'm wrong. I've been very bad at doing calculations...