Variance Staking ExplainedNow that we've all had a few days to get used to the new blockchain and wallet, there have been a few questions to how much people will stake on their deposits. While the changes are not over-the-top complicated, they do change the basic fundamentals of how rewards are calculated. I wanted to take a few minutes to explain exactly what Variance Staking means
First, I'll just copy the code from Github, which makes it pretty self explanatory when you see it singled out. Please note there are a few extra spaces that are not on Github, only because it was making emoticons with them on the forums. With that being said, let's get into it
int64_t GetProofOfStakeReward(int nHeight, int64_t nCoinAge, int64_t nFees)
{
int64_t nMultiplier = 100 * CENT;
int64_t nSubsidy = (((nHeight % 9) + ((nCoinAge % 100000) * 33 / (365 * 33 + 8 ))) + 1) * nMultiplier;
a + b
return nSubsidy;
}
nMultiplier is simply used as a tweaking dial that can be turned up or down as needed to control inflation. Using 100 * CENT just gives us full coins, rather than decimals. The main reason is just so this is here later to change if needed, it really serves no purpose other than to do calculations in full coins
The line we are going to look at and break down is this:
int64_t nSubsidy = (((nHeight % 9) + ((nCoinAge % 100000) * 33 / (365 * 33 + 8 ))) + 1) * nMultiplier;nSubsidy is the final reward that will be passed later on.
nHeight is block number and
nCoinAge is obvious
nHeight % 9 will take the block number, divide it by 9 and return the remainder as the value
This number will always be between 0 and 9 (the base rewards we have been seeing so far)nCoinage % 100000 will allow a maximum coinage of 100,000 to be used, which is then multiplied by '(33 / (365 * 33 + 8 )' or 0.00273790757, to scale it down further and prevent compounding inflation
This will return a value somewhere between 0 and 273.790757488The final +1 is there for one simple reason.. while doing test runs this problem never came up, but I noticed that it could potentially in the future.. If that last +1 was not there, as unlikely as it is, we could have run into a 'divide by zero' issue while calculating or splitting rewards, so that is just a failsafe to ensure we never return 0 as the value (this was originaly was nHeight calculation is in, but was later replaced.
nHeight is only used now to fluctuate rewards for deposits that are not large enough to be scaled by coinage)Last, as explained above,
nMultiplier is only used to turn the final result into a full number, rather than a long reward amount with a staggering amount of decimal places
Hopefully this will clear up a bit on what you can expect both now and for the future as far as staking and GorillaBand rewards. The later in the life of the coin we get, with higher coinage, the faster GorillaBands will pay themselves off. At current rates for now, you are doubling your coins in less than a month
TL;DR: Rewards will be between 1.0 and about 284 for the life of the coin if no updates are required