I found contradicting information about these two attacks.

My understanding is roughly this:

  • Selfish mining is a strategy followed by a miner/pool, in which it doesn't publish new blocks in order to obtain a secret fork which is longer than the main one; at some point the secret fork is published, overwriting the honest fork. This way, the selfish miner/pool obtain more rewards than their share and waste the mining power of other miners/pools
  • Block withholding is a strategy followed by a miner inside a mining pool, in which it conceals full proofs to the pool administrator in order to decrease the pool revenue.

According to this definition, these attacks are similar in their strategy, but fundamentally different in their actors and goals. However, I found several sources claiming that selfish mining and block withholding are synonyms.

So, what's the truth? Are these attacks the same? If not what are the main differences?

1 Answer 1


Both involve not instantly publishing a solution to a block (or at all), but that's where the similarities end. The descriptions given in the question are correct and describe the very different outcomes of both behaviours. A person claiming that these terms are synonymous is likely just mistaken by the names being somewhat close.

  • I've seen the term "block withholding" used for both the "large miner/pool intentionally slows down block propagation" and "hasher doesn't reveal full solution to pool" attacks, while "selfish mining" strictly refers to the former. Commented Nov 26, 2021 at 22:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.