public inbox for bitcoindev@googlegroups.com
 help / color / mirror / Atom feed
From: Pieter Wuille <pieter.wuille@gmail•com>
To: Matt Corallo <bitcoin-list@bluematt•me>
Cc: Bitcoin Dev <bitcoin-development@lists•sourceforge.net>
Subject: Re: [Bitcoin-development] Block Size Increase
Date: Thu, 7 May 2015 05:47:16 +0200	[thread overview]
Message-ID: <CAPg+sBgKqsb7NRj4kxbqkbhJac12GeOMY-oJbZyS1zZMuDhA4g@mail.gmail.com> (raw)
In-Reply-To: <554A91BE.6060105@bluematt.me>

[-- Attachment #1: Type: text/plain, Size: 6231 bytes --]

On Thu, May 7, 2015 at 12:12 AM, Matt Corallo <bitcoin-list@bluematt•me>
wrote:

> Recently there has been a flurry of posts by Gavin at
> http://gavinandresen.svbtle.com/ which advocate strongly for increasing
> the maximum block size. However, there hasnt been any discussion on this
> mailing list in several years as far as I can tell.
>

Thanks for bringing this up. I'll try to keep my arguments brief, to avoid
a long wall of text. I may be re-iterating some things that have been said
before, though.

I am - in general - in favor of increasing the size blocks: as technology
grows, there is no reason why the systems built on them can't scale
proportionally. I have so far not commented much about this, in a hope to
avoid getting into a public debate, but the way seems to be going now,
worries me greatly.

* Controversial hard forks. I hope the mailing list here today already
proves it is a controversial issue. Independent of personal opinions pro or
against, I don't think we can do a hard fork that is controversial in
nature. Either the result is effectively a fork, and pre-existing coins can
be spent once on both sides (effectively failing Bitcoin's primary
purpose), or the result is one side forced to upgrade to something they
dislike - effectively giving a power to developers they should never have.
Quoting someone: "I did not sign up to be part of a central banker's
committee".

* The reason for increasing is "need". If "we need more space in blocks" is
the reason to do an upgrade, it won't stop after 20 MB. There is nothing
fundamental possible with 20 MB blocks that isn't with 1 MB blocks.
Changetip does not put their microtransactions on the chain, not with 1 MB,
and I doubt they would with 20 MB blocks. The reason for increase should be
"because we choose to accept the trade-offs".

* Misrepresentation of the trade-offs. You can argue all you want that none
of the effects of larger blocks are particularly damaging, so everything is
fine. They will damage something (see below for details), and we should
analyze these effects, and be honest about them, and present them as a
trade-off made we choose to make to scale the system better. If you just
ask people if they want more transactions, of course you'll hear yes. If
you ask people if they want to pay less taxes, I'm sure the vast majority
will agree as well.

* Miner centralization. There is currently, as far as I know, no technology
that can relay and validate 20 MB blocks across the planet, in a manner
fast enough to avoid very significant costs to mining. There is work in
progress on this (including Gavin's IBLT-based relay, or Greg's block
network coding), but I don't think we should be basing the future of the
economics of the system on undemonstrated ideas. Without those (or even
with), the result may be that miners self-limit the size of their blocks to
propagate faster, but if this happens, larger, better-connected, and more
centrally-located groups of miners gain a competitive advantage by being
able to produce larger blocks. I would like to point out that there is
nothing evil about this - a simple feedback to determine an optimal block
size for an individual miner will result in larger blocks for better
connected hash power. If we do not want miners to have this ability, "we"
(as in: those using full nodes) should demand limitations that prevent it.
One such limitation is a block size limit (whatever it is).

* Ability to use a full node. I very much dislike the trend of people
saying "we need to encourage people to run full nodes, in order to make the
network more decentralized". Running 1000 nodes which are otherwise unused
only gives some better ability for full nodes to download the block chain,
or for SPV nodes to learn about transactions (or be Sybil-attacked...).
However, *using* a full node for validating your business (or personal!)
transactions empowers you to using a financial system that requires less
trust in *anyone* (not even in a decentralized group of peers) than
anything else. Moreover, using a full node is what given you power of the
systems' rules, as anyone who wants to change it now needs to convince you
to upgrade. And yes, 20 MB blocks will change people's ability to use full
nodes, even if the costs are small.

* Skewed incentives for improvements. I think I can personally say that I'm
responsible for most of the past years' performance improvements in Bitcoin
Core. And there is a lot of room for improvement left there - things like
silly waiting loops, single-threaded network processing, huge memory sinks,
lock contention, ... which in my opinion don't nearly get the attention
they deserve. This is in addition to more pervasive changes like optimizing
the block transfer protocol, support for orthogonal systems with a
different security/scalability trade-off like Lightning, making full
validation optional, ... Call me cynical, but without actual pressure to
work on these, I doubt much will change. Increasing the size of blocks now
will simply make it cheap enough to continue business as usual for a while
- while forcing a massive cost increase (and not just a monetary one) on
the entire ecosystem.

* Fees and long-term incentives. I put this last, not because I don't think
it is not serious, but because I don't understand nearly enough about it.
I'll let others comment.

I don't think 1 MB is optimal. Block size is a compromise between
scalability of transactions and verifiability of the system. A system with
10 transactions per day that is verifiable by a pocket calculator is not
useful, as it would only serve a few large bank's settlements. A system
which can deal with every coffee bought on the planet, but requires a
Google-scale data center to verify is also not useful, as it would be
trivially out-competed by a VISA-like design. The usefulness needs in a
balance, and there is no optimal choice for everyone. We can choose where
that balance lies, but we must accept that this is done as a trade-off, and
that that trade-off will have costs such as hardware costs, decreasing
anonymity, less independence, smaller target audience for people able to
fully validate, ...

Choose wisely.

Thanks for reading this,

-- 
Pieter

[-- Attachment #2: Type: text/html, Size: 7013 bytes --]

  parent reply	other threads:[~2015-05-07  3:47 UTC|newest]

Thread overview: 116+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-06 22:12 Matt Corallo
2015-05-06 22:30 ` slush
2015-05-06 23:06   ` Eric Lombrozo
2015-05-06 22:44 ` Tier Nolan
2015-05-06 23:12   ` Matt Corallo
2015-05-06 23:33     ` Tier Nolan
2015-05-06 23:41       ` Matt Corallo
2015-05-07  2:16         ` Peter Todd
2015-05-06 23:11 ` Matt Whitlock
2015-05-06 23:13   ` Matt Corallo
2015-05-07  0:00 ` Tom Harding
2015-05-07  0:07 ` Bryan Bishop
2015-05-07  0:37 ` Gregory Maxwell
2015-05-07  1:49 ` Peter Todd
2015-05-07  3:03   ` Justus Ranvier
2015-05-08 11:02   ` Thomas Zander
2015-05-08 20:17     ` Aaron Voisine
2015-05-07  3:47 ` Pieter Wuille [this message]
2015-05-07  9:25 ` Mike Hearn
2015-05-07 10:12   ` Peter Todd
2015-05-07 10:42   ` Btc Drak
2015-05-07 10:52   ` Jorge Timón
2015-05-07 11:15     ` Andrew
2015-05-07 11:29     ` Mike Hearn
2015-05-07 12:26       ` Jorge Timón
2015-05-07 14:05         ` Mike Hearn
2015-05-07 14:18           ` Bryan Bishop
2015-05-07 14:22           ` Peter Todd
2015-05-07 14:40           ` Peter Todd
2015-05-07 14:52           ` Gavin Andresen
2015-05-07 14:56             ` Peter Todd
2015-05-07 15:04             ` Alex Morcos
2015-05-07 15:09               ` Jeff Garzik
2015-05-07 15:12               ` Mike Hearn
2015-05-07 15:17                 ` Jeff Garzik
2015-05-07 15:29                   ` Mike Hearn
2015-05-07 15:35                     ` Jeff Garzik
2015-05-07 16:18                       ` Justus Ranvier
2015-05-07 16:21                     ` Jorge Timón
2015-05-07 17:29                       ` Peter Todd
2015-05-07 19:37                       ` Mike Hearn
2015-05-07 19:44                         ` Jérémie Dubois-Lacoste
2015-05-07 20:20                         ` Jérémie Dubois-Lacoste
2015-05-07 15:58             ` Matthew Mitchell
2015-05-07 16:47               ` Matthew Mitchell
2015-05-07 17:26             ` Matt Corallo
     [not found]               ` <CABsx9T2vAQyZODRE9apu0R1n=LybssQcuTYD7P3mAQH_Fv6QCQ@mail.gmail.com>
2015-05-07 17:40                 ` [Bitcoin-development] Fwd: " Gavin Andresen
2015-05-07 17:43               ` [Bitcoin-development] " Mike Hearn
2015-05-07 18:03                 ` Btc Drak
2015-05-07 18:06                   ` Mike Hearn
2015-05-07 18:21                     ` Ross Nicoll
2015-05-07 18:40                     ` Gavin Costin
2015-05-07 18:46                       ` Btc Drak
2015-05-07 19:31                         ` Bernard Rihn
2015-05-07 19:31                     ` Alan Reiner
2015-05-07 19:54                       ` Jeff Garzik
2015-05-07 19:59                         ` Justus Ranvier
2015-05-08  1:40                         ` Tom Harding
2015-05-08  2:09                           ` Jeff Garzik
2015-05-08  5:13                             ` Tom Harding
2015-05-08  9:43                               ` Mike Hearn
2015-05-08 15:23                               ` Alan Reiner
2015-05-08 14:59                         ` Alan Reiner
2015-05-08 15:49                           ` Jeff Garzik
2015-05-13 10:37                             ` Oliver Egginger
2015-05-13 11:25                               ` Angel Leon
2015-05-08 17:17                           ` Andrew
2015-05-08 17:51                             ` Alan Reiner
     [not found]                               ` <CADZB0_bK+YsK8sN-di2pynvjsq5VjSvnEu0-cCGhPqFunyVm7Q@mail.gmail.com>
2015-05-09 12:02                                 ` Andrew
2015-05-09 12:53                                   ` Justus Ranvier
2015-05-09 18:33                                     ` Andrew
2015-05-08  1:51                       ` Joel Joonatan Kaartinen
2015-05-08  3:41                       ` Peter Todd
2015-05-07 18:38                   ` Chris Wardell
2015-05-07 18:55                     ` Alex Mizrahi
2015-05-07 18:59                     ` Ross Nicoll
2015-05-07 19:03                 ` Matt Corallo
2015-05-07 19:13                   ` Jeff Garzik
2015-05-07 19:34                   ` Mike Hearn
2015-05-07 21:29                     ` Matt Corallo
2015-05-07 23:05                       ` 21E14
2015-05-07 15:33           ` Jorge Timón
2015-05-07 16:11             ` Mike Hearn
2015-05-07 16:47               ` Jorge Timón
2015-05-07 16:59                 ` Gavin Andresen
2015-05-07 17:42                   ` Peter Todd
2015-05-07 18:05                   ` Jorge Timón
2015-05-07 19:57               ` Btc Drak
2015-05-07 15:39           ` Btc Drak
2015-05-07 13:02       ` Peter Todd
2015-05-07 19:14       ` Matt Corallo
2015-05-07 11:55     ` Dave Hudson
2015-05-07 13:40       ` Jorge Timón
2015-05-08  4:46         ` Tom Harding
2015-05-07 14:04   ` Jeff Garzik
2015-05-07 14:32     ` Peter Todd
2015-05-07 14:38     ` Justus Ranvier
2015-05-07 14:49       ` Peter Todd
2015-05-07 15:13         ` Justus Ranvier
2015-05-07 15:25           ` Peter Todd
2015-05-07 15:04       ` Jeff Garzik
2015-05-07 15:16         ` Justus Ranvier
2015-05-07 15:27           ` Jeff Garzik
2015-05-07 15:33             ` Justus Ranvier
2015-05-07 15:47               ` Jeff Garzik
2015-05-07 15:50                 ` Justus Ranvier
2015-05-07 11:20 ` Wladimir J. van der Laan
2015-05-07 11:30   ` Eric Lombrozo
2015-05-07 15:56 ` Jeff Garzik
2015-05-07 16:13   ` Mike Hearn
2015-05-07 16:54 John Bodeen
2015-05-08 20:38 Raystonn .
2015-05-08 20:40 ` Mark Friedenbach
2015-05-08 20:51 Raystonn
2015-05-08 20:55 ` Mark Friedenbach
2015-05-08 21:01 Raystonn

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAPg+sBgKqsb7NRj4kxbqkbhJac12GeOMY-oJbZyS1zZMuDhA4g@mail.gmail.com \
    --to=pieter.wuille@gmail$(echo .)com \
    --cc=bitcoin-development@lists$(echo .)sourceforge.net \
    --cc=bitcoin-list@bluematt$(echo .)me \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox