But why do miners consent that some other miner managed to mine a valid block before them?
Any miner that is spending resources to find a new block will want to ensure that they are spending those resources in a way which gives them the highest chance of finding a valid block. Doing anything which lowers this chance is counter to their incentives, especially considering the competitive nature of mining.
So consider that when a miner hears about a new block, they would have two options:
- Start mining on top of the new block
- Ignore the new block, keep mining on the old one
With option one, if the miner is successful in finding the next new block, then they will receive the block reward for it.
With option two, if the miner is successful in finding a valid block, they will submit it to the network, but the network will already have heard about the other block at that same height. In this case, the rest of the network's miners will have already been mining on the block our miner chose to ignore. So now our block-ignoring miner will have to mine another block, so that their chain will become longer than the other chain that the other miners are working on. Otherwise, if the other miners extend their chain first, our block-ignoring miner will have wasted resources trying to create their own chain!
If the other miners have more hashpower than the block-ignoring miner, then it is very likely the block-ignoring miner will fail. Consider that if you had 10% of the hashpower, you would fail to find the next block 90% of the time. And of course finding two blocks in a row is even harder!
Remember that mining is a memoryless, poisson distributed process, which means that every individual attempt at finding a valid hash has an equal probability of success. Think of it like rolling a di: if you roll ten '5's in a row, your chance of rolling a '5' on the next roll is still (1/6). The same principle applies to mining.
Why don't they claim that some other miner's block is invalid even if it actually isn't, and buy time to mine one themselves?
Every node on the network checks to see if each new block is valid, so there is no way for a miner to 'claim a block is invalid'. It simply is valid, or is not, this is easy for nodes to verify themselves.
Is it because all non-miners will validate anyway and miners don't want to risk having a discarded chain?