Ethereum miners collusion?
Ethereum miners collusion?
I hope next hard-fork of Ethereum fixes the money-supply function. It is broken. Miners can collude to create more eth. Should use DECOR+
— Sergio Demian Lerner (@SDLerner) March 27, 2016
How DECOR++ can eradicate selfish mining incentive by design
A year ago I proposed the DECOR protocol, a new rule for cryptocurrencies to reduce significantly the amount of orphan blocksMiningTool and then allow block rate to be as high as one every 5 seconds, and at the same time it promised to address the problem of selfish mining. After one year, I’ve received very little feedback about it. Yet the selfish mining problem has been argued over and over against certain changes in Bitcoin, as if selfish mining were something inevitable to all POW-based cryptocurrencies. But it is not.
In a nutshell, DECOR is a protocol that permits miners to share the block reward if both mine competing blocks. This is done by publishing block header siblings (sometime called uncles) into child blocks, and modifying the cryptocurrency protocol to pay some amount to the miners of uncles. If all miners are honest, this strategy increases slightly the probability of 1-block reversals, but reduces considerably the probability of longer reversals, as all miners choose the same parent. A few months after my post, Ethereum adopted a similar strategy of paying a certain amount of ether to uncles, but the amount paid was created out of thin ear, and at that time there could be any amount of uncles, so basically it distorted the money supply function into a uncapped inflationary one, if all miners decided to collude. After I reported this issue, they restricted the number of uncles that can be included, but still it leaves an incentive for all miners to collude to increase miner revenue. DECOR does reward sharing, so the supply function cap is maintained. But it does not solve the Selfish mining problem: miners withholding a block get paid a full reward but the remaining miners are working (without knowing it) for a half of the block reward. So my original strategy does not work for rational (but not necessarily honest) miners. A few posts later I presented DECOR+ to try to address the problem of unbalanced rewards: what happens if there are two competing blocks, but one has a 12.5 BTC reward, but the other has a 20 BTC reward due to additional fees? But again, if miners are dishonest, the proposed scheme does not solve the underlying problem, as miners can artificially increase their fees to win the conflict resolving rule, at least in all cryptocurrencies that do not burn transaction fees. How can we fix it?
To summarize, DECOR++ main protocol properties are:
Choose a parent by a deterministic pseudo-random coin toss based on competing block headers
Give standard subsidy to all competing blocks by including uncles in following blocks
Give small monetary incentive to include uncle blocks in blocks (miners including blocks can get a small share of included blocks rewards).
Give small monetary incentive to choose deterministically one of the competing blocks as the main block (this can be done by burning some reward share if other parent is chosen).
Process all transactions in uncle blocks, quietly skipping the ones that conflict with existing ones.
Pay fees to original miners for all non-conflicting transactions in uncle blocks
Decrease the money supply in blocks following blocks including uncles to compensate for the increase in money supply.
Limit the amount of uncles that can be included over an interval of blocks, and make that interval long enough to capture normal variances in orphan rates, or do not apply a limit, but reduce re-target difficulty as per block basis.
Increase the coinbase immaturity period to at least the period of money supply compensation.
Uncles can only be included in a certain number of following blocks (e.g. 6 blocks), and the inclusion interval should not cross a difficulty re-targeting point where the difficulty has been increased significantly, to prevent back-mining.
There’s a limit on uncle inclusion, isn’t there? 2 uncles, so the money supply can be increased almost 3x. Wouldn’t it be very unlikely to happen as it goes against the economic interests of miners? The opposite. As the blockchain is slowed down by creating more uncles, the difficulty adjusts, and they all earn more.