Block size limit controversy: Difference between revisions
→Entities positions: Remove altcoin promotion |
|||
(10 intermediate revisions by 7 users not shown) | |||
Line 1: | Line 1: | ||
{{see also|Scalability FAQ}} | |||
[[ | Originally, Bitcoin's block size was limited by the number of database locks required to process it (at most 10000). | ||
This limit was effectively around 500-750k in serialized bytes, and was forgotten until 2013 March. | |||
In 2010, an explicit block size limit of 1 MB was introduced into Bitcoin by [[Satoshi Nakamoto]]. He added it hidden in two commits<ref>https://www.reddit.com/r/Bitcoin/comments/63859l/github_commit_where_satoshi_added_the_block_size/</ref><ref>[https://github.com/bitcoin/bitcoin/commit/a30b56eb "fix openssl linkage problems"], Sneaky soft-forking UASF commit for MAX_BLOCK_SIZE No. 1.</ref><ref>[https://github.com/bitcoin/bitcoin/commit/a790fa46f40 "don't count or spend payments until they have 1 confirmation"], Sneaky soft-forking UASF commit for MAX_BLOCK_SIZE No. 2.</ref> in secret. This limit was effectively a no-op due to the aforementioned forgotten limit. | |||
In 2013 March, the original lock limit was discovered by accident (Bitcoin Core v0.8.0 failed to enforce it, leading to upgraded nodes splitting off the network). | |||
After resolving the crisis, it was determined that since nobody knew of the limit, it was safe to assume there was consensus to remove it, and a [[hardfork]] removing the limit was scheduled and cleanly activated in 2013 May. From this point forward, the 1 MB limit became the effective limiting factor of the block size for the first time. | |||
The limit was not changed again before 2017 and was believed to require a very invasive hard fork to change. As transaction volume increased with widespread Bitcoin adoption, increasing the limit became subject to heavy debate in 2015. To prevent Bitcoin from temporarily or permanently splitting into separate payment networks ("altcoins"), hard forks require adoption by nearly all [[Full node#Economic_strength|economically active]] full nodes. | |||
== Arguments in favor of increasing the blocksize == | == Arguments in favor of increasing the blocksize == | ||
Line 38: | Line 45: | ||
* Less individuals who control hash-power will run full nodes if running one becomes more expensive<ref>https://www.weusecoins.com/why-blocksize-limit-keeps-bitcoin-free-decentralized/</ref>. | * Less individuals who control hash-power will run full nodes if running one becomes more expensive<ref>https://www.weusecoins.com/why-blocksize-limit-keeps-bitcoin-free-decentralized/</ref>. | ||
== | ==History== | ||
On October 3, 2010, [[Jeff Garzik]] published a patch that immediately increases the block size to 7MB.<ref>{{cite btct|id=1347|title=(PATCH) increase block size limit|date=2010-10-03}}</ref> The patch had no users, but it was the earliest attempt at increasing the block size through a hardfork. Satoshi and theymos immediately said not to implement it, as it would make the user's node incompatible with the network.<ref name="dontuse">[https://bitcointalk.org/index.php?topic=1347.msg15139#msg15139 "+1 theymos. Don't use this patch"] Satoshi explains here that ''if'' a change is necessary, a hard fork ''could'' be implemented with a countdown.</ref> This is the oft-cited post which many people claim proves Satoshi intended for the blocksize to increase. English, however, does not work that way. Satoshi spoke conditionally, not intentionally.<ref name="dontuse" /> | |||
===BIP 100=== | ===BIP 100=== | ||
Change block size limit based on miner votes, but don't leave the range (1MB, 32MB) without a softfork or hardfork respectively. | Change block size limit based on miner votes, but don't leave the range (1MB, 32MB) without a softfork or hardfork respectively. | ||
=== | ===Bitcoin XT=== | ||
{{ | [[File:xt.png|thumb|128px|Bitcoin XT logo]]{{main|Bitcoin XT}} | ||
Bitcoin XT was an alternative client that became notorious when it adopted BIP 101, which would direct an increase to 8 MB after both January 11, 2016 has passed and 75% of miners are in support, followed by doubling of the limit every two years with the size increasing linearly within those two year intervals. | |||
XT failed to gain enough support to activate the hardfork, leading to Mike Hearn's resignation. | |||
===BIP 102=== | ===BIP 102=== | ||
Increase to 2 MB on November 11, 2015. | Increase to 2 MB on November 11, 2015. | ||
Line 49: | Line 59: | ||
Increase by 17.7% annually until 2063. | Increase by 17.7% annually until 2063. | ||
===Bitcoin Classic=== | ===Bitcoin Classic=== | ||
{{ | {{main|Bitcoin Classic}} | ||
Adopt BIP 109 and hardfork to 2 MB in 2016. Dynamic max_block_size in 2017. | |||
===Segregated Witness=== | |||
[[File:segwit.png|thumb|128px|SegWit logo]]{{main|Segregated Witness}} | |||
The final solution deployed was Segwit, increasing the block size limit to 2-4 MB without a hardfork. | |||
== Entities positions == | == Entities positions == | ||
Line 82: | Line 95: | ||
| {{No|No: "<nowiki>[allow]</nowiki> a sane transaction fee market to emerge, by letting the blocks actually fill-up."}} - CTO David Francois<ref>http://fr.anco.is/2015/gavineries/</ref> | | {{No|No: "<nowiki>[allow]</nowiki> a sane transaction fee market to emerge, by letting the blocks actually fill-up."}} - CTO David Francois<ref>http://fr.anco.is/2015/gavineries/</ref> | ||
| | | | ||
|- | |- | ||
| [[F2Pool]] | | [[F2Pool]] |
Latest revision as of 00:44, 24 April 2019
See also: Scalability FAQ
Originally, Bitcoin's block size was limited by the number of database locks required to process it (at most 10000). This limit was effectively around 500-750k in serialized bytes, and was forgotten until 2013 March. In 2010, an explicit block size limit of 1 MB was introduced into Bitcoin by Satoshi Nakamoto. He added it hidden in two commits[1][2][3] in secret. This limit was effectively a no-op due to the aforementioned forgotten limit.
In 2013 March, the original lock limit was discovered by accident (Bitcoin Core v0.8.0 failed to enforce it, leading to upgraded nodes splitting off the network). After resolving the crisis, it was determined that since nobody knew of the limit, it was safe to assume there was consensus to remove it, and a hardfork removing the limit was scheduled and cleanly activated in 2013 May. From this point forward, the 1 MB limit became the effective limiting factor of the block size for the first time.
The limit was not changed again before 2017 and was believed to require a very invasive hard fork to change. As transaction volume increased with widespread Bitcoin adoption, increasing the limit became subject to heavy debate in 2015. To prevent Bitcoin from temporarily or permanently splitting into separate payment networks ("altcoins"), hard forks require adoption by nearly all economically active full nodes.
Arguments in favor of increasing the blocksize
- More transactions per second
- Off-chain solutions are not yet ready to take off the load from the main blockchain.
Contentions
- Increased blocksize will leave space for extensions like Mastercoin, Counterparty, etc.
- Neutral: Bitcoin competitors will have lower fees
- Negative: Bitcoin full nodes are forced to use more resources that don't support Bitcoin
- Small blocks eventually will require higher fees for fast confirmations.
- Positive: It will no longer be cheap to spam transactions such as Satoshi Dice bets
- Positive: Fees will not be zero. This is eventually a necessity in order to incentivize miners and secure the mining ecosystem
- Negative: Bitcoin may look unattractive to new users with high fees
- Negative: High fees may stop or reverse global adoption, investment, development, support and centralization[clarification needed]
- Negative: Bitcoin users pay higher fees
- A low blocksize limit encourages higher transactions fees to incentivize miners ("let a fee market develop").
- A fee market naturally develops due to miner latency regardless[4]
- The relay network can be optimized so that miners don't have a stale rate increasing with latency. This should cause the fee market to once again require a block size limit to exist.
- A fee market naturally develops due to miner latency regardless[4]
Arguments in opposition to increasing the blocksize
- A hard fork requires waiting for sufficient consensus.
- Risk of catastrophic consensus failure[5][clarification needed]
- An emergency hard fork that can achieve consensus can be deployed on a short time period if needed.[6]
- Orphan rate amplification, more reorgs and double-spends due to slower propagation speeds.
- European/American pools at more of a disadvantage compared to the Chinese pools[why?]
- "Congestion" concerns can be solved with mempool improvements including transaction eviction.
- No amount of max block size would support all the world's future transactions on the main blockchain (various types of off-chain transactions are the only long-term solution)
- Fast block propagation is either not clearly viable, or (eg, IBLT) creates centralised controls.
Damage to decentralization
- Larger blocks make full nodes more expensive to operate.
- Therefore, larger blocks lead to less hashers running full nodes, which leads to centralized entities having more power, which makes Bitcoin require more trust, which weakens Bitcoins value proposition.
- Bitcoin is only useful if it is decentralized because centralization requires trust. Bitcoins value proposition is trustlessness.
- The larger the hash-rate a single miner controls, the more centralized Bitcoin becomes and the more trust using Bitcoin requires.
- Running your own full node while mining rather than giving another entity the right to your hash-power decreases the hash-rate of large miners. Those who have hash-power are able to control their own hash power if and only if they run a full node.
- Less individuals who control hash-power will run full nodes if running one becomes more expensive[7].
History
On October 3, 2010, Jeff Garzik published a patch that immediately increases the block size to 7MB.[8] The patch had no users, but it was the earliest attempt at increasing the block size through a hardfork. Satoshi and theymos immediately said not to implement it, as it would make the user's node incompatible with the network.[9] This is the oft-cited post which many people claim proves Satoshi intended for the blocksize to increase. English, however, does not work that way. Satoshi spoke conditionally, not intentionally.[9]
BIP 100
Change block size limit based on miner votes, but don't leave the range (1MB, 32MB) without a softfork or hardfork respectively.
Bitcoin XT
- Main article: Bitcoin XT
Bitcoin XT was an alternative client that became notorious when it adopted BIP 101, which would direct an increase to 8 MB after both January 11, 2016 has passed and 75% of miners are in support, followed by doubling of the limit every two years with the size increasing linearly within those two year intervals.
XT failed to gain enough support to activate the hardfork, leading to Mike Hearn's resignation.
BIP 102
Increase to 2 MB on November 11, 2015.
BIP 103
Increase by 17.7% annually until 2063.
Bitcoin Classic
- Main article: Bitcoin Classic
Adopt BIP 109 and hardfork to 2 MB in 2016. Dynamic max_block_size in 2017.
Segregated Witness
- Main article: Segregated Witness
The final solution deployed was Segwit, increasing the block size limit to 2-4 MB without a hardfork.
Entities positions
Positions below are based on a suggested fixed block size increase to 20MiB. Positions against these larger blocks do not necessarily imply that they are against an increase in general, and may instead support a smaller and/or gradual increase.
Entity | Supports Larger Blocks | Supports Hard Fork | |
---|---|---|---|
Magnr | Yes: "We believe an immediate 2mb blocksize increase is important and urgently required to enable Bitcoin to flourish and deliver more utilitarian use to more people all across the world."[10] | Yes: "We support the Bitcoin Classic proposal[11]." - Magnr[12] | |
Bitcoinpaygate | No: "We do NOT support the blocksize increase"[13] | ||
Bitrated | No "At this time, I oppose increasing the block size limit as per Gavin's proposal" - Nadav Ivgi (founder)[14] |
||
GreenAddress | No: "In our mind increasing the block size like this is just pushing the problem a little further at potentially unfixable costs."[15] | ||
MPEx | No[16] | ||
Paymium | No: "[allow] a sane transaction fee market to emerge, by letting the blocks actually fill-up." - CTO David Francois[17] | ||
F2Pool | Neutral: "We do support bigger blocks and sooner rather than later. But we cannot handle 20 MB blocks right now. ... I think we can accept 5MB block at most."[18] | ||
Armory | Yes "This *is* urgent and needs to be handled right now, and I believe Gavin has the best approach to this." - CEO Alan Reiner[19] |
||
BitcoinReminder | Yes: "BitcoinReminder.com also supports 20MB blocks (or even more?"[20] | ||
BitHours | Yes: "We support @gavinandresen and his proposal for 20mb blocks"[21] | ||
BitPay | Yes "Agreed (but optimistic this will be the last and only time block size needs to increase)" - CEO Stephen Pair[22] |
Yes: "In summary, we believe BIP 101 will safeguard Bitcoin’s decentralized nature while providing a reliable, immediate path toward greater network throughput, and we would like to express our support for merging BIP 101 into Bitcoin Core." - Stephen Pair[23] | |
Bittiraha.fi | Yes: "We are supporting increasing #Bitcoin max block size to 20MB."[24] "I'm strongly in favor of the block size cap increase to 20MB." - CEO Henry Brade[25] |
Yes "And I'm in favor of releasing a version with this change even with opposition." - CEO Henry Brade[26] | |
Blockchain.info | Yes "It is time to increase the block size. Agree with @gavinandresen" - CEO Peter Smith[27] "Scaling #bitcoin is a big deal. Increase the block size." - Nic Cary[28] |
||
Blocktrail | Yes "We'd love to see BIP101 with 4mb start, alternatively BIP100 with something to deal with the 21% attack could be good too."[29] |
||
Breadwallet | Yes "[...] in support of the Gavin's 20Mb block proposal." - CEO Aaron Voisine[30] |
||
BTC Guild | Yes "Needs to happen, but needs future expansion built in at a reasonable rate." - Eleuthria[31] |
||
BX.in.th | Yes: "http://BX.in.th will support the 20MB block size"[32] | ||
CoinBase | Yes: "Coinbase supports increasing the maximum block size"[33] "Why we should increase the block size" - CEO Brian Armstrong[34] |
Yes: "5/ hard forks probably shouldn't happen frequently, but periodically they are an elegant solution that helps bitcoin keep growing" - CEO Brian Armstrong[35] | |
Coinify | Yes "We see Bitcoin XT as the best solution for ensuring the future scalability of the Bitcoin network." - CTO Hamed Sattari[36] |
||
Adam Back | Yes: "For the record I am not aware of a single person who has said they do not agree with scaling Bitcoin. Changing a constant is not the hard-part. The hard part is validating a plan and the other factors that go into it. It's not a free choice it is a security/scalability tradeoff. No one will thank us if we "scale" bitcoin but break it in hard to recover ways at the same time." [37] | No "I strongly urge that we return to the existing collaborative constructive review process that has been used for the last 4 years which is a consensus by design to prevent one rogue person from inserting a backdoor, or lobbying for a favoured change on behalf of a special interest group, or working for bad actor" - Dr. Adam Back[38] |
|
Kryptoradio | Yes "#Kryptoradio dev @zouppen supports 20MB block size in #bitcoin." - Joel Lehtonen[39] |
||
OKCoin | Yes: "OKCoin's tech team believes it's the right decision"[40] | ||
Third Key Solutions | Yes "Gavin is right. The time to increase the block size limit is before transaction processing shows congestion problems." - CTO Andreas Antonopoulos[41] |
||
Xapo | Yes: "One meg is not enough: Xapo supports increasing the maximum block size" - CEO Wences Casares[42] |
References
- ↑ https://www.reddit.com/r/Bitcoin/comments/63859l/github_commit_where_satoshi_added_the_block_size/
- ↑ "fix openssl linkage problems", Sneaky soft-forking UASF commit for MAX_BLOCK_SIZE No. 1.
- ↑ "don't count or spend payments until they have 1 confirmation", Sneaky soft-forking UASF commit for MAX_BLOCK_SIZE No. 2.
- ↑ https://dl.dropboxusercontent.com/u/43331625/feemarket.pdf A Transaction Fee Market Exists Without a Block Size Limit
- ↑ https://www.mail-archive.com/bitcoin-development@lists.sourceforge.net/msg08276.html
- ↑ How to raise block size in a short time, Peter Todd, Reddit /r/Bitcoin, 9 June 2015
- ↑ https://www.weusecoins.com/why-blocksize-limit-keeps-bitcoin-free-decentralized/
- ↑ BitcoinTalk thread 1347. (PATCH) increase block size limit 2010-10-03.
- ↑ 9.0 9.1 "+1 theymos. Don't use this patch" Satoshi explains here that if a change is necessary, a hard fork could be implemented with a countdown.
- ↑ https://github.com/bitcoinclassic/website/issues/3#issuecomment-172678154
- ↑ https://bitcoinclassic.com
- ↑ https://twitter.com/magnr/status/689227046120222721
- ↑ http://www.reddit.com/r/Bitcoin/comments/37y8wm/list_of_bitcoin_services_that_supportoppose/crqsnqp
- ↑ https://twitter.com/shesek/status/605005384026177537
- ↑ http://www.reddit.com/r/Bitcoin/comments/35anax/list_of_bitcoin_services_that_support_increasing/cr2mq84
- ↑ http://log.bitcoin-assets.com//?date=07-01-2015#967332
- ↑ http://fr.anco.is/2015/gavineries/
- ↑ http://sourceforge.net/p/bitcoin/mailman/message/34157036/],[http://sourceforge.net/p/bitcoin/mailman/message/34158911/
- ↑ http://sourceforge.net/p/bitcoin/mailman/message/34093337/
- ↑ http://www.reddit.com/r/Bitcoin/comments/37y8wm/list_of_bitcoin_services_that_supportoppose/crs9ytd
- ↑ https://twitter.com/bithours/status/605131647747358721
- ↑ https://twitter.com/spair/status/595341090317799424
- ↑ https://medium.com/@spair/increasing-the-block-size-limit-85ff236fc516
- ↑ https://twitter.com/Bittirahafi/status/596682373028311040
- ↑ https://twitter.com/Technom4ge/status/596334370803326978
- ↑ https://twitter.com/Technom4ge/status/596334370803326978
- ↑ https://twitter.com/OneMorePeter/status/595676380320407553
- ↑ https://twitter.com/niccary/status/595707211994763264
- ↑ https://blog.blocktrail.com/2015/08/miners-block-size-vote-explained/
- ↑ http://sourceforge.net/p/bitcoin/mailman/message/34096857/
- ↑ https://www.reddit.com/r/Bitcoin/comments/370rko/21_inc_engineer_everyone_assumes_humans_will_be/crjfnpg?context=3
- ↑ https://twitter.com/BitcoinThai/status/605022509101023232
- ↑ https://twitter.com/coinbase/status/595741967759335426
- ↑ https://twitter.com/brian_armstrong/status/595453245884997634
- ↑ https://twitter.com/brian_armstrong/status/633309671994998784
- ↑ https://news.coinify.com/coinify-supports-bitcoin-xt-scalability-bitcoin-payments/
- ↑ https://www.mail-archive.com/bitcoin-development@lists.sourceforge.net/msg08276.html
- ↑ https://www.mail-archive.com/bitcoin-development@lists.sourceforge.net/msg08276.html
- ↑ https://twitter.com/koodilehto/status/596675967667568641
- ↑ https://twitter.com/okcoinbtc/status/598412795240009728
- ↑ https://twitter.com/aantonop/status/595601619581964289
- ↑ https://twitter.com/wences/status/595768917907402752