9

Miners are penalised if they mine a block that is larger than a threshold.

Miners can make sure that the blocks they mine don't go over that threshold in order to avoid a reward penalty (by adapting the daemon code).

One of Monero's "selling point" is the dynamic block size but since the miners have a disincentive to push large blocks, isn't there a chance that the block size will actually never grow, creating transactions backlog issues etc.?

Example: "normal" transactions use approximately 13kB, the current median block size is 65kB. Packing 5 transactions is just within the median, and the miner gets the full reward. Packing 6 transactions would cause a reward penalty of 0.34XMR. Assuming an additional transaction fee of maybe 0.02, that's a "loss" of 0.32 XMR for the miner.

  • for the same reason miners in bitcoin don't mine empty blocks and orphan everything. more txs = more fees. the higher the capacity of the network the better it is for everyone involved. everyone gets fast confirmations and miners get extra money – samwellj Mar 2 '17 at 17:35
  • Yes, once the block size is larger, you get larger fee - but making the size grow is costing money. You need a majority of miners to push larger blocks for the median block size to grow. This seems to be a form of Prisoner's dilemma problem. – assylias Mar 2 '17 at 17:50
9

TL;DR Actually, with the current minimum fee, there's an incentive for 0.6% growth as long as there's enough transactions coming in. Problem is not in the formulas themselves, but in the typical transaction size / min. block size ratio.

The penalty formula has an optimum block size increase for a set of transactions offering any given fee, see figure below.

enter image description here

The formula works well in the ideal case, where miner would be able to build a block targeting any % increase. If that was the case, for everyone paying the current dynamic minimum fee, the optimum would be 0.6% increase above median. A 1.2% increase would be neutral to the miner, ie he'd get the same total reward as if he just mined a full block without increase.

Problem is, the minimum feasible block size increase is around 20% (adding just 1 typical RCT TX above median). It would be rather hard for a miner to combine such transactions to consistently give an increase of 0.6% above median. He is then left with a simple choice: to add 1 TX above median, or not to. And with the minimum fee, the economical choice will always be not to add. The problem would go away by itself if the blocks would somehow expand above some threshold, as seen in the figure below. Problem is in getting there in the first place.

enter image description here

Currently, to make it neutral for the miner to add just one TX it would mean almost everyone would have to offer around 5$/TX with the current prices. One could argue an user would rather give up transacting then to pay such a fee, unless we're talking about very important transactions.

However, it is planned to fix this with the next HF. There are a few options:

  • Increase the minimum block size to such that the ratio of typical TX size and min. block size becomes irrelevant, ie to about 1.1MB (to make 1 TX = 1.2% increase). With this, the current formulas would be allowed to work smoothly, but this would make the network vulnerable if someone would want to abuse the free ride to 1MB.
  • Make the increase for size of 1 TX free. This would mean free increase of 20%, but ever reducing as the blocks grow. This would limit the rate at which the blocks can expand for free, but it would still be free.
  • Something else. One idea is to tweak the penalty formula such that the current minimum fee will always be sufficient to make it neutral to add 1 TX above the median. This is what I'm currently researching, and the draft is in some readable format at the moment. This would give us a kind of discount with the penalty until we grow up :) It would keep the cost of expansion nearly the same as in the ideal case, but remove this wall made by typical transaction size.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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