Subject: Re: [bitcoin-dev] Block size following technological growth

From: Jorge Timón <[email-masked]>
Date: Tue, 4 Aug 2015 12:35:06 +0200

On Fri, Jul 31, 2015 at 4:58 PM, Mike Hearn <[email-masked]> wrote:
>> How more users or more nodes can bring more miners, or more importantly,
>> improve mining decentralization?
>
>
> Because the bigger the ecosystem is the more interest there is in taking
> part?

As explained by Venzen, this is a non-sequitur.

> I mean, I guess I don't know how to answer your question.

I don't know the answer either, that's fine. It's the opposite
question that I've been insistently repeating and you've been
(consciously or not) consistently evading.
But that's also fine because I believe you finally answer it a few lines below.

> When Bitcoin was
> new it had almost no users and almost no miners. Now there are millions of
> users and factories producing ASICs just for Bitcoin.

The emergence of a btc price enabled the emergence of professional
miners, which in turn enabled the emergence of sha256d-specialized
hardware production companies.
Nothing surprising there.
By no means it consitutes an example of how a bigger consensus sizes
can cause less mining centralization.

> Surely the correlation is obvious?

Correlation does not imply causation. I will better leave it at that...

>> I'm sorry, but until there's a simulation that I can run with different
>> sizes' testchains (for example using #6382) to somehow compare them, I will
>> consider any value arbitrary.
>
>
> Gavin did run simulations. 20mb isn't arbitrary, the process behind it was
> well documented here:
>
> http://gavinandresen.ninja/does-more-transactions-necessarily-mean-more-centralized
>
> I chose 20MB as a reasonable block size to target because 170 gigabytes per
> month comfortably fits into the typical 250-300 gigabytes per month data
> cap– so you can run a full node from home on a “pretty good” broadband plan.
>
> Did you think 20mb was picked randomly?

No, I think 20 MB was chosen very optimistically, considering 3rd
party services rates (not the same service as self-hosting) in the
so-called "first world". And then 20 MB goes to 20 GB, again with
optimistic and by no means scientific expectations.

But where the number comes from it's not really what I'm demaning,
what I want is some criterion that can tell you that a given size
would be "too centralized" but another one isn't.
I haven't read any analysis on why 8GB is a better option than 7GB and
9GB for a given criterion (nor one declaring 20 GB a winner over 19 GB
or 21 GB).
A simulation test passing 20 GB but not 21 GB would make it far less arbitrary.

>> Agreed on the first sentence, I'm just saying that the influence of
>> the blocksize in that function is monotonic: with bigger sizes, equal
>> or worse mining centralization.
>
>
> I have a hard time agreeing with this because I've seen Bitcoin go from
> blocks that were often empty to blocks that are often full, and in this time
> the number of miners and hash power on the network has gone up a huge amount
> too.

I'm of course talking about consensus maximum blocksize, not about
actual blocksize.
Yes, again, when mining becomes profitable, economic actors tend to
appear and get those profits.
But don't confuse total hashrate improvements with an "increase in the
number of miners" or with mining decentralization.

> You can argue that a miner doesn't count if they pool mine. But if a miner
> mines on a pool that uses exactly the same software and settings as the
> miner would have done anyway, then it makes no difference. Miners can switch
> between pools to find one that works the way they like, so whilst less
> pooling or more decentralised pools would be nice (e.g. getblocktemplate),
> and I've written about how to push it forward before, I still say there are
> many more miners than in the past.
>
> If I had to pick between two changes to improve mining decentralisation:
>
> 1) Lower block size

Finally, I think you finally answered my repetitive question here.
If I say "Mike Hearn understands that the consensus block size maximum
rule is a tool for limitting mining centralization" I'm not putting
words in your mouth, right?
I think many users advocating for an increase in the consensus limit
don't understand this, which is extremely unfortunate for the debate.

> 2) Finishing, documenting, and making the UX really slick for a
> getblocktemplate based decentralised mining pool
>
> then I'd pick (2) in a heartbeat. I think it'd be a lot more effective.

Great! Maybe after 2 mining centralization improves so much that we're
confortable not only not lowering it but rather increasing it.

>> you should be consequently advocating for full removal of the limit rather
>> than changes towards bigger arbitrary values.
>
>
> I did toy with that idea a while ago. Of course there can not really be no
> limit at all because the code assumes blocks fit into RAM/swap, and nodes
> would just end up ignoring blocks they couldn't download in time anyway.
> There is obviously a physical limit somewhere.

Did the fact that you "understand that the consensus block size
maximum rule is a tool for limitting mining centralization" influenced
your rejection of that idea at all?

> But it is easier to find common ground with others by compromising. Is 8mb
> better than no limit? I don't know and I don't care much:  I think Bitcoin
> adoption is a slow, hard process and we'll be lucky to increase average
> usage 8x over the next couple of years. So if 8mb+ is better for others,
> that's OK by me.

The only way that "not caring much whther we have a consensus limit or
not" and "understand that the consensus block size maximum rule is a
tool for limitting mining centralization" at the same time is by not
caring about mining centralization at all.
Is that your position?

If you don't care about having a limit but you don't want to limit
transaction volume, then ++current_size will ALWAYs be your
"compromise position" and no blocksize increase will ever be enough
until the limit is completely removed.
Is that your position?

> Re: exchange profit. You can pick some other useful service provider if you
> like. Payment processors or cold storage providers or the TREZOR
> manufacturers or whoever.

Yes, and I believe the same points stand.

> My point is you can't have a tiny high-value-transactions only currency AND
> all the useful infrastructure that the Bitcoin community is making. It's a
> contradiction. And without the infrastructure bitcoin ceases to be
> interesting even to people who are willing to pay huge sums to use it.

You keep talking about "high-value-transactions-only" like if
non-urgent transaction fees rising from zero to, say, 1 satoshi, would
automatically result in that "high-value-transactions-only" Bitcoin.
Please, stop talking as if someone was proposing a
"high-value-transactions-only" Bitcoin. That may happen but nobody
really knows. If it happens it may not be bad thing necessarily (ie
bitcoin microtransactions can still happen using trustless payment
channels and x is still cheaper than x% for any transacted value
higher than 100) but that's really not what we're talking about here
so it seems distraction that can only help further polirizing this
discussion.

What we're talking about here is that hitting the limit would
(hopefully) make miners start caring about fees. Enough that they stop
being irrational about free transactions. If both things happen,
non-urgent transaction fees will likely rise (as said, above zero).

You think that would be a catastrophe for adoption and I disagree.
But (as Pieter has repeatedly explained) for any size there will be
use cases that will be eventually priced out.
So when rising this consensus limit, not increasing centralization
should be the priority and the potential impact in market fees a much
more secondary concern.
Do you agree with this?

I'm sure there are many intermediate positions between "caring more
about mining centralization than market fees when deciding about a
consensus rule that limits mining centralization" and "not caring
about mining centralization at all".
I really don't want to put words in your mouth, but I honestly don't
know what your position is.
I don't really know how else can I ask the same question: you don't
care the consensus maximum blocksize rule being here at all or not
(you just said that).
Is it because you don't think it limits mining centralization or
because you don't care about limiting mining centralization with
consensus rules at all?