Thanks for your response.
AYK there are times when SPV mining or Selfish mning happens & some pools/miners mine empty blocks only sending block reward to their address. In such situations they don't reveal their mind blocks making a secret chain until creating a longer chain thus dropping other candidate chains after a while.
I was wondering if there is a way to watch every candidate chain being created to see which chains & which blocks were mined through a selfish style. I know its hard to address this kind of attack using current protocol state, but may be there is a way to find some solution by watching/logging & analyzing pools/miners behaviors in the past.
I don't think that mining an empty block can be considered an attack, neither selfish.
The miner usually just was luck and found the nonce before updating mempool data, or it may be even empty if the block is too fast. It is a run and a competition...
And imo this has nothing to do with orphan blocks (temporary side chains).
And we don't see an orphan block for years, according to blockchain.com data