Proposal to increase maximum possible block size, starting at 8MB in January 2016 and increasing on-pace with technological growth to 8,192MB in twenty years.
BIP 101 : maximum block size increase #163
pull gavinandresen wants to merge 2 commits into bitcoin:master from gavinandresen:blocksize changing 2 files +132 −0-
gavinandresen commented at 5:38 PM on June 24, 2015: contributor
- gavinandresen cross-referenced this on Jun 26, 2015 from issue Implementation of BIP 101 : maximum block size increase by gavinandresen
-
flix1 commented at 12:40 PM on June 26, 2015: none
If Bitcoin goes viral in 2017 8 MB blocks will still not be enough. We need a permanent solution.
This is what Vitalik Buterin has proposed: "Initialize at 1 MB, target 2x exponential moving average of the last 1000 blocks."
I would very much like to know Gavin's opinion on dynamic block-size limits. The mechanism for adjusting network difficulty seems to work well despite being something that impacts miner incentives very directly and there is a strong temptation to attempt to game it.
-
in bip-0101.mediawiki:None in cecb576f5c outdated
82 | + 83 | +The limits proposed by this BIP are designed so that running a fully validating node has very modest costs, which, if current trends in the cost of technology continue, will become even less expensive over time. 84 | + 85 | +===Centralization of mining: big-block attacks=== 86 | + 87 | +[https://www.mail-archive.com/bitcoin-development@lists.sourceforge.net/msg08399 Simulations show] that with the current peer-to-peer protocol, miners behind high-latency or low-bandwidth links are at a disadvantage compared to miners connected to a majority of hashpower via low-latency, high-bandwidth links. Larger blocks increase the advantage of mines with high-bandwidth connections, although that advantage can be minimized with changes to the way new blocks are announced (e.g. http://bitcoinrelaynetwork.org/).
C-Otto commented at 9:25 PM on June 26, 2015:mines -> miners
in bip-0101.mediawiki:None in cecb576f5c outdated
120 | + 121 | +Simplified Payment Verification software is not affected, unless it makes assumptions about the maximum depth of a transaction's merkle branch based on the minimum size of a transaction and the maximum block size. 122 | + 123 | +==Implementation== 124 | + 125 | +https://github.com/gavinandresen/bitcoinxt/tree/blocksize_fork
C-Otto commented at 9:34 PM on June 26, 2015:Reference your PR bitcoin/bitcoin#6341 instead?
dabura667 commented at 3:07 AM on June 27, 2015: noneACK
Looks good to me. Can't wait.
fd99a8ce04Increase maximum block size
Proposal to increase maximum possible block size, starting at 8MB in January 2016 and increasing on-pace with technological growth to 8,192MB in twenty years.
gavinandresen commented at 1:18 PM on June 30, 2015: contributorFixed typos / broken links found by @C-Otto (thanks!).
Changed version number to 0x20000007 for more compatibility with existing version 1/2/3 blocks 3248c9f67bgavinandresen commented at 3:30 PM on July 15, 2015: contributor@flix1 : dynamic limits are harder to implement-- I volunteered to help @jgarzik implement BIP100, and when diving into actually coding it up, the combination of headers-first and out-of-order block fetching makes any dynamic limit based on previous block sizes or votes in coinbase transactions non-trivial because the max block size may not be known when the block data is received.
That's not a show-stopper problem: a 'maximum feasible block size' could be used for initial denial-of-service checks on 'block' message size based on the block height, with a tighter check on size done when all previous blocks have been downloaded and validated and the block is added to the chain.
But it is much simpler if the max size is a pure function based on data in the block header.
sipa commented at 4:02 PM on July 15, 2015: memberOn Wed, Jul 15, 2015 at 11:30 AM, Gavin Andresen notifications@github.com wrote:
@flix1 https://github.com/flix1 : dynamic limits are harder to implement-- I volunteered to help @jgarzik https://github.com/jgarzik implement BIP100, and when diving into actually coding it up, the combination of headers-first and out-of-order block fetching makes any dynamic limit based on previous block sizes or votes in coinbase transactions non-trivial because the max block size may not be known when the block data is received.
That's surprising to me. In headers-first we never receive/process full block data before all headers leading up to it are known, so you can just check the block size in AcceptBlock, before it is stored on disk.
If you're talking about doing an early check while receiving the block data... I'm not sure why that matters. If an attack exists for receiving large blocks, an attacker can just wait until you've caught up and are willing to receive them. So I think the "early check" should just tolerate whatever the limit is the software can deal with, independent of time. The accurate consensus check can be in AcceptBlock.
flix1 commented at 4:12 PM on July 15, 2015: none@gavinandresen Actually over the past weeks I've given this a lot of thought and I've come around to see your solution as the best. A purely mathematical rule keeps it simple. Targeting Moore's law is reasonable.
It will also be easier to reach a very broad consensus for something straightforward.
sipa commented at 4:17 PM on July 15, 2015: memberOn Wed, Jul 15, 2015 at 12:12 PM, flix1 notifications@github.com wrote:
@gavinandresen https://github.com/gavinandresen Actually over the past weeks I've given this a lot of thought and I've come around to see your solution as the best. A purely mathematical rule keeps it simple. Targeting Moore's law is reasonable.
Moore's law only talks about number of components on integrated circuits. If you want to target the lowest common denominator of all technologies involved, it would not be more than 17% per year, according to this: http://rusty.ozlabs.org/?p=493.
laanwj referenced this in commit a409100854 on Jul 30, 2015laanwj merged this on Jul 30, 2015laanwj closed this on Jul 30, 2015
This is a metadata mirror of the GitHub repository bitcoin/bips. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-04-14 18:10 UTC
More mirrored repositories can be found on mirror.b10c.me