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?