Selfish mining attack

Selfish mining attack

A selfish mining attack, or block withholding attack, is when a cryptocurrency miner decides to keep a valid block they have successfully mined secret instead of broadcasting it to the network.

A selfish mining attack, also known as a block withholding attack, describes a malicious attempt to discredit blockchain network integrity. Selfish mining attacks occur when an individual in a mining pool attempts to withhold a successfully validated block from being broadcast to the rest of the mining pool network. After the selfish miner withholds their successfully mined block from the group, they continue to mine the next block, resulting in the selfish miner having demonstrated more proof-of-work compared to other miners in the mining pool. This allows the selfish miner to claim the block rewards (and financial rewards) while the rest of the network adopts their block solutions.

A selfish miner will maintain their own private chain, and publicly reveal it opportunistically in order to obtain greater rewards that would normally be granted based on their actual contributions (Hashrate) to the mining pool. It is possible for multiple participants in a mining pool to engage in selfish mining behavior during the mining process.

Profitable selfish mining

The minimum profitable threshold, using the Markov chain model, has been demonstrated to be symmetric around 21.48% if two miners in a pool are engaging in profitable selfish mining. Research using Markov chain models demonstrates that two selfish miners are profitable after 51 rounds of difficulty adjustments (approximately 714 days for Bitcoin) if both their hashrates are 22% (which is slightly higher than the profitability threshold of the mining pool which is 21.48%), and are profitable after 5 rounds (approximately 70 days for Bitcoin) of difficulty adjustment if their hashrates are 33%. Profitable selfish mining becomes more difficult to successfully execute as the number of selfish miners in a mining pool increases, and/or the miners choose to increase their selfish mining hashrates because their is a negative correlation between the profitable time of selfish miners and their mining power.


Two possible solutions have been proposed to prevent selfish mining attacks from occurring on blockchain networks. The first is to randomly assign miners to branches of the blockchain when a fork occurs, and the second is to set threshold limits for mining pools on the network that would prevent selfish miners from gaining a signifiant advantages over other miners operating on the network.




Further reading


A Deep Dive into Blockchain Selfish Mining

Qianlan Bai, Xinyan Zhou, Xing Wang, Yuedong Xu, Xin Wang, Qingsheng Kong



Majority is not Enough: Bitcoin Mining is Vulnerable

Ittay Eyal and Emin Gun Sirer

Academic paper

Selfish Mining: A 25% Attack Against the Bitcoin Network

Vitalik Buterin


November 4, 2013

Documentaries, videos and podcasts


Attack Vectors: Selfish Mining Attack. Part 1 of 3 | INSIDE DFINITY

September 11, 2018

Bitcoin is Broken: Selfish Mining - Part 1

November 11, 2013

Game Theory & Network Attacks: How to Destroy Bitcoin

November 1, 2016

Selfish Mining Miners' Dilemma Ittay Eyal Technion Cyber and Computer Security Summer School

November 19, 2017

What is Bitcoin "Double Spending" and "Selfish Mining"? These are the best explanations I've seen.

December 9, 2017




Golden logo
Text is available under the Creative Commons Attribution-ShareAlike 4.0; additional terms apply. By using this site, you agree to our Terms & Conditions.