The fee algorithm has not readjusted as intended following the dramatic increase in median transaction size which came with the upgrade to RingCT transactions. A conclusion reached on the subject has indicated that the dynamic block size penalty function does not work as intended when a typical transaction is close to the median block size.

Would the existing block size penalty function work as intended if the median block size increased due to a higher number of transactions on the network and sufficient fees to pay for the necessary block size increase? What magnitude increase to the current transaction rate of 100 tx/hour would be required to achieve a satisfactory result?


Maybe it would.

In theory, to smoothly function as "originally intended" would mean the median block size would somehow have to grow to the point where one TX is 1.2% of the median, which translates to a block size of roughly 1250kB (15kB being a safe size to fit a "typical" transactions). The magnitude would then be around 2500TX/hour or 0.7TX/s. It's a long way to reach that level of adoption.

However, one needs to be careful when evaluating such things, because in practice we could see something entirely different.

The 1.2% is a direct consequence of arbitrary constants chosen in the current min. fee formula. If it was chosen such that it's, for example, 2.4% then the tipping point would be at 625kB but the min. fee would be double then what it is now.

I'd say it would happen way sooner because external factors such as market price and user willingness to pay some fee also have an impact on this. For example, currently you need around x20 min. fee multiplier to start the dynamic process. If everyone offered the x20 fee, then it would be viable for the miners to start expanding blocks for 20%, which is just enough to squeeze in one TX at 60kB median, 2 TX-es at 120kB median and so on. Note that with current prices that would mean everyone is willing to offer around 5$ to place a single TX! If it meant 0.3$, then we probably wouldn't be talking about this problem right now :)

For example, if we consider 0.3$ as some fee which everyone is willing to pay by default, and model with a flat market price, the tipping point where 0.3$ gets you 1 TX more is at about 280kB block size, as seen in the chart below:

Minimum feasible fee

Note: W_0 = 101.2%, W_T= (15kB) / (median block size) + 1.

But what if the price also grows? Then we could end up having the same problem all over again. Long-term, if the price should raise with block size slower than linear, then it's likely we will never have this problem again in the future. It's just getting out of the trench which seems hard, and this trench shouldn't have been there in the first place!

So it's not just the formulas which could help as dropping the market price 20-fold would also fix the problem. One could argue that if the network gets clogged and the price drops as a consequence the problem would fix itself.

But I digress. If there was a consistent stream of TX-es coming in, then even with the current set-up the block size would be able to creep up slowly until it crosses over some point where the min. fee would drop so the users are willing to use higher multipliers. One could argue that was not the intended way the system should work and that at any given moment some would be willing to use at least some lower multipliers. Problem is that right now anything <20x does nothing of significance, because of the TX size issue. The dynamic block size is really there to accommodate some peak usage times and not have to wait days for backlog to be cleared.

Thing is, the RCT HF introduced bigger TX-es but did nothing to address these dynamics at the same time. I understand that there was the thought that people would still be using non-RCT TX-es which would alleviate the problem but the reality is that more than 99% of TX-es are RCT even though it's not mandatory!

At the end, we see that it's also about the price of min. fee at which miners can do something. The current min. fee gives no incentive to miners to do anything because of the TX size issue and yet it could already be considered pricey. Nobody wants to pay x20 the min. fee and make miners do something because the min. fee is high enough by itself. So really, there are many aspects to this and many possible solutions. We'd want to pick the one which would let us forget about the problem forever :) However, as the project is still in some early stage, these kind of details must be worked out and evaluated as we go on. The only worthwhile data which could be used as a guideline is the one for Bitcoin, and Bitcoin is also in some early stage, having its own problems and trying to work them out.

  • 1
    I still don't understand why there is a need to give a penalty at such a low size. For example if the penalty kicked in at, say 1.5x or 2x the median, the block size would naturally grow as needed and the network would better absorb transaction bursts, without allowing inconsiderate spamming. See also this question which, I think, didn't get a satisfactory answer. – assylias Mar 11 '17 at 13:59
  • 1
    Because one day, even 1.1x could be a big deal. What if 10% meant a thousand TX-es? Then, even a 10% would be enough to accommodate some burst. – JollyMort Mar 11 '17 at 14:03

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.