There has been much discussion recently about how to prevent mining pools. There are theoretical and practical approaches. Nevertheless preventing mining pools is not the same as preventing geographical centralization. Mining pools incentives are:
- Reduce payoff variance.
- Reduce resource usage. Normally Bitcoin node would require more resources (memory,disk, bandwidth) than a pooled miner.
- Reduce exposition to network attacks by connecting to trusted parties only.
Nevertheless pooled mining has the unintended consequence of delegating the decision on set of transactions to include on their blocks, and for some people this is a deterrent (but unfortunately the deterrent is not strong enough).
Now we’ll examine another form of centralization. Geographical centralization incentives are very different:
- Reduce orphan rate. Because each mining hardware is closer to the other, the probability or creating orphans inside the miners own network decreases, and so the expected revenue increases. Running miners in different locations in the globe requires establishing low-latency network links to communicate blocks as fast as possible.
- Reduce hardware maintenance costs
Nevertheless there are also deterrents:
- Increased risk of system failure (single point of failure)
- Increased difficulty and cost of extracting heat.
Unfortunately, when the block interval is reduced below a threshold (which I suppose is about 10 seconds) the incentive for the reduction of the orphan rate is much higher than the deterrents.
We’ll describe a protocol called LIMIO (for LIMit Internal Orphans) that eliminates the incentive to geographically concentrate the hashing hardware by forcing miners to waste some amount of coins in orphan blocks.
In cryptocurrencies using the DECOR+GHOST protocols such as Nimblecoin, orphan rates are high, but this does not undermine the security, convergence or revenue of the miners. In DECOR+GHOST cryptocurrencies, orphans block headers are recorded in the block-chain itself so the network can take decisions based on the number, distribution and type of orphans. If you force the miners to identify themselves with a pseudonym, then we can track the number of internal orphans produced by any subset of miners. The “internal orphans” are defined as the number of orphans created by the subset of miners in a certain block chain window, where both the solved block and the orphaned block owners belong to the set. You can incentive the use of mining pseudonyms by confiscating an amount of coins from the block reward the first time a pseudonym is used, and making the public key that identifies the miner the address where the coinbase coins are paid to.
The LIMIO protocol consist of adding a cryptocurrency protocol rule that encourages high internal orphans. More precisely for any contiguous block chain part of N blocks, the Internal Orphans Count (IOC) is computed as the number of internal orphans for set of the miners who solved the N blocks. The network encourages that IOC to be higher than a certain predefined threshold. If adding a block to the chain implies a IOC lower than the threshold, a part of the new block reward is confiscated by the network. Also the confiscation function could become a multiplier greater than one so if the IOC is higher than the threshold, the reward is increased. If we express the confiscation function as a multiplier of the reward M(i), where i is the IOC, then M should be smooth, monotonically increase, and M(0) should be zero or close to zero.
For example, suppose that in a cryptocurrency which has 10 powerful miners each having 10% of the network hashing power, the average orphan rate is 1/10 (1 orphan every 10 blocks). We take a sliding window of 1000 blocks, and force than the IOC in such window to be above 100 (so M(100)=1). We take a large window so we can assume that the sample involves almost all the top miners. If two miners decide to geographically join their hashing power to reduce latency, they have two options: mine under a single identity having 20% or mine under both identities, but with no internal orphans. In both cases the IOC will start to decrease and sooner or later the network will start punishing all miners by confiscating part of the block rewards. The joined-miners will see a decrease on their revenue and they will revert their decision, for their own benefit and for the benefit of the network.
There is nevertheless a possible extortion: even if the joined-miners see their revenue decrease, they may sustain it as attack until the remaining miners are forced to quit business or they need to artificially create more orphans to increase the IOC. If the remaining miners quit business the attacker’s hash share will increase, but the IOC will decrease still more, increasing the confiscated amount and making more difficult to the attacker to pay for fixed mining costs. The confiscation function should be designed so that the confiscated amount in this case reduces the net income of the attacker. At the extreme, if there is a single identity, the confiscation should be 100%. If the remaining miners start creating artificial orphans, they reduce their revenue and increase the attacker’s revenue, so they must avoid this strategy. The confiscation function should be designed such that the net effect of producing artificial orphans is a reduction in revenue.
So the “attack” is just a shoot in the foot. It’s no surprise that there exists suicide strategies. Bitcoin suffers from the same problems: each miner takes a share of a single cake and therefore reduces the revenue of the remaining miners. When the Bitcoin subsidy is lowered and fees come to play, a top miner could adopt a predatory pricing strategy and accept only transactions with zero fees, making the fee market price collapse and forcing the remaining miners with less capital to withstand the losses or quit business.
Can this ideal confiscation function based on the IOC be built to create the perfect LIMIO. Let the math begin… but in another post.