So the dev lied to us about premine?
Either he lied or his math skills aren't so good, because he made several mistakes in his calculations.
Here's the code (the first line is in main.h and the remaining code is in main.cpp):
static const int64_t COIN_YEAR_REWARD = 5 * CENT; // 5% per year
int64_t GetProofOfWorkReward(int64_t nFees)
{
if (pindexBest->nHeight == 1)
{
int64_t nSubsidy = 13125000 * COIN;
if (fDebug && GetBoolArg("-printcreation"))
printf("GetProofOfWorkReward() : create=%s nSubsidy=%"PRId64"\n", FormatMoney(nSubsidy).c_str(), nSubsidy);
return nSubsidy + nFees;
}
else
{
int64_t nSubsidy = 3720 * COIN;
if (fDebug && GetBoolArg("-printcreation"))
printf("GetProofOfWorkReward() : create=%s nSubsidy=%"PRId64"\n", FormatMoney(nSubsidy).c_str(), nSubsidy);
return nSubsidy + nFees;
}
}
// miner's coin stake reward based on coin age spent (coin-days)
int64_t GetProofOfStakeReward(int64_t nCoinAge, int64_t nFees)
{
int64_t nSubsidy = nCoinAge * COIN_YEAR_REWARD * 33 / (365 * 33 + 8);
if (fDebug && GetBoolArg("-printcreation"))
printf("GetProofOfStakeReward(): create=%s nCoinAge=%"PRId64"\n", FormatMoney(nSubsidy).c_str(), nCoinAge);
return nSubsidy + nFees;
}
Earlier, I assumed that the developers 75 million value was correct, but it isn't.
After POW there will be:
block 1: has
13,125,000 coins (you can see that in the above code)
The developer says that there are 20160 POW blocks. Assuming that is true:
blocks 2...20,160 have 20,159 blocks
Each block would have 3720 coins
Total coins in blocks 2...20160 are:
20,159 x 3720 coins = 74,991,480 coins
Add in block 1 to get the total POW blocks:
74,991,480 coins + 13,125,000 coins =
88,116,480 coinsSo the developers 75 million figure is wrong; it doesn't include the premine.
Premine as a percentage of POW coins would be:
13,125,000÷88,116,480×100 =
14.895%After 40 years, total POW+POS coins would be (assuming weeky compounding):
88,116,480x(1+5÷100÷52)^(40×52) =
650,472,260 coinsAfter 40 years, premine as a percentage of POW+POS coins would be:
13,125,000/650,472,260×100 =
2.018%