2

If you go to etherscan.io, you can see that each block has the different number of transactions. Can't we incentivize miners(e.g. give more rewards ) to include more transactions in their block so that the ethereum network can compute more transactions per a second?

Currently, it doesn’t make much economical sense for miners to wait and include more transactions because transaction fees are too small of a part of the total block reward for them to bother with that.

  • "bitcoin network" -> "Ethereum network" – Richard Horrocks Dec 12 '18 at 8:37
4

Blocks that are fuller, and contain more transactions, both propagate around the network more slowly and take more time for other nodes to validate1. Both of these things increase the chance of a miner's block becoming an uncle and reduce the chance of getting the full block reward.

Miners, therefore, have to decide whether to increase the number of transactions they include (leading to increased transaction fees), or reduce them (leading to a greater chance of winning the block reward).

They also have to take into consideration what they think other miners are doing, and the current gas prices, which is where game theory comes in.

Can't we incentivize miners to include more transactions in their block?

If all miners are under-filling their blocks repeatedly and continuously, then it's probably a signal that gas prices are too low. At some point, users of the network will realise that they're waiting too long for their transactions to go through, and push the gas prices up until a new equilibrium is reached.

Edit:

1 Firstly, blocks containing more transactions are essentially bigger, as they contain more data. A larger chunk of data will take more time to propagate around any network.

Secondly, blocks containing more transactions are likely to involve more changes to the world state (e.g. updating accounts, changing the values of variables associated with contracts, etc.). When a miner successfully mines a block, they have to let the rest of the network know about it before it's considered canonical. When the other nodes in the network receive the new block, they have to check the transactions are valid - this is validation. The more state changes, the longer the validation will take. If, in the meantime, another miner propagates a smaller version of the same block around the network, then it's possible a larger part of the network will validate that smaller block more quickly, leading to the smaller block being accepted as canonical. The first miner loses out on the block reward.

  • [Thank you to the user who suggested the edit - I tweaked it slightly to keep the British English spelling... :-) ] – Richard Horrocks Dec 12 '18 at 15:43
  • If blocks are being under-filled by miners, I think it's also possible that there is a lot of network congestion and/or fragmentation. I don't think this would happen at the moment, but I think it could happen if the network were under attack. Or block times are too low (different transactions get included in blocks by different miners and miners stop including transactions they think are included, but end up being uncled). – lungj Dec 12 '18 at 17:47
  • 1
    @RichardHorrocks no worries, thanks for the essence of the answer since that's what's most important after all! – Leon Dec 13 '18 at 7:36
  • @RichardHorrocks Care to explain why the propagation and validation of relatively fuller blocks take more time? – sflow Dec 13 '18 at 10:49
  • 1
    @sflow Yep, sure. I've updated the answer. Let me know if anything is unclear :-) – Richard Horrocks Dec 13 '18 at 11:19

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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