user13700: I am reading the Cornell selfish mining paper. In it, their main argument is that a selfish miner can increase the ratio of the blocks he mines relative to the honest miners. I do not dispute this. However, to my understanding, merely denying others their blocks does not help you; just because everyone else is getting fewer blocks doesn't mean you're getting more. (That is, everyone mining normally would be expected to get a certain rate, but if you suppress some of those blocks, then the total rate goes down. So denying others their blocks is not zero-sum; just because everyone else's rate goes down does not imply that your rate goes up.)
Here's a simpler explanation of my confusion. Consider this thought experiment. Let's say 2/3 of the miners suddenly quit mining, leaving it all to a miner who has 1/3 of the hashrate. We can all agree that this miner is at least as well off as a miner conducting a selfish miner attack. (The reason for this is very simple: he could just replicate the exact same strategy used by the selfish miner, except that the honest miners now have no chance of finding a block in this thought experiment.) Nonetheless, they can only mine at a rate of 1 block per 30 minutes, at least until the next difficulty readjustment.
So unless you're a sadist who just wants to make everyone else worse off, it seems that selfish mining gives no advantage, unless we consider at least one of these three factors:

Transaction fees. If you mine at the same rate and cause everyone else to mine at a lower rate (because a lot of their blocks get rejected), you are still finding blocks at the same time intervals on average, but since each block takes longer in general to find, it will include more transactions and thus more transaction fees.
Difficulty changes. If the difficulty readjustment occurs as you're performing selfish mining, then of course decreasing everyone else's share of the pie increases yours.
Economic effects. With fewer bitcoins being mined, all else being equal, a decrease in supply causes an increase in price. So the bitcoins you mine are more valuable.

Am I correct in concluding that without these three effects, there is no selfish mining attack? If so, then selfish mining is not a problem in practice, at least for now. Transaction fees are minuscule compared to the block reward, difficulty retargets are infrequent, and the amount mined each day isn't really that significant compared to the total number of coins in circulation.

user5960: Selfish mining is not related to the three factors you mentioned. 
The basic idea is that a miner can do one of two things:

Shift her mining efforts on top of any new legitimate block she hears about and broadcast to the network any block she finds as soon as she finds it
When she finds a block, instead of broadcasting it immediately, keep it to herself and attempt to mine on top of it and lengthen a private branch of the blockchain which she can later choose to broadcast opportunistically and collect the reward associated with the one (or more) blocks in her secret branch. 

The first strategy is the one suggested in Satoshi's paper. I'm calling this a suggestion because there is nothing forcing it in the software.
Surprisingly (perhaps) the second strategy can be shown to increase the chances of winning the next block, in some cases.
Certain types of double spend attacks as well as the selfish miner's strategy utilize this. For a more comprehensive analysis you can look at this paper On the Phase Space of Block-Hiding Strategies in Bitcoin-like networks.
The second strategy becomes beneficial only when the miner has a sizable hashing power (around 1/3) or is central enough to have many miners work on it's block in case of a tie with the rest of the network.
the TLDR is: centralization is bad. Once a miner becomes too big he can, in principle, abuse his power to get more than his relative share. 

user8717: You're missing the main point: when a selfish miner finds a new block, he keeps it private, does not broadcast it to the network, and starts mining on top of that privately.
The rest of the network is still mining on a block that was actually already found, but not broadcast.
When the rest of the network finally finds this block, the selfish miner broadcasts his version, in an attempt to replace it. 
By invalidating blocks this way a selfish miner is effectively wasting other people's cycles, and has a head start for winning the next block, because he started mining on it before the others.
Edit
Keep in mind that this practice is only successful if you're a large pool with around 25% of hashing power. Major pools of this size are closely watched and scrutinized by the entire community. Finding consecutive blocks in a row, for many times, is a strong indicator that the pool is practicing selfish mining. The community can therefore decide whether to leave the pools who are practicing this behavior.

13700: <p>I am reading the Cornell <a href="http://arxiv.org/pdf/1311.0243v1.pdf" rel="nofollow">selfish mining paper</a>. In it, their main argument is that a selfish miner can increase the ratio of the blocks he mines relative to the honest miners. I do not dispute this. However, to my understanding, merely denying others their blocks does not help you; just because everyone else is getting fewer blocks doesn't mean you're getting more. (That is, everyone mining normally would be expected to get a certain rate, but if you suppress some of those blocks, then the total rate goes down. So denying others their blocks is not zero-sum; just because everyone else's rate goes down does not imply that your rate goes up.)</p>

<p>Here's a simpler explanation of my confusion. Consider this thought experiment. Let's say 2/3 of the miners suddenly quit mining, leaving it all to a miner who has 1/3 of the hashrate. We can all agree that this miner is at least as well off as a miner conducting a selfish miner attack. (The reason for this is very simple: he could just replicate the exact same strategy used by the selfish miner, except that the honest miners now have no chance of finding a block in this thought experiment.) Nonetheless, they can only mine at a rate of 1 block per 30 minutes, at least until the next difficulty readjustment.</p>

<p>So unless you're a sadist who just wants to make everyone else worse off, it seems that selfish mining gives no advantage, unless we consider at least one of these three factors:</p>

<ol>
<li>Transaction fees. If you mine at the same rate and cause everyone else to mine at a lower rate (because a lot of their blocks get rejected), you are still finding blocks at the same time intervals on average, but since each block takes longer in general to find, it will include more transactions and thus more transaction fees.</li>
<li>Difficulty changes. If the difficulty readjustment occurs as you're performing selfish mining, then of course decreasing everyone else's share of the pie increases yours.</li>
<li>Economic effects. With fewer bitcoins being mined, all else being equal, a decrease in supply causes an increase in price. So the bitcoins you mine are more valuable.</li>
</ol>

<p>Am I correct in concluding that without these three effects, there is no selfish mining attack? If so, then selfish mining is not a problem in practice, at least for now. Transaction fees are minuscule compared to the block reward, difficulty retargets are infrequent, and the amount mined each day isn't really that significant compared to the total number of coins in circulation.</p>
 5960: <p>Selfish mining is not related to the three factors you mentioned. </p>

<p>The basic idea is that a miner can do one of two things:</p>

<ul>
<li>Shift her mining efforts on top of any new legitimate block she hears about and broadcast to the network any block she finds as soon as she finds it</li>
<li>When she finds a block, instead of broadcasting it immediately, keep it to herself and attempt to mine on top of it and lengthen a <strong>private branch</strong> of the blockchain which she can later choose to broadcast opportunistically and collect the reward associated with the one (or more) blocks in her secret branch. </li>
</ul>

<p>The first strategy is the one <em>suggested</em> in Satoshi's paper. I'm calling this a <em>suggestion</em> because there is nothing forcing it in the software.</p>

<p>Surprisingly (perhaps) the second strategy can be shown to increase the chances of <strong>winning the next block</strong>, in some cases.</p>

<p>Certain types of <strong>double spend</strong> attacks as well as the selfish miner's strategy utilize this. For a more comprehensive analysis you can look at this paper <a href="http://arxiv.org/pdf/1402.4233v1.pdf" rel="nofollow">On the Phase Space of Block-Hiding Strategies in Bitcoin-like networks</a>.</p>

<p>The second strategy becomes beneficial only when the miner has a sizable hashing power (around 1/3) or is central enough to have many miners work on it's block in case of a tie with the rest of the network.</p>

<p>the TLDR is: <strong>centralization is bad</strong>. Once a miner becomes too big he can, in principle, abuse his power to get more than his relative share. </p>
 8717: <p>You're missing the main point: when a selfish miner finds a new block, he keeps it <strong>private</strong>, does not broadcast it to the network, and starts mining on top of that privately.</p>

<p>The rest of the network is still mining on a block that was actually already found, but not broadcast.</p>

<p>When the rest of the network finally finds this block, the selfish miner broadcasts his version, in an attempt to replace it. </p>

<p>By invalidating blocks this way a selfish miner is effectively wasting other people's cycles, and has a head start for winning the next block, because he started mining on it before the others.</p>

<p><strong>Edit</strong></p>

<p>Keep in mind that this practice is only successful if you're a large pool with around 25% of hashing power. Major pools of this size are closely watched and scrutinized by the entire community. Finding consecutive blocks in a row, for many times, is a strong indicator that the pool is practicing selfish mining. The community can therefore decide whether to leave the pools who are practicing this behavior.</p>
