The post originally appeared on Medium and we republished with permission from its author, Brent Bevear.
Much to the surprise of many of its adherents and vociferous opponents, Bitcoin has had now what can only be summarised as a red history. The system itself, however, can and will only be realised as a capitalistic system geared towards network growth.
In its original form Bitcoin was a competitive system that used Proof-of-Work as a signaling mechanism, and a punishment mechanism for those who did not follow the rules, thus solving the double-spend problem. Miners would profit by getting access to new coins to spend from the block subsidy and would pick up small fees transactions. As the block subsidy decreases exponentially every four years, the mainstay of miners was understood to be transactions in high volume.
“ I’m sure that in 20 years there will either be very large transaction volume or no volume.” — Satoshi Nakamoto
Due to what can only be understood as a birth defect, Bitcoin rose to prominence with 1MB cap (or production quota) that did not even exist in the original code. This set an upper limit on the number of transactions that could be mined into a block, and due to community misfits, this decision ultimately formed scar tissue and stayed to this day in Bitcoin Core, the primary node software that operates the BTC network.
Unfortunately, despite the weight of evidence indicating that this decision was not meant to be a permanent fixture in Bitcoin, with Satoshi leaving instructions on how the size could be raised in the future, as well as a future prognostication that Bitcoin would have to end up in server farms, people to this day still mistakenly believe that the 1MB cap and its resultant 3 tx/s limitation is a key feature of Bitcoin, and one that ensures its decentralisation. This is a mistake.
For what it’s worth:
I’m the guy who went over the blockchain stuff in Satoshi’s first cut of the bitcoin code. Satoshi didn’t have a 1MB limit in it. The limit was originally Hal Finney’s idea. Both Satoshi and I objected that it wouldn’t scale at 1MB. Hal was concerned about a potential DoS attack though, and after discussion, Satoshi agreed. The 1MB limit was there by the time Bitcoin launched. But all 3 of us agreed that 1MB had to be temporary because it would never scale.
— Cryddit (Ray Dillinger).
If you happen to be of a libertarian disposition and you have found yourself taking the commandments imposed by BTC on faith, I would like to raise three challenges. For the following, I raise these three questions against the prevailing belief that the 1MB cap is an essential feature that constitutes Bitcoin and is necessary for decentralisation.
Firstly, one must ask why Nakamoto decided upon the Merkle tree structure that allows for the fast and efficient verification of transaction presence in blocks at scale. If we are to believe that blocks are intended to be permanently capped at 1MB (plus the tiny amount of additional weight from witness segregation), would it not be more efficient in terms of both CPU and RAM to bundle the transactions into a list and hash them once — replacing the Merkle root in the block header with a single hash of the bundled transactions? If the goal is to ensure that everyone can run a “full node,” or rather a fat node, listening node, or just a Bitcoin node that doesn’t mine or write the blockchain, then I’m afraid there is far more weight than could be stripped from the system.
The current system where every user is a network node is not the intended configuration for large scale. That would be like every Usenet user runs their own NNTP server. The design supports letting users just be users. The more burden it is to run a node, the fewer nodes there will be. Those few nodes will be big server farms. The rest will be client nodes that only do transactions and don’t generate. — Satoshi Nakamoto.
The alternative of requiring branch hashes to be continually updated with new insertions into the tree seems like an egregious waste of time at such a small scale. One must necessarily ask — why bother with Simplified Payment Verification at all? If the ideal network configuration is one where everybody can and should run a full node, then there is no need for users to acquire Merkel branches from miners to verify the transaction using the Merkel root.
Secondly, one must then question why Nakamoto had an OP CODE in Bitcoin script that allowed for 4.3GB of data to be pushed on the interpreter stack. If we are to believe that the permanent capacity cap of the system is 1MB, it would follow that there would be no such op code that clearly contradicted the global production quota.
Third and finally, we see an issue arise with the very nature of how transactions are sent and received in BTC today. Today, the impetus is on users to directly send their transaction to miners, and merchants are to run a full nodes that they can scan the transactions as they arrive one by one to see if they satisfy the requirement for purchase. Not only does this not scale, but it also mistakes the nature of how Bitcoin transactions should work from the get-go.
Merchants should hand a customer a transaction template with the necessary requirements, the customer signs it and gives it to the merchant, and it is on the merchant to cash it or not. They have the greatest incentive of all to make sure they get paid. Due to the current configuration of commerce in BTC, we see that the only SIGHASH type which is used for transactions on BTC is SIGHASH_ALL, the default, which says to sign all of the outputs with a single key. If Bitcoin was intended solely for this, one must ask why SIGHASH_NONE, SIGHASH_SINGLE, and SIGHASH_ANYONECANPAY exist? Such operations are something you would only use decidedly in a Peer-to-Peer context, where transactions are handed from user to merchant, like cash, which allows for the signing of no outputs, where the customer doesn’t care where the money goes, or the signing of a single output whereby a merchant can amend data to a transaction before sending, or where anyone can satisfy the fee requirements of a transaction. One possible use case is a Bitcoin powered social media site which does not mine posts into a block until someone has valued it satisfying the fee to mine it.
These questions and inconsistencies, of course, fall on deaf ears in the fundamentally incurious and zealous BTC camp. What we have instead seen is an erasure of understanding in these areas and a reinforcement of the idea that the 1MB cap is a necessary feature of Bitcoin. Just as we have seen with historical ridicule of capitalist enterprises that require significant barriers to entry to the market, we see ridicule of the idea of commercial nodes that require significant computational resources to verify blocks and propagate them. What we have seen proliferate in Bitcoin is the idea that the cost of running a node should be fixed, despite the inherent contradictions of Bitcoins design, being profit-driven toward big blocks. This idea of capacity restriction is a decidedly anti-Austrian idea that is championed by purported Austrians who do not even have a passing familiarity with the literature they purport to support. Luckily for us, as the block subsidy decreases, resilience to fictitious beliefs increase. Consider it Nakamoto’s inbuilt middle finger.
As a result of this production quota, we have seen emerge a narrative of Bitcoin being a “store of value” despite its wildly volatile price that is unbecoming of a daily currency. In also preventing the data carrier capacity of Bitcoin, BTC developers have inadvertently or advertently (you can decide) decimated any way for a stable bid on the market for Bitcoins to form. To write to the blockchain for images, documents, security logging, and so forth, one requires Bitcoin. To transfer ownership of BTC, one does not even need BTC. Because Bitcoin has been restricted in its potential for uses, we have arrived upon commodity money that has no actual utility, which many mistakenly describe as “no intrinsic value.” Even gold has a continued bid on the market for its usage in jewelry, electronics, and other applications. This has caused a circular argument to arise in the BTC community, suggesting that the store of value (what value?) is Bitcoin’s utility.
Just as we have seen in socialist country after socialist country, an equal provision of misery has been effectively “guaranteed” to citizens, or users in this case, while the party cadres live quite large, in this case, on venture capital finance.
So in summary, through many flights of fancy in the history of Bitcoin, somehow we have arrived at a community of nominal libertarians who support price-fixing, production quotas, and who are decidedly against utility. Strange, isn’t it?
CEO of Blockstream.
New to blockchain? Check out CoinGeek’s Blockchain for Beginners section, the ultimate resource guide to learn more about blockchain technology.