Subject: Re: [bitcoin-dev] BIP proposal - Max block size

From: Erik <[email-masked]>
Date: Sat, 14 Nov 2015 16:25:19 +0100

I've seen two different BIP103's and choose to not write about it
because risk of ambiguity. One of them are proposing a linear growth and
the other one is proposing an exponential growth. The all-linear growth
is an option that will not work well in the future because the growth
will be too slow soon or later. The exponential growth assumes that the
technology will rise in a certain growth, which may be too slow or too
fast in accordance to the technical evolution. None of the BIP103
proposals will actually handle an unexpected future case.

BIP105 has another feature not mentioned in my proposal that is to place
a vote requires a cost as a difficulty increase. I do not think it's a
good option since it will make users refrain from voting to "earn" a
difficulty lowering. The votes are the (yet) only soft way I see to let
the blockchain know if it should allow growing faster or slower. I also
don't see a benefit of having the opportunity to lower the block max
size in comparison to the risks involved with that. Then it proposes a
limit to how much it can increase at all which will need a new hard fork
when we need to increase the limits of the proposal.

I don't see how John Sacco's BIP proposal is similar to this one since
there is no voting mechanism to make the increase dynamic. Also John
proposes that the size will double at each halving instead of each
difficulty retarget. This could, in contrary to increase the fees by
making larger spaces in the blocks, decrease the fees because of that
the fee required to enter the next block will be lowered. Also it
proposes a hard limit at 32 MB which, again, need a new hard fork later.

The formula I've provided isn't actually complicated. The 2^(1/2...)
formula creates a number in the interval 1 to 2. The formula can tell if
the block max size every second year shall double or be the same based
on the last 6 month of votes. Because i believe there should always be
an increase to secure a stable growth of the network, there is also a
linear formula that the growth cannot be lower than. If the 2^(1/2...)
formula gives a lower increase than the linear value for the next
retarget, then the linear value should be used instead.

There will not be a rounding error since the implementation shall floor
the value to a whole byte. The next size should be calculated on that
value. Also, if the block max size is included in the retarget block,
there would be an extra correcting method to uncertain clients. The
formula isn't very different in complexity from the difficulty retarget
formula and will still need the last recalculated value to be computed.

One of the benefits of using an exponential formula is that it could
easily be fit for any arbitrary block period by changing the divisor. I
personally think the two week interval will be smooth enough.

Erik

Den 2015-11-13 kl. 20:37, skrev Luke Dashjr:
> On Friday, November 13, 2015 1:07:33 PM Erik via bitcoin-dev wrote:
>> Hi devs. I was discussing the BIP proposals concerning max block size
>> yesterday in the #bitcoin channel. I believe that BIP101 fully utilized
>> will outperform consumer hardware soon or later and thereby centralize
>> Bitcoin. I would therefore like to do a different proposal:
>
> It doesn't look like you've considered BIP103 or newer BIPs?
Especially, I'd
> suggest you look at and work with John Sacco who just the other day
posted a
> BIP draft very similar-looking to yours. My overall impression of your
summary
> is that it is unnecessarily over-complicated and underspecified. How
does the
> 2^(1/2) block size limit actually work? This is not a very precise
number, so
> it seems liable to produce rounding errors in different implementations.
> Additionally, the miner voting thing seems pointless since miners can
already
> softfork lower limits. It would be beneficial to express the current
> possibility so full nodes can enforce it, but this would be expressed
as an
> unlimited simple-majority vote to reduce the limit. Probably it would
be ideal
> to separate this off from the hardfork BIP, since it's fairly tangent
to it.
> Luke