There is a scenario where taking down some of the other masternodes will increase the rogue masternode's earnings, as the fixed masternode reward (60% of the block reward eventually) is split evenly to all remaining masternodes.
One way to decrease the incentive to attack against other masternodes would be to adjust the size of the masternode reward according to the number of masternodes running. If the reward that is shared between masternodes gets smaller as the number of masternodes decrease, the relative reward of the rogue node will also get smaller.
At this point one might see that the miners would have an incentive to take down as many masternodes as they can, as the masternodes' portion of the block reward would get smaller. The solution would be to have the miners' portion fixed to a percentage of the assumed full block reward, i.e. currently 60%, and eventually 40% in 2016.
Now I don't know what an optimal curve or linear reward formula would be, but here are a couple of simple examples to demonstrate the idea:
BLOCK = current full block reward
MAXMN = maximum number of masternodes that the current coin supply allows
MN = current number or masternodes running
MINER = miner's fraction of the block reward, for example 0.6 means that 60% of the block reward goes to miners
BLOCKMN = block reward that is shared between running masternodes
Linear model:
MN < MAXMN / 5 => BLOCKMN = 0.5 * (BLOCK - BLOCK * MINER)
MAXMN / 5 < MN < MAXMN / 2 => interpolate
MN > MAXMN / 2 => BLOCKMN = BLOCK - BLOCK * MINER
So for example, coin supply is 5 million (so max number of masternodes is 5000), full block reward is 5 DASH, and miners' portion is 60%.
MN < 1000 => BLOCKMN = 1 DASH
MN = 1750 => BLOCKMN = 1.5 DASH
MN > 2500 => BLOCKMN = 2 DASH
Logarithmic model:
BLOCKMN = LOG MAXMN (MN) * (BLOCK - BLOCK * MINER)
Same example numbers again, 5 million coins, full reward 5 DASH, miners' portion 60%.
MN = 500 => BLOCKMN = 1.46 DASH
MN = 1000 => BLOCKMN = 1.62 DASH
MN = 1500 => BLOCKMN = 1.72 DASH
MN = 2000 => BLOCKMN = 1.78 DASH
MN = 2500 => BLOCKMN = 1.84 DASH
MN = 3000 => BLOCKMN = 1.88 DASH
The closer we could get to the ideal that a single masternode's earnings would remain the same no matter how many masternodes there are running, the better that would be. Obviously high and low limits need to be in place, but I can't think of how to better model that right now.
One way to decrease the incentive to attack against other masternodes would be to adjust the size of the masternode reward according to the number of masternodes running. If the reward that is shared between masternodes gets smaller as the number of masternodes decrease, the relative reward of the rogue node will also get smaller.
At this point one might see that the miners would have an incentive to take down as many masternodes as they can, as the masternodes' portion of the block reward would get smaller. The solution would be to have the miners' portion fixed to a percentage of the assumed full block reward, i.e. currently 60%, and eventually 40% in 2016.
Now I don't know what an optimal curve or linear reward formula would be, but here are a couple of simple examples to demonstrate the idea:
BLOCK = current full block reward
MAXMN = maximum number of masternodes that the current coin supply allows
MN = current number or masternodes running
MINER = miner's fraction of the block reward, for example 0.6 means that 60% of the block reward goes to miners
BLOCKMN = block reward that is shared between running masternodes
Linear model:
MN < MAXMN / 5 => BLOCKMN = 0.5 * (BLOCK - BLOCK * MINER)
MAXMN / 5 < MN < MAXMN / 2 => interpolate
MN > MAXMN / 2 => BLOCKMN = BLOCK - BLOCK * MINER
So for example, coin supply is 5 million (so max number of masternodes is 5000), full block reward is 5 DASH, and miners' portion is 60%.
MN < 1000 => BLOCKMN = 1 DASH
MN = 1750 => BLOCKMN = 1.5 DASH
MN > 2500 => BLOCKMN = 2 DASH
Logarithmic model:
BLOCKMN = LOG MAXMN (MN) * (BLOCK - BLOCK * MINER)
Same example numbers again, 5 million coins, full reward 5 DASH, miners' portion 60%.
MN = 500 => BLOCKMN = 1.46 DASH
MN = 1000 => BLOCKMN = 1.62 DASH
MN = 1500 => BLOCKMN = 1.72 DASH
MN = 2000 => BLOCKMN = 1.78 DASH
MN = 2500 => BLOCKMN = 1.84 DASH
MN = 3000 => BLOCKMN = 1.88 DASH
The closer we could get to the ideal that a single masternode's earnings would remain the same no matter how many masternodes there are running, the better that would be. Obviously high and low limits need to be in place, but I can't think of how to better model that right now.