Permanently keeping the 1MB (anti-spam) restriction is a great idea ... if you are a bank. When those favoring a permanent 1MB cap say that Bitcoin 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. So if you are a trusted third party (aka bank 2.0) then it is a great idea. The individual will be priced out of the blockchain and then Bitcoin becomes yet another network you have no direct (peer) access to, just like FedWire, SWIFT, and other private closed transfer networks. There is no realistic scenario where the network permanently at 1MB can both have meaningful adoption and still enable direct access to the blockchain by individuals. To be clear by direct access I mean an transacting on chain without relying on intermediaries or trusted third parties.
Who favors a permanent 1MB cap? Please name them. MP? Davout? The brainless strawman?
Objectors to the 20MB increase have a problem with the timing (too soon) and scale (too much) of Gavin's proposal, but not so much the fundamentalist attachment to Pure Bitcoin as Saint Satoshi intended.
Not every user needs access to The Blockchain of Blockchains for every cup of coffee and bus ticket. That conceit of the monopolist-maximalists is flawed, because we are now blessed with other specialized blockchains more well suited to casual/retail/private transactions.
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, but the 1MB restriction puts such a chokehold on transaction capacity 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 as little as 250,000 txns per day, it doesn't take a very large transaction volume before settlements between these trusted third parties alone fill the block space. 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 to a point where individual transactions are just not economical anymore.
Sorry but no, we can't stop talking about cups of coffee. BTC usage for retail POS is a fetish for many of the VC agitators who are behind much of this 20MB/Blockstream Bitcoin2 Chaos & Drama
TM.
When we (functionally) equate altcoins with "third party aggregators" your objections collapse, because altcoins may be multiplied sufficiently to give everyone direct access to
a secure blockchain, just not the most important/secure one.
We are headed in the direction of people using Bitcoin without knowing it. IE, I'd like the cryptowallet on my smartphone to automatically negotiate and decide in which coin(s) to pay for my latte, but not bother me with the details.
If Peet's Coffee gives a discount for using PeetsCoin, but the barista prefers tips in Monero, fine. Do it, and don't expect Joe Enduser to care whether or not he is in direct communion with the Master Blockchain. Such crypto-gnosis should be reserved for only the most important instances of settlement/transfer/wealth preservation.
Before we get to why a permanent 1MB cap kills any utility for the network I 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 imposed by that centralization is very small and scope of the potential loss is both trivial and limited.
It is critical that we retain the
option to keep the bulk of our wealth outside of third parties under individual control. It isn't a binary choice as long as there is access to the blockchain (at reasonable cost). I can bypass 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 spent a lot of time and energy to reinvented the interbank network. Keeping the 1MB limit permanently will lead to just that unless widespread adoption never happens.
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 chain. Initially these third parties will only process internal transactions off the blockchain (i.e. coinbase customer paying coinbase merchant) but in time to meet growing 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 and this is why an individual will never be able to compete. 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. Fees 100x or 10,000x what they are now would simply be a very small cost of doing business but it would price individual transactions completely out of the chain.
Under such a scenario 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 can't send a bank wire yourself. Now you even call it "sending a bank wire" but in reality what you doing is making a request 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. What happens in transaction demand is 10x or 100x that. 90% or 99% of it will occur off chain and that tiny on chain capacity will be swallowed up by just settlements between third parties. A mere hundred third parties operating globally would easily generate txn volume that saturates the blocks. In a settlement network the upper limit on the number of settlements grows exponentially with the number of participants (participants means the trusted third parties not you). 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 free up scarce chain resources for mere outsiders.
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. 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. You simply make a payment and it instantly happens. Both entities collect fees on these thousands of transactions despite it being nothing more than moving bits in private ledgers. However if both entities update their ledgers based on mutually shared information then one entity will end up owing the other entity some funds. This is why settlement networks require some level of trust. It requires trusted peers to extend mutual lines of credit. It is also why you will never be a peer on this network. So both entities sign contracts that they will extend credit for net transaction flows up to a certain amount and then settle that difference periodically. 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 but that is ok because HSBC has already agreed to lend on demand up to say 200,000 BTC to Chase for a period of not more than 4 hours. Periodically every few hours the entity with a balance borrowed will settle it with a single on blockchain transaction. In this example Chase can make a single on blockchain transaction to HSBC for 30,000 BTC and all books for both entities are now balanced. The process continually repeats. 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 and your individual transaction or an third party whose transaction represents the third party net settlement for thousands of customer transactions. 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. This doesn't just mean delays it eventually will mean exclusion. The 1MB limit is so low that what happens when the third parties are generating more than 250,000 txns per day (enough to fill the blocks) every single day and their lowest bid is always 10x or 100x what you are willing to pay? Simple you have been priced out of the blockchain potentially forever.
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 become or how quickly that adoption will occur. I do know however that a permanent 1MB restriction ensures Bitcoin can not scale to any level that most people would consider a success even if only used as a store of value (infrequent high value transactions) without relying on centralized trusted third parties. 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 it is true there is no need for enough transaction capacity to allows dozens of transactions a day per user. However I think it is pretty obvious for such a system to have utility it would need to have enough capacity to allow dozens of transactions per 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.
Maximum supported users based on transaction frequency.
Assumptions: 1MB block, 821 bytes per txn
Throughput: 2.03 tps, 64,000,000 transactions annually
Total # Transactions per Transaction
direct users user annually Frequency
<8,000 8760 Once an hour
178,000 365 Once a day
500,000 128 A few (2.4) times a week
1,200,000 52 Once a week
2,600,000 24 Twice a month
5,300,000 12 Once a month
16,000,000 4 Once a quarter
64,000,000 1 Once a year
200,000,000 0.3 Less than once every few years
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.
On edit: fixed some typos. Cleaned up some poorly worded statements. Yeah there are a lot more. It is a work in progress.
Thank you for mathing all of that. It's useful data, but will be incomplete until we understand how the system copes with BTC tx scarcity.
Although I do not favor maintaining status quo for all eternity, my objections to the 20MB cap's timing and wisdom remain.
How do you feel about my counterplan and proposed compromise?
First, we must wait and see how the infrastructure and ecosystem react/adapt to scarcity. Without this crucial empirical data, we cannot make informed future decisions about ideal block sizing. We cannot risk a civil war between BTC1 and BTC2 camps by forcing the issue prematurely (but if I were actually anti-BTC and pro-alt, I'd relish such a Great Schism).
Second, we must use the results of the experiment with 1MB scarcity to decide on a preliminary blocksize increase, to somewhere between 2MB and 10MB.
20MB blocks can then be considered, if and only if the community, pruning/compression mechanisms, and TOR/DSL are ready to support them.
As a compromise, I'll support an increase to 2MB ASAP, on the condition that we then maintain that limit until facts about market reaction to block real estate scarcity are ascertained.