5
5
The Majority is not enough paper proposed an academic and somehow practical attack to Bitcoin mining system based on creating hidden forks. The paper claims that if miners work on whichever fork they received first, the attack can be executed by very small pool. Their proposed solution is: "when a miner learns of competing branches of the same length, it should choose which one to mine on uniformly at random". However this solution does not solve the problem completely, it just increases required size of the pool which want to execute the attack.
I have read about the attack here and here, however, I didn't find answers of my questions:
- Is the attack really practical?
- Have bitcoin developers applied the solution proposed in the paper? (If yes, why the wiki is not updated? The wiki states: "generating nodes build onto whichever one of the blocks they received first")
- Have bitcoin developers applied another solution for the problem? (The solution proposed in the paper does not solve the problem completely)
EDIT:
why mining on both chain forks uniformly would increase the required mining power for a selfish mining attack?
Mining on both chain forks uniformly is a solution to sybil attack of the selfish miners. Selfish want to force other miners to work on their fork, so they create a significant number of zero-power miners to the Bitcoin miner network, as their sensor. When one of their sensors senses a new valid block, all sensors broadcast the fork of the selfish miners. Therefore, more than half of miners (nearly all of them) would work on selfish miners fork.
Note that, the sybil attack and their proposed solution is minor part of the attack. The main attack could be executed without running sybil attack and even in the case of applying their proposed solution, if the selfish miners have 33% of mining power.
From your summary, it is not clear, why mining on both chain forks uniformely woudl would increase the required mining power for a selfish mining attack. If anything, it would decrease it, because if the selfish miners would only support their own fork and the others would half their mining power to both branches the selfish branch would have most mining power support. Also, the proposed fix seems to completely mess up the incentive structure of mining, because people could just continue mining at previous height, as even a late block might build a longest chain. – Murch – 2015-06-26T08:46:31.013
Mining on both chain forks uniformly is a solution to sybil attack of the selfish miners. Selfish want to force other miners to work on their fork, so they create a significant number of zero-power miners to the Bitcoin miner network, as their sensor. When one of their sensors senses a new valid block, all sensors broadcast the fork of the selfish miners. Therefore, more than half of miners (nearly all of them) would work on selfish miners fork. – Tail of Godzilla – 2015-06-26T08:57:58.307
All in all, the sybil attack, and their proposed solution is minor part of the attack. The main attack could be executed without running sybil attack and even in the case of applying their proposed solution, if the selfish miners have 33% of mining power. That is why I add my last question to the question list. – Tail of Godzilla – 2015-06-26T09:01:02.583
Alright, with the sybil attack explanation it makes sense to me. It would be nice, if you could edit your post to clarify it in the question post as well. Thank you. – Murch – 2015-06-26T09:56:55.610