Why the 25% Bitcoin Attack is not a Problem
Recently, there was a paper which outlined a vulnerability in the Bitcoin protocol. This paper claimed that with a share of the computing power of the network adding up to only 25%, "Selfish" Miners could take advantage of the rest of the network and take more bitcoins from the block reward than their fair share.
The paper is wrong. They fail to take into consideration the extra amount of time it takes to generate blocks.
Let's assume for a moment that a pool has 25% of the mining power. If this is true, then they expect to finish 25% of the blocks everyday, which yields an expected daily income of 900 BTC from block rewards. While it is true that more or fewer blocks can be finished in one day, the assumption of the 25% computing power share renders that irrelevant.
The paper states "We assume that miners are rational; that is, they try to maximize their revenue, and may deviate from the protocol to do so."
If this is true, then a strategy which yields an expected daily income of less than 900 BTC would not be followed by a rational miner, selfish or not.
This is a simplification of Selfish Mining. Circles are blocks and vertices are the periods of time between completed blocks. The paper assumes that each round takes 10 minutes. This is false. By this false assumption, the expected daily income of a Selfish Miner is 1,008 BTC, which we can see is bigger than 900 BTC.
As said before, the paper does not take into account the extra time for blocks to finish if you're not following the protocol in this manner.
Here's what the strategy actually yields:
The 3 minutes and 20 seconds extra on the 4th block is when the 25% selfish pool is waiting for the rest of the network to catch up in order to cause a fork event. The 6 extra minutes on the 5th block is because on average, they will force half of the network to work on their "false" fork.
While they expect to receive 25 BTC on the 4th block, they can only expect to receive 40% of the revenue from the 5th block. Not only this, but 37.5% of the time they won't get anything because the public block finished first, causing everyone to continue to work on it.
As a result, their expected earnings per event are 21.875 BTC, and due to the extra time, we can expect ~24.27 of these events to occur per day, which leaves an expected daily income of ~530.90 BTC, which is ~369.10 BTC less than if they were honest.
Conclusion: Miners can be expected to not follow this strategy since it yields less income.
Comment? Concerns? Leave a comment below.
tl;dr Miners lose by following the "Selfish Mining" technique by about a 41% decrease in expected income if they control 25% of the network.