Why all miners produce the same blocks

0

My understanding is that all miners are feeded with transactions published by full node servers, but I didn't understand why they end up with exactly the same transactions in their created blocks ? Why miner A doesn't produce a block with saying 4 transactions and miner B produce a block with, for instance again, 3 transactions ?

Guillaume07

Posted 2019-08-28T23:26:49.333

Reputation: 115

4Where do you get the idea that miners produce the same blocks? No transaction can be mined twice (that would be a double spend), so by definition every block must be distinct.Pieter Wuille 2019-08-28T23:30:04.440

Answers

1

Nodes will relay all transactions to each other, true. But, how do you know all miners have the same block if only one is actually published? In any case, miners are incentivized monetarily to include the transactions with the highest fee rate (fee/kB) because the miner gets all of the transaction fees. So, it would not be surprising if miners had similar blocks since they all would presumable try to maximize the transaction fees.

JBaczuk

Posted 2019-08-28T23:26:49.333

Reputation: 6 172

I get your point and you perfectly answered to my misunderstanding. But "if only one is actually published" : it is totally true ? I mean, sometimes several blocks exist during a short period of time; a subset of the network see blockchain A and another subset see blockchain B. Even if at the end, of couse, everyone see the same (that why several block confirmations is required)Guillaume07 2019-08-28T23:40:15.527

1Theoretically multiple blocks could be mined at nearly the same time in different parts of the network, but the blocks are relayed very quickly so that window is very short. Furthermore, you will never know multiple blocks exist unless you happen to have nodes in different parts of the network that happen to witness that event because 1 of the blocks will be discarded and only 1 will eventually be added to the chain (because the others would contain some transactions that exist in the other block, making them double spends -> invalid)JBaczuk 2019-08-28T23:49:26.483