legendary
Activity: 1176
Merit: 1134
Notary mining wars - and how to avoid them
Using PoW as the initial consensus mechanism creates the possibility that the notary nodes will start a mining war against each other. Now they are supposed to be a cooperative group so we hope this is just a theoretical issue, however I must have been more affected by the cold I had earlier in the week as I had calculated the end of BTC subsidy at $1.25 KMD price. Which, even in the most optimistic scenario was 5x increase, so I figured this was not an urgent issue to solve.
Now that ZEC futures are trading around $100, if KMD trades at 1% of ZEC, we are looking at $1 price. What is "worse" is that I was off by a factor of 5 and the end of BTC subsidy will happen at 25 cents KMD price. That is just a bit above the max raise value, so it appears that we need a solution to this.
The reason is that during the subsidy period, there is a financial balancing that can be done by withholding subsidy to a notary that overmined over the average. However if the KMD that is mined is well above the $500/mo, then this withholding wont have much effect.
"blocks" : 13020,
"connections" : 46,
"difficulty" : 2.41007651,
With diff well above 1.0 for testnet, it does seem that a solution is needed.
with 1 minute blocks being sustained (actually more like 45 seconds recently), that is 1440 blocks per day or 43,200 per month. 1/64th is 675 blocks per month per notary or ~2000 KMD per month, so 25 cents price matches the $500/mo
What this means is that above 25 cents market price, there wont be need for much BTC subsidy. The bitcoin txfees would be the only BTC that is needed by the notary nodes.
Here is my proposed solution:
KMD can be in one of two modes: Notaries Active or No Notary
We are currently in the No Notary mode and it is the usual free for all PoW race. We have verified 1 min blocks are sustainable and so even in the even all notary nodes are disappeared, there is a fallback so that the KMD chain will continue on. Of course without notary nodes, there is no bitcoin protection, so we dont expect we will see such conditions other than right after genesis and before the first slate of notaries are selected, or some unexpected black swan event. I am also leaning toward just starting off with the testnet notaries as the official notaries, until there is the official election. We now have quite a few testnet notaries, but it isnt too late to get your node participating, especially for North America(!) or Asia (eastern europe). European nodes are getting very close to the 16, if not already there. We dont have any African or South American nodes yet.
For the Notaries Active mode, I propose the following to avoid notary mining wars:
At each height, a single notary node gets to mine at the current difficulty, this will rotate in a round-robin so each notary node gets 1/64th of the current difficulty blocks.
At all heights, the rest of the notary nodes get to mine at 10x the current difficulty.
Everyone else gets to mine at 100x the current difficulty.
####
I believe the above will make any mining war between notary nodes uneconomic. It does have the issue of transitioning from Notaries Active mode, as if all notaries are gone we need to get a special tx confirmed to switch to No Notaries mode, but that would require 100x the hashrate. However, using a GPU it appears that 50x or more the hashrate of the default miner can be achieved and assuming it is from a baseline of around 1.0 to 2.0 diff, we will be able to get the special tx confirmed within 10 minutes.
Notice a good side effect of this is we can easily detect a specific notary node that is not generating blocks on their turn, just by looking for blocks that take ~10 minutes. That is a painful duration, but not any thing so drastic, so I think any unreliable notary node that subjects the rest of the network to multiple 10 minute blocks will soon be voted out by the majority of the other notary nodes.
Since the notaries will be operating as a cooperating peer group, and they are most directly able to tell the lagging notary, I think the usage of notary majority to replace a misbehaving notary will keep the set of official notaries reasonable. It could well be that after the initial election, there wont need to be a general election at all.
Of course, there still needs to be a provision for a global notary election after the initial slate and a one third notary node + special signature will be able to effect just a new slate of notary nodes.
Not sure about limiting the power of the majority notary nodes to replace 1 node at a time is a good idea or not. By limiting the number of such replacements per time period, it can limit the rate of change of notary composition. Then if it looks suspicious, a general election of all notary nodes can be invoked to put a stop to the one-by-one installation of crony notaries.
One thing to keep in mind is that this will not be a machine driven thing, but a human driven one. So there will be chat logs available to see why a certain notary was replaced with another.