# Last edited on 2015-08-30 19:22:32 by stolfilocal BIP: 99½ Title: An Optimized Procedure to Increase the Block Size Limit Author: Jorge Stolfi /u/jstolfi Status: Crufty Draft Type: Standards Track Created: 2015-08-30 Abstract This BIP proposes setting the maximum block size to 8 MB at a specified block number. **MOTIVATION** This proposal aims to postpone by a few years the imminent congestion of the Bitcoin network, which is expected to occur in 2016 if traffic continues to increase at the present rate. It also aims to reduce the risk of a crippling "spam attack", that could delay a large fraction of the legitimate traffic for hours or days at a relatively modest cost for the attacker. ***Congestion*** The current average traffic T is ~120'000 transactions issued by all clients, per day (~1.38 tx/s, ~0.45 MB/block, ~830 tx/block assuming ~530 bytes/tx). The maximum network capacity C with 1 MB blocks, revealed by the recent "stress tests", is ~200'000 tx/day (~2.32 tx/s, ~0.75 MB/block, ~1390 tx/block). Presumably, the main reason why it is less than 1 MB/block is because certain shortcuts taken by miners often force them to mine empty blocks. Note that the traffic now is 60% of the effective capacity. Since the traffic rate has weekly, daily, and random fluctuations by several tens of percent, recurrent "traffic jams" (when T is higher than C for several tens of minutes) will start to occur when the average daily traffic is still well below the capacity -- say 80% (160'000 tx/day) or even less. For transactions issued during a traffic jam, the average wait time for first confirmation, which is normally 10-15 minutes, will jump to hours or even days. Fee adjustments may change the order in which individual transactions are confirmed, but the average delay will not be reduced by a single second. Over the past 12 months, the traffic has approximately doubled, from ~60'000 tx/day. The growth seems to be linear, at the rate of 5000 tx/day per month. If the growth continues to be linear, it should reach 160'000 tx/day in ~8 months (before May 2016). If the growth is assumed to be exponential, it should reach that level in ~5 months, in February 2016. If the maximum block size is lifted to 8 MB, hopefully the effective capacity of the network, even accounting empty blocks, will rise in proportion, to ~6 MB/block (1'600'000 tx/day, 5.90 tx/s). Based on last year's growth, the 80% capacity level (1'280'000 tx/day) will be reached in ~19 years assuming linear growth, and ~3.4 years assuming exponential growth. ***Spam attacks*** An effective spam attack would have to generate enough spam transactions, with suitable fees, to reduce the effective capacity of the network to a fraction of the legitimate traffic. Then the fraction of the traffic that cannot be serviced will pile up in the queues, forming a growing backlog until the spam attack ends; and the backlog will then clear at the rate limited by the free capacity C - T. With the current capacity C (200'000 tx/day) and traffic T (120'000 tx/day) a spam attack that blocks half the legitimate traffic would require a spam rate S of at least C - T/2 = 140'000 tx/day (1.62 tx/s, 0.52 MB/block). The fee F per kB offered by those transactions would have to be larger than all but the top ~420 transactions in the queue. If that fee were to be 1 USD/tx, the attack may cost as little as 140'000 USD/day. The backlog of legitimate transactions would grow at the rate of T/2 = ~2500 tx/hour, and, when the attack stops, will be cleared at the maximum rate C - T = ~3300 tx/hour. With 8 MB block limit, assuming that the effective capacity C will be 1.6 M tx/day and traffic T at 60% of the capacity (like today; expected to be the case 3 years from now), a spam attack that blocks half the traffic would require C - T/2 = 1.12 M tx/day of spam (8 times what an attack would require today). If the required fee F were to be 1 USD/tx, the attack would cost 1.12 million USD per day (ditto). **DEPLOYMENT** The maximum block size would be programmed to be 1 MB until block number 384999, and 8 MB starting with block 385000; which, at 144 blocks/day, is expected to be mined ~88 days from now, around 2015-11-28. On the test network, the increase will start with block 380000, which expected to be mined ~54 days from now, around 2015-10-24. In the interest of a quick and uneventful passage through that block number, major miners should publicly state their approval or rejection of it as soon as possible. If and when the plan is approved by miners comprising a majority of the hashpower, all miners and clients should be alerted and urged to upgrade or modify their software so that it accepts blocks up to 8 MB after the stated block number. If and when the plan is rejected by miners comprising a majority of the hashpower, all miners and clients shoudl be alerted and warned that this BIP will not be implemented. **RATIONALE** The proposal should have a good chance to be approved and implemented, since the five largest Chinese miners (who have more than 50% of the total hash rate) have already stated in writing that they would agree to an increase of the limit to 8 MB by the end of the year, even theough they did not approve futher increases (in particular, the doublings specified by BIP101). Several major services and other miners have expressed approval for such an increase in the net. **OBJECTIONS TO THIS PROPOSAL** There have been claims that increasing the block size beyond 1 MB would have negative consequences for the health of the network. However, no serious effects were demonstrated, by argument or experimentally. There are worrisome trends in sme parameters, such as the number of full nodes and and the centralization of mining; but those trends obviously are not related to the block size *limit*, and there is no reason to expect that they would be halted or reversed by imposing a 1 MB cap on the block size starting next year. It should be noted that the increase is only on the block size *limit*; the actual block sizes will continue to be determined by the traffic. Even with optimistic forecasts, the average block size should not exceed the 1 MB limit before the end of 2016. If any harmful effects of larger blocks are demonstrated until then, the limt can be reduced again by decision of a majority of the miners. It has been claimed that netowrk congestion would be beneficial since it would create a "fee market" whereby clients would compete for space in the blocks by paying higer transaction fees. It has been claimed that those fees would compensate for the drop in miners revenue that will follow the next reward halving in 2016. It has also been claimed that the higher fees will inhibit spam and other undesirable uses of the blockchain. However, the "fee market" would be a fundamental *totally untested* change in the client view of the system. It proposes a novel pricing mecanism that is not used by any existing commercial service, physical or internet-based. There is no evidence that the "fee market" would work as claimed, or that it would achieve any of its expected results. (Rather, there are arguments that it would not.) Congestion would defintely put a cap on usage of the protocol, reduce its value as a payment system, and drive away much legitimate traffic. Congestion, and the unpredictable delays that result from it, are also unlikely to make bitcoin attractive to high-value non-payment uses, such as settlements of other networks or notarization of asset trades. And, mainly, there is no reason to expect that the fee market will generate enough fees to cover the 500'000 USD/day that the miners will lose with the next halving. **COMPATIBILITY** If this change to the Bitcoin protocol gets implemented by a majority of the miners, all players will have to replace or modify their software so that it accepts blocks up to 8 MB after block 385000. Miners who fail to do so may soon find themselves mining a minority branch of the blockchain, that grows at a much slower rate, will probably be congested from the start, and will probably die soon. That branch will probably be ignored by all major services, therefore any rewards that they earn on that branch will probably be worthless and soon unspendable. Clients who fail to upgrade or fix their software will not "see" the majority-mined chain once someone creates a block with more than 1 MB. Then, those clients will either be unable to move their coins until they fix their software, or may see only the minority branch above. Transactions that they issue before the fix may get confirmed on the main branch, but may appear to remain unconfirmed on the minority chain. Useof tools like replace-by-fee or child-pays-for-parent while in that state may give confusing results. **DISCLAIMER** The author has never owned or used bitcoin, and has a rather negative view of it. In fact, he is a regular contributor to /r/buttcoin. While he sees bitcoin as a significant advance toward its stated goal ("a peer-to-peer payment system that does not depend on trusted third parties"), and finds bitcoin interesting as a computer science experiment, he is quite skeptical about its chances of widespread adoption. He also deplores the transformation of bitcoin into a negative-sum pyramid investment schema, which not only has spread much misery and distress allover the world, but has also spoiled the experiment by turning mining into an industrial activity controlled by half a dozen large companies. He hopes that the pyramid will collapse as soon as possible, and that the price will drop to the level predicted by the money velocity equation, so that the aberrant mining industry will disappear. (However, he does not think that this BIP will help to achieve this goal; quite the opposite, unfortunately.)