Variance Staking Explained

Now 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.

Code:
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;
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 run through 33 / (365 * 33 + 8), to scale it down further and prevent compounding inflation

The 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

Deja un comentario