Selfish mining is a strategy where a miner keeps the blocks it finds private instead of publishing them at once. While honest miners work on the public chain, the selfish miner extends its own branch, then publishes it when that makes honest blocks lose the race. The honest blocks become orphans and their rewards are lost.
Why it pays
Above roughly a third of the hashrate, a selfish miner can earn more than its fair share, because it wastes the work of others. With a majority of the hashrate, it can rewrite recent history at will.
How it shows up in the data
- More orphan blocks than usual, often lost by the same pools (orphan blocks);
- reorgs deeper than one block (reorg history);
- one pool's share of blocks rising quickly (pool distribution).
The defense is decentralization
No single pool should approach a third of the blocks. The Nakamoto coefficient, the smallest number of pools that together produce more than half of the blocks, summarizes it in one number. Mining on P2Pool or a small pool keeps it high.