Selfish mining is an attack strategy where a miner or mining pool secretly withholds newly found blocks from the public blockchain, building a private chain ahead of the network. When the private chain is longer, the attacker releases it, causing the network to abandon the honest chain and adopt the attacker's blocks. This allows the attacker to earn a disproportionate share of mining rewards while wasting honest miners' work. The attack is theoretically possible with less than 51% of the hash rate.