Permanently keeping the 1MB (anti-spam) restriction is a great idea if you are a bank. When those in favor of keeping the limit in place say that Bitcoin network can still be a financial backbone of sorts they don't know how right they are. The problem isn't a limit in general but that 1MB is so low that under any meaningful adoption scenario it will push all individual users off the blockchain to rely on trusted third parties. In essence you will probably be priced out of the blockchain and while Bitcoin still has some value the blockchain becomes yet another network you will never have direct (peer) access to, just like FedWire, SWIFT, and other private closed transfer networks.
There is no realistic scenario where a permanently capped Bitcoin network can have meaningful adoption and allow direct access without using intermediaries.Can we stop talking about a cup of coffee please?You may have heard someone say something like "
Every $5 starbucks coffee doesn't need to be on the blockchain so there is no need to raise the limit". The implied message is that while the cost of the limit is that trivial purchases will be knocked off chain you will still have direct access to the blockchain for everything else (i.e. more than a cup of coffee) but 1MB puts such a chokehold on the network that even larger more meaningful transactions will eventually be knocked off as well. As a greater and greater portion of the overall transaction volume occurs off chain with third parties (aggregators) those entity will make arrangements with each other to allow cross entity off chain transactions and then settle the difference. With only 1MB of transaction capacity, it doesn't take that large of a transaction volume before settlements between these third parties consumes the entire block and at that point it doesn't matter if you want to use a third party or not you no longer have meaningful direct access to the blockchain because it will be space will be priced upward to a point where individual transactions are just not economical.
Before we get to why I do also want to point out those who believe that everything should be on the blockchain including dust and sub penny transactions are just as extreme going in the other direction. Centralization isn't always that bad. <gasp>. Context matters so try to read the rest before freaking out. I don't really care if my morning coffee is paid for using a centralized service. Have you ever given or received a gift card? Can't get more centralized than that. The reality is if I put $100 in Bitcoins in a centralized wallet or to an account linked debit card the risk I have incurred for that centralization is very small and scope of the potential loss is trivial and limited. The important thing is that I still have the
option to keep the bulk of my wealth outside of third parties under my direct control. It isn't a binary choice as long as there is access to the blockchain (at reasonable cost) I can rely on no third party for life altering amounts and gain the flexibility of off chain transactions for the trivial amounts.
If I lose direct access to the blockchain then I am forced to hand over all my wealth (not just enough funds to cover trivial purchases) to a third party. If that happens we have just reinvented the interbank network. Keeping the 1MB limit permanently will lead to just that unless widespread adoption never happens. My only alternative at that point may be to liquidate my holdings and move to a network where I still retain the
option to transaction directly without third party intermediaries.
The issue is that a 1MB restricted Bitcoin network provides so little transaction capacity (probably a lot less than you think) that under any level of adoption that most people would consider successful the demand for transaction processing will vastly outstrip the token capacity afforded by the 1MB limit. When that happens a growing super majority of transactions will need to occur off the network. Initially these third parties will only process internal transactions off the blockchain (i.e. coinbase customer paying coinbase merchant) but in time to meet demand and reduce the number of on chain transactions the largest third parties will work out mutual lines of credit so they can treat transactions between themselves off chain as well (i.e. coinbase customer paying a circle merchant). Then much like how banks work today they will only need to settle periodically to the net difference on transactions in both direction. One settlement transaction may represent thousands of off chain transactions. The third parties can charge lower fees, offer zero confirmation times, and still collect enough in aggregate to out pay individuals who are transacting directly on the chain. It doesn't take very much settlement volume to consume all the transaction capacity at which point you are in a position of having to outbid defacto banks to get your transaction in a block.
Under such a scenario. Now you may still "have" some Bitcoins (on the ledger of your custodian) but you won't have access to the direct network and without that Bitcoin becomes no different than any other closed networks. Have you ever thought about the fact that you send a bank wire yourself. Now you even call it "sending a bank wire" but in reality what you are requesting that your custodian (the bank who has your funds) perform a bank wire on your behalf. The bank has access to the wire network and you can only request that they make the transaction for you (and at the price they set which may not bear any resemblance to the actual cost). It may seem a small difference but it is night and day.
If you think this type of scenario is impossible then you probably don't realize how tiny the current transaction capacity is. We are talking a mere 10,000 or so transactions per hour. A hundred or so third parties operating globally could use up that capacity without any outside transaction volume. In a settlement network the upper limit on the number of settlements grows exponentially with the number of participants. There are ways to optimize that using peering levels but they add complexity and if it happens it will be because the new banks need more capacity not because they feel the need to allow outsiders to use their network.
Wait I don't get how off blockchain transactions could occur across entitiesIf you get the concept of settlements and peering agreements you can skip this section. Say someday Chase and HSBC both handle Bitcoin payments and thousands of customers of each bank request to make payments to customers of the other bank. Now Chase and HSBC can simply swap information and on agreement have both entities update their internal ledgers. Tada thousands of transactions occur off chain and across entities (i.e. customer at Chase sending funds to a customer at HSBC) and are confirmed instantly. Of course both entities collect fees despite the transactions not being on the blockchain. Now if the total amount sent in each direction matches then the books reconcile but if they don't then ahead of time Chase and HSBC agree to extend a limited amount of funds as a short term line of credit. In the traditional banking world it would be no longer than a business day but on the blockchain it could be no longer than an hour. So lets say the sum of the amounts Chase customers paid HSBC customers is 100,000 BTC and the sum of the amounts HSBC customers paid Chase Customers is 30,000 BTC. Now net-net Chase owes HSBC 70,000 BTC. So to settle these thousands of off blockchain transactions Chase can make a single on blockchain transaction to HSBC for 30,000 BTC. Now when space runs out in the block who do you think can pay more in fees to ensure their tx makes it into the block. You or an third party settling thousands of off blockchain transactions which they collected fees on. I don't care if you are trying to transfer thousands of BTC you aren't going to compete with banks on who can get priority access.
There is no 7tps limit there is currently a 1 MB anti-spam restriction.Before we look at why 1MB is simply unable to scale lets dispel the myth that there the network can handle 7tps. It can't. I am not sure who started that claim but it doesn't hold up to even basic math. To achieve 7 tps using one block of 1 MB every 600 seconds means that
the average transaction size must be 240 bytes (1,000,000 bytes / 600 seconds / 7tps = 240 bytes). That is not just not possible. If you have a Bitcoin wallet handy take a look at your last dozen transactions and if you don't have a wallet handy just use a blockchain type site to look at the transactions in the most recent block. How many of the transactions were under 240 bytes? Not very many. I am going to go out on a limb and say the majority of your transactions were in the 300 to 700 byte range and you wouldn't be an exception.
Can you form a 240 byte transaction? Sure as long as you only have only a single input. A transaction input is requires at least 147 bytes so even two inputs puts us over the 240 byte average. While some transactions may have one input what is more useful if the average number of inputs per transaction. The total number of inputs in the blockchain will roughly equal the the total number of outputs.
Bitcoin Axiom: As the number of blocks approaches infinity the ratio of inputs to outputs in a well functioning blockchain will approach 1:1.Since outputs will eventually become inputs it makes more sense to look at block capacity using balanced transactions (number of inputs matches number of outputs) and single input, single output exceptions are very rare. A 2 input, 2 output transaction using all compressed keys and a P2PKH script is rather typical and weighs in at 373 bytes.
At 373 bytes per transaction and 1MB per block the network will not exceed 4.4 tps.. So 4.4 tps isn't 7 tps but it isn't that bad. Right? Well 4.4 tps isn't going to ever happen with 1 MB blocks either because it is a nearly optimized example and not all transactions will be as compact.
The average txn size is going to be larger due to factors like uncompressed keys being used, more complex scripts, and a limited number output selection. Looking at the last million transactions in the blockchain I show an average txn size of 560 bytes.
At 560 bytes per transaction and 1MB per block the network will not exceed 3.0 tps. This is very likely to decrease over time as transaction sizes creep higher due to multisig and other complex scripts becoming more common. Since single key outputs are pretty much as small as it can get transaction sizes only have room to increase. A good estimate for the network throughput when limited to 1MB blocks would be 2 to 4 tps depending on how optimistic (naive) you want to be.
Here is a direct comparison of the combined script size for some different types of scripts. The scriptPubKey is encoded in a transaction output and the scriptSig is encoded in the transaction that "spends" that output. Since outputs eventually become inputs in new transactions the overall "roundtrip" script size is what is important.
P2PkH: 131 bytes per script round trip (25 byte scriptPubKey + 106 byte scriptSig)
2-of-3 P2SH: 253 bytes per script round trip (22 byte scriptPubKey + 231 byte scriptSig)
3-of-5 P2SH: 383 bytes per script round trip (22 byte scriptPubKey + 361 byte scriptSig)
15-of-15 P2SH: 1,481 bytes per script round trip (22 byte scriptPubKey + 1,459 byte scriptSig)
A comparison of the average txn size to the theoretical max throughput with the 1MB limit in place. Once again I think 2tps on the lower end and 4 tps on the upper end is a more realistic range than the often quoted 7tps.
Txn Size Upper Bound Example
373 4.4 tps (2in, 2out, P2PkH)
416 4.0 tps
520 3.3 tps Current average
555 3.0 tps
616 2.7 tps (2in, 2out, 2-of-3 P2SH)
833 2.0 tps
1MB can not support a sufficient number of direct usersOne argument that is made by those favoring small blocks is that Bitcoin doesn't need to be used as a transactional currency to be successful. Much like gold, users could primarily acquire Bitcoins to use as a store of value (savings) and use other currencies for routine purchases. If Bitcoin had a very low velocity (like bullion) the smaller transaction capacity could support more users. There is nothing wrong with this idea in general (and it might even happen with larger block sizes) but those thinking this is a solution to the incredibly small transaction capacity imposed by the 1MB restriction probably fail to realize just how restrictive it is.
I don't know how exactly how widely adopted Bitcoin will be over the long run but the 1MB restriction ensures Bitcoin can not scale to any level that most people would consider a success even if used primarily as a store of value. If the objective of such a system would be to provide a decentralized, portable, and liquid savings that users have direct control over without a third party acting as an intermediary then the average user doesn't need the capacity to complete dozens of transactions per day, but they do at least need the capacity to make a dozens of transactions a year. The best comparison would be a savings account where users do not move funds for every purchase but rather transfer funds periodically throughout the year while the lower value more frequent payments are completed by checking account or a credit card. If your savings account or brokerage account restricted you to only one deposit per quarter and one withdrawal per year I would imagine you would look for something better. Bitcoin even as a "store of value network" needs to at least compete favorably with existing stores of value and for a given number of transactions annually that puts a limit on the number of active users. The numbers below are for 2tps. Double the numbers if you think 4tps is more appropriate but it doesn't materially change the insignificant upper limit.
Total # Transactions per Transaction
direct users user annually Frequency
<200,000 365 Once a day
500,000 126 A few (2.4) times a week
1,200,000 52 Once a week
2,500,000 24 Twice a month
5,000,000 12 Once a month
20,000,000 4 Once a quarter
63,000,000 1 Once a year
100,000,000 0.6 Less than once a year
1,000,000,000 0.06 Less than once a decade
As you can see even with an average transaction frequency of just once a week or once a month the network can't support more than a token number of users.
When someone advocates a permanent cap of 1MB what they are saying is I think Bitcoin will be great if it is never used by more than a couple million users making less than one transaction per month. Such a system will never survive even as a store of value as it is eclipsed by alternatives which are more inclusive.
1MB doesn't can't even keep up with existing non-retail payment networks.Going back to that coffee meme, the implied message is that 1MB is fine unless for everything else. You know substantial stuff like paying your mortgage, business deals, major capital expenditures, or paying a supplier for inventory. This just isn't the case though.
Do you know anyone who pays for coffee with a bank wire? The FedWire service (run by US federal reserve) processes ~150 million bank wires annually. The FedWire service only operates in the US. Internationally the largest clearinghouse is SWIFT and it processes more than 5 billion transfers annually. The US ACH network is even larger with 19 billion transactions annually (excluding converted checks). There are also about 2 billion international remittances annually (western union, moneygram, and other networks). A 1MB restricted Bitcoin network couldn't even keep up with these transfer networks even if you forget about retail sales completely.
The idea keeping the 1MB restriction, only keeps limits the utility of small payments is simply incorrect.
Bitcoin block size to reach comparable network volume based on average txn size
Network txn volume Average transaction size
annually (mil) 373 bytes 560 bytes 833 bytes
FedWire 150 1.1 MB 1.7 MB 2.3 MB
Remittance 2,000 14.2 MB 21.3 MB 31.7 MB
SWIFT 5,000 35.5 MB 53.3 MB 79.3 MB
ACH 19,000 134.8 MB 202.4 MB 301.0 MB
On a transaction fee basis.Currently the cost of the network is roughly $300 million annually. The users of the network are collectively purchasing $300 mil worth of security each year. If users paid $400 million the network would be more secure and if they paid $200 million it would be less secure. Today the majority of this cost is paid indirectly (or subsidized) through the creation of new coins but it is important to keep in mind the total unsubsidized security cost. At 2 tps the network the unsubsidized cost per transaction would be about $5. At 100 tps it would be $0.05. If Bitcoin was widely adopted, more users purchasing more coins should mean a higher exchange rate and thus the value of potential attacks also rises. The future cost of the network will need to rise to ensure that attacks are not economical and non-economic attacks are prohibitively expense relative to the benefit for the attacker. It may not rise linearly but it will need to rise. If someday one Bitcoin is worth $10,000 and we are still only spending $300 million a year on security we probably are going to have a problem. Now advocates of keeping the limit may argue that the majority of the network cost won't be paid by fees for many years but the reality is that with the limit on potential transactions there are only two other ways to balance the equation and that is much higher fees or much lower security.
ConclusionThe blockchain permanently restricted to 1MB is great if you are a major bank looking to co-opt the network for a next generation limited trust settlement network between major banks, financial service providers, and payment processors. It is a horrible idea if you even want to keep open the possibility that individuals will be able to participate in that network without using a trusted third party as an intermediary.