I'd like to suggest a different block reward system: Instead of reward every x block, reward every block, but devide the reward (1) by the diff. If the diff is less than 3, 3 is taken.
Examples:Diff = 1
1/3 = 0.333333333
Block Reward: 0.333333333
Diff = 10
1/10 = 0.1
Block Reward: 0.100000000
Diff = 200
1/200 = 0.005
Block Reward: 0.005
This would have some advantages:
- The rewards wouldn't change at all over time.
- Every block pays (rewarding long-time-miners).
- If a multi pool hits the coin, the diff raises within 2 blocks, the multi pool wouldn't be able to mine much coins.
I have decided to do something similar to this:
else if(block > ### ) //Update 1.1.2.3
{
if(diff < 3)
{
nSubsidy = 1 / 3 * COIN; //Every 3rd block makes 1 CGA (just split among 3 blocks)
}
else if(diff > 3)
{
if (remain < 1) //Bonus block
{
nSubsidy = 1 * COIN;
}
else // Normal blocks are 1/diff
{
nSubsidy = 1 / diff * COIN;
}
}
}
With this, CGA will come into existence very close to how it has been since the last update. The difference is that instead of getting a full coin in 1 block, the 1 coin is split up among (what would of been) the 0 blocks. I am not sure if I want to keep the "bonus block", it may encourage MP's to take advantage of CGA. My other options are to "reverse" the "bonus block" and make it a 0 block, or just get rid of it all together.
This isn't my final fix. I will be taking out Kimoto's Gravity Well to reduce the risk of an reorg attack, but I have decided to not switch the alog from scrypt. I feel that it will be too big of a change and will only delay the inevitable.
Please let me know what you think.