Salvaging the Blocksize Discussion, in Two Questions
| If you find WORDS helpful, Bitcoin donations are unnecessary but appreciated. Our goal is to spread and preserve Bitcoin writings for future generations. Read more. | Make a Donation |
Salvaging the Blocksize Discussion, in Two Questions
By Paul Sztorc
Posted December 28, 2015
A recipe for productive conversation.
Well, here they are:
The Magic Discussion Template
- âWhy do you think we have a blocksize?â
- âWhat has changed, between the time that the blocksize was introduced (July 15th, 2010), and today, which motivates us to make a corresponding change in the constraint?â
Now, if everyone just makes an extra effort not to be a sore winner, the crisis will be solved!
Youâre welcome!
Now, I guess Iâll explain about those two questions in greater detail.
Motivation and Background
Because of the way Bitcoin is designed, in-fighting is inevitable. In fact it will be getting worse. Those who understand this problem can, at least, feel better about it.
A Lost Cause
I donât expect this post to help very much. The debate is already over, and everybody lost. Weâre full tribalism* on this issue; anyone who pokes a curious head into the conversation is mind-killed immediately and with extreme prejudice.
Nearly everyone is doing exactly those things which should be avoided (assuming bad faith, stonewalling, outright coercion/death-threats). Worst, those who were originally happy to not have an opinion, are now âselectingâ an opinion, just to defend their friends and allies.
- I can already see my inbox and comments section filling up with âpraiseâ from people who think that I am in their tribe, and ââcriticismââ from people who think that I am not in their tribe. Itâs a sad state of affairs.
Why Write This?
My only purpose here, is to comfort those who are frustrated. I hope to explain why the blocksize conversation is so horrible, and help move it forward.
If you arenât interested in that, nowâs the time to navigate elsewhere.
Background: Zero-Sum Games, Software Forks, and Bitcoin
Zero-Sum Games
A âzero-sum gameâ is a term in game-theory, referring to a situation where âyou doing wellâ is indistinguishable from âyour opponent doing badlyâ. Examples include: two guys who are romantically interested in the same girl, two politicians competing for the same office, a race where only one person can come in 1st place, etc. These ZSGs are brutal; your opponent has every reason to try to make you do worse. This permanent, unalterable antagonism can be a very distressing experience. Why - even your success is dangerous, as, if you are currently winning, your opponent may become more desperate and more unpredictable.
too funny to print Just axe Leon Trotsky. /*rimshot
Software Forks
Open source software is (mostly) liberated from this dark reality, thanks to the ability to âforkâ the software. If you donât like something - anything - you can change it! A fork is the opposite of a zero-sum game: instead of conflict being unavoidable, conflict is completely impossible.
Bitcoin
But, hereâs the bad news: Bitcoinâs design does not allow software forks, at all. It does allow âupgradesâ, and we have labeled these upgrades âsoft forksâ and âhard forksâ, but these phrases do not actually refer to the split of one project into two. Bitcoin is designed to take many, many, possible forks (one per miner) and use the âheaviest chain ruleâ to select the - The - single block to be the only valid one. There canât be two blockchainsâŠby definition. The project canât split.
If Bitcoin ever did split, for any reason, weâd either have [1] an unexpected and instantaneous doubling of the money supply, or [2] the reversal of an arbitrary subset of transactions. Both are terrible not-Bitcoin-ness.
Hard Fork = Conflict
Bitcoin (despite being open source, and despite being on GitHub), is a zero-sum game. XTâs success is Coreâs failure. The stakes are high â the two cannot coexist.
Until we have sidechains, of course.
Background: Why Does Bitcoin Have Limits, Anyway?
To invoke von Mises: âhuman action is purposeful actionâ. Why would someone purposefully choose to take an action which limits his/her future actions?
A Contract is a Mutual Limitation
Bitcoin is a protocol, or âset of rulesâ. Every âruleâ everywhere is, of course, a limitation or constraint. It harms our ability to âact purposefullyâ. This âbindingâ of everyone in the Bitcoin Network under the same, agreed-upon rules, gives each of us less autonomy (we can each do fewer things); however, we can more easily work together (our expectations of others are more reliable). For example, I âgive upâ my ârightâ to create 50 million Bitcoin out of thin air, but you give up that right as well. As a result: no counterfeiting.
By definition, every one of Bitcoinâs rules is an inconvenience â something obstructing our individual puposeful action! Obviously, we tolerate these inconvenient rules because they themselves serve some purpose in helping us work together.
First Half: What is a Blocksize Limit, anyway?
The biggest stumbling block so far.
It turns out, surprise surprise: people donât agree on âwhat a blocksize limit isâ.
This is a big problem, because if we canât talk about x at all, then we certainly canât use conversation to compare different versions of x to see which x-version is the best.
boring, belongs elsewhere A general recipe for success, then, would be to: 1. Agree on the definitions (including our definition of âshouldâ, ie our âobjectiveâ). 2. Agree on the relationship between our defined terms and our objectives. Typically this is done by âanalysisâ, ie by breaking concepts down into smaller / easier-to-understand (but slower and less-generalizable) sub-concepts. 3. Select the action which most-achieves our objective.
So, below, I present: the Common Blocksize-Arguments, grouped by Flavor.
By âflavorâ, I mean the core assumption of the form âthe blocksize exists ⊠[ reasons ]â.
Note: I have changed the word âCampâ to âFlavorâ, because it is more obvious that a person can not be a âFlavorâ. Flavors are for arguments, Tribes are for (unlucky) people. Tribes != Flavors == Camps. I regret using the word Camp, as it was unclear, and primed people to react defensively. I have made minor edits (viewable on
GitHub
) to emphasize this difference. It is a confusing topic, because each individual should care most about one single Flavor, at which point they could be said to be, for example, âin Camp Dâ.
Notice that it is the arguments which come in flavors, not their arguers. Someone who is particularly unwary might accidentally mix all kinds of Flavors together, unaware of their potential for logical inconsistency. ( This is not to be confused with the concept of âcautionâ, where someone is knowingly concerned about multiple things at once. )
What is a blocksize limit?
Help me end the madness:
Flavor A: It isnât anything (not anything useful, anyway).
Sample Arguments
This flavor includes phrases such as:
- âWe must raise the limit, because we are about to hit it!â
- âWe donât have time to try anything else [Lightning Network].â
- â7 transactions per second isnât enough to compete with VISA!â
As well as:
- âThe soft limit imposed by individual miners will work just fine.â
- âThe blocksize limit will never be a binding constraint, anyway.â
- âLet the free market (âsomething elseâ) determine [transaction fees / the block size].â
It does not include an argument of the form:
- We are about to hit the limit.
- Hitting the limit is bad.
- We should do something to avoid hitting the limit (options include: rewrite wallet software, warn users, increase limit, âŠ).
Implications
Flavor
A necessarily implies that the blocksize limit should be removed altogether.
Flavor B - It Stops Validators from Being Robbed by Users
Each Bitcoin transaction needs to be..
- ..routed to all of the full nodes (âvalidatorsâ) in the network.
- ..independently verified by each full node.
- ..stored forever by each full node.
In other words, Bitcoin transactions arenât free.
Who should pay for them? Clearly, the user (ie âthey who wish to transactâ). The problem is that miners get 100% of the transaction fees, but do not need to pay all of the bandwidth or storage costs (in fact, some miners donât even pay the validation cost).
( For Full Nodes, it is actually reversed: they get 0% of the transaction fees, but must pay all of these costs! )
Sample Arguments
The
Flavor
B arguments include:
- âThe number of full nodes has been falling.â
- âIt will be too difficult for X to run a full node.â
- âMore individuals will resort to light-clients.â
And so forth. It does not necessarily contradict the premise that a blocksize increase could cause a higher quantity full nodes (by, perhaps, causing greater interest in Bitcoin).
Implications
This Flavor, to be logically consistent, concludes that the blocksize limit should increase when ârunning a nodeâ becomes easier. Correspondingly, Flavor B concludes that the limit should decrease, when/if running a node becomes too difficult.
It seems that this Flavorâs ideal blocksize limit (IBL) would be primarily driven by the availability of bandwidth, and by improvements in hardware (fiber / CPUs / hard drives) and by improvements in the software which utilizes that hardware.
SubFlavor B2 - Selfish mining / block-propagation
This flavor emphasizes the validation performed by miners. Specifically, these arguments emphasize that miners will be unable or unwilling to validate properly (and that this lack-of-validation is bad).
For B2, any technology which improves block propagation (improved bandwidth, the miner relay network, âweakâ blocks, IBLTs, âŠ) would favor a higher IBL.
SubFlavor B3 - O(n^2) Fundamentalism
The B3 Flavor implies that everyone is running a full node (or needs to be able to do so). From this, it is clear that each new Bitcoin user (n) will receive payments at a full node, and all other nodes (* (n-1)) must also receive, validate, and permanently store the transactions sent to this new node (in contrast to, for example, the lightning network, where this is not a requirement).
Someone invoking B3-flavors, may be interested in new technology (ie, âfraud proofsâ enabled by segregated witness, ability to quickly compare reports from different full nodes, resistance to Eclipse attacks, zk-SNARKS) that enables users to trust full nodes which they did not create. However, such individuals may also reject these technologies as insufficient substitutes for a full node.
B3 will always tend to advocate a very low blocksize, as, from principles of mathematics, we know that f(n)=n^2 reacts explosively as n increases. However, individuals can be expected to leave B3 if/when Bitcoinâs adversarial environment changes. For example, if the entire world uses only Bitcoin, few would be interested in attacking it and SPV security would probably be fine.
Flavor C - It is a Stabilizer
Some believe that the Blocksize limit removes fluctuations from Bitcoinâs state. This belief is associated with questions like:
- âWhat would happen to transactions fees in the absence of a blocksize limit?â
- âWithout a limit, how will we fund Bitcoinâs security in the future?â
- âWhen transaction fees dominate the miner reward, how can we ensure that mining continues âwhen the sun is over the Pacificâ?â
And tends to be associated with the phrase âconstant backlog of transactionsâ.
Implications
A C-Flavor would tend to support a blocksize which slowly and continually increases, until problematic fluctuations arise, or are expected to arise (at which point the limit is halted or decreased).
The IBL of Flavor C would be driven by..
- ..demand for BTC transactions, (which is in turn driven by âsubstitutesâ [off-chain alternatives, altcoins, âŠ] and âcomplimentsâ [SilkRoad, JoyStream, âŠ]).
- ..improvements the technology which manages payments (fee-aware / fee-minimizing wallet software, lightning network).
As these drivers improve, we can have a higher IBL without the risk of severe fluctuations.
Thus, Flavor C is more focused on the long term, and those who take arguments from Flavor C are likely also to borrow from other Flavors.
Flavor D - It represents Decentralization / a Contract (and must be upheld, on Principle).
If Bitcoinâs rules can be changed by someone, then what matters isnât the rules themselves, but the people who control these rules. Some arguments object to this, implying that things are inherently better for Bitcoin if no one is in charge.
For example:
- âPeople need to change themselves to fit Bitcoin, not the other way around.â
- âIt is the policy of X Organization not to support any âcontentiousâ hard fork.â
- âDevelopers at X are controlled by Y corporation or agents of Z government (and we donât want them in charge).â
- âWe want hard forks to be rare/difficult.â
Implications
Flavor D would lose relevance if the decision-making process became more transparent (or longer, and more difficult to subvert), or, perhaps, if Satoshi reappeared (or new info was learned about his design).
However, Flavor D rarely, if ever, allows the blocksize (or anything else about Bitcoin) to change. Perhaps the sole counterexample would be an existential threat: if Litecoin, or Ethereum, ever grew so as to be taken seriously, this might persuade Flavor D aficionados to rethink the relevance of the social contract, and increase the blocksize.
SubFlavor D2 - âMoral Hazardâ / Antifragility
Some people try to avoid doing things âthe easy wayâ. Thereâs some wisdom to it: âthe crutch begets atrophyâ, âcomfort is where we stop growingâ, ânecessity is the mother of inventionâ, and so forth.
Arguments in D2 ask: would we ever have heard of the Lightning Network (or Segregated Witness, âŠ) if the blocksize had simply been raised earlier this summer (as many advocated)? Certainly, as the need for Lightning Network diminishes, it becomes less and less of a development priority (and you become less famous for having invented/worked on it). It is possible, as with the US Debt Limit, that the quick-and-easy thing (raising the limit) is consistently chosen over the more-difficult, more fundamental changes.
Implications
D2 would want to stall all âeasy changesâ (of any cost, no matter how small or ambiguous) while: [1] good ideas are still being worked on, [2] good ideas are still being theorized and introduced regularly, and [3] there exists a shortage of good developers.
Part Two: Using the Blocksize
If the blocksize acts to help solve problem X, then we simply move the limit up as problem X becomes less relevant, and down as problem X becomes more relevant.
Relationships Between Concepts If the purpose of âa jacketâ is to keep you warm, then you know that âDo I need my jacket?â and âDo I need to keep warm?â are related. If you donât leave your house, or if the weather outside is already warm, then you donât need the jacket! However, if the purpose of the jacket is because it is a badass leather jacket that makes you look fukinâ awesome and women will be falling over themselves to sleep with you if you wear it to a bar, well, then the questions âDo I need my jacket?â and âDo I need to look good?â are related. If you have the flu, or arenât going to a bar, then you might not need the jacket. #### What do you want? Itâs like any other recipe: if you have [1] the inputs [2] the relationship between the inputs and the output, then, you can swap those inputs for an output!. If you have peanut butter, jelly, bread, a knife, a plate, paper towels, ⊠and you know what to do, then you can make a pretty mean PB&J sandwich! The blocksize debate is so messy because of [2]. As I mentioned in my Montreal talk, this is often because we havenât even stated (let alone agreed on) what the output should be!
Example
Letâs assume that Satoshi introduced the blocksize limit âto prevent an attacker from DoS-attacking with a large blockâ.
Well, if thatâs true, we would now ask âIs the Bitcoin network still vulnerable to the use of a large block in a DoS-attack?â.
- Since the blocksize served a specific purpose, a statement like âBut we are about to hit the limit!â is irrelevant, as is âBut we need to fund network security in the future!â. The network is either vulnerable to DoS-attacks or it isnât.
Then, we would continue: âIs the Bitcoin network (effectively) 8 times less-vulnerable today, than it was when Satoshi inserted the limit?â If the answer is yes, then the limit can increase from 1 MB to 8 MB.
- Not only did we settle on a purpose, but, we have an implied goal, which is âa network which is resistant to DoS-attacksâ. Maybe, you donât want âa network which is resistant to to DoS-attacksâ. Instead, you may want âa high quantity of Bitcoin nodesâ. If so, you may reject the above conclusion.
At this point, you may want to begin a new argument. For example: âa larger blocksize may cause more people to be interested in Bitcoin, which will more than offset the decline in some peopleâs ability to âŠâ
This, however, is precisely what derails the conversation and makes it confusing.
Trade-offs
You see, there are some changes which donât hurt anybody. No one cares about those. They are âuncontroversialâ.
However, Actual Important Discussions are always about trade-offs: they help X, by hurting Y.
If you want X, and someone else wants Y, then nothing can really be done. Hopefully, you can both at least agree that âpointless argumentâ is a waste of both of your time, and that you can âagree to disagreeâ, and that you should peacefully go your separate ways (butâŠif one of you refuses to drop the argument, you are mortal enemies and one of you will eventually have to violently destroy the other; it is a sad reality of our imperfect universe).
So, if someone wants âa high quantity of Bitcoin nodesâ and someone else wants âall Bitcoin nodes to be cheapâ and someone else wants âcheap paymentsâ and someone else wants âhigh transaction feesâ, these people really have nothing to say to each other.
Just take out your machine guns and get it over with!
Or, search for common ground: As I presented in Montreal, I suggest that the Bitcoin Exchange Rate be the common ground.
Or, best of all, search for a better way of doing things, one which eliminates the trade-off: the sidechain.
Bottlenecks
Nothing prevents someone from using arguments from several Flavors at once (unless they draw from Flavor A, of course). After all, you can wear a leather jacket for more than one reason: to look stylish and to stay warm on a cold day.
If two blocksize-purposes are equally relevant, then the blocksize limit can only increase when circumstances have improved in both areas. Youâd need it to be a warm-enough day, and youâd need to be not-interested in looking stylish (perhaps because you have the flu or something).
However, at each point in time, we can expect one single constraint to be the most constrainingâŠthe âbottleneckâ constraint. So, while one can mix flavors, one flavor should dominate. Someone who predominantly uses arguments from a single flavor, for example Flavor D, could be said to be âin Camp Dâ.
Final Thoughts
Politics, the eternal science, the terminal brain-disease to which all eventually succumb.
It isnât a tech problem.
All changes to Bitcoin require carefully-crafted, high quality codeâŠwritten and reviewed by the best and brightest.
Unfortunately, the problem of the community-wide hard fork concerns two additional problems: [1] âhow information spreadsâ, which could be described as âmediaâ, and [2] âhow disagreements are resolvedâ which could be described as âgovernanceâ. Theyâre big problems, and thereâs no reason to suggest that skilled developers or cryptographers will be any good at solving them.
Fortunately, I came up with some promising stuff already! Sadly, this first solution required a technique that frequently embarrasses intellectuals, making it a non-starter among todayâs Bitcoin elites.
I anticipated this resistance, and have an uncensorable version on the way. It has been primarily delayed, in my view, by the blocksize debate itself (which has derailed progress on sidechains). Once it is on, we shouldnât need to worry about this.
Iâve also solved this problem a second time, with the two-way peg. This one is even simpler, and likely to be popular.
If You Insist
If youâd rather âtalk things outâ like some kind of Communist (I am not joking.), well, I can win on that playing field as well (as Iâve tried to demonstrate in this post).
Iâd be happy to moderate some kind of debate, or forum or something, to facilitate this discussion.
But Iâm not sure anyone would really be interested. Instead, I think people will just try to capture the forum and use it to punish the people who insulted them.
I also doubt that it would really be helpful â if it actually concluded anything, individuals who disagreed would just de-legitimize and ignore it.
After all, Iâve already done this twice before, and no one says âThis blocksize controversy sucks, we need to create the two-way peg as fast as possible!â. Instead people start with âThat other guy, who insulted me, he canât get away with this! âŠhow could you side with them?!â and cover it up as best they can.
More Food for Thought
- In my opinion, Reddit is a highly biased and irrelevant source of information. Reddit manipulation software is cheap, and it can automatically solve captchas, down/upvote, write sentences, etc. For a single individual to control a supermajority of Reddit votes, probably costs <$100. Moreover, I estimate that /r/bitcoin accounts for a very small percentage of the total Bitcoin community (and this minority tends to be younger and less-educated). What reddit does well, I think, is aggregate and present links to websites which are not reddit. Those who make use of this useful feature, usually donât have accounts on the site, and (unfortunately) donât participate in the voting-feedback process.
- Its possible that Big Bitcoin CEOs want to get users away from running full nodes, and are nefariously supporting bigger blocks (after all, their service competes with node-running). Or, they are merely pandering to potential-customers (ie, the individuals who donât run nodes).
- Its possible that most Blockstream / Bitcoin Core developers actually are very blocksize-liberal (or donât care), but the recent gmaxwell smear campaign has reverse-motivated them to close ranks on a consistent message (and/or destroy this Threat to Bitcoin). Similarly, it is possible that BitcoinXT developers are actually blocksize-conservative, but canât understand theymos / bitcoin.org âs arbitrary manipulation of the conversation, and have concluded âanything that suspicious has got to be badâ.
- Although Satoshi argued that the limit could (not âshouldâ) be eventually removed, he did made a few claims which he later walked back, and a few which later turned out to be unreasonable. Satoshi himself inserted the blocksize limit, and he did not insert any code phasing this limit out. So his original position is very ambiguous, and Iâm sure he would prefer people to stop talking about it.
- In a complex system, it is logically defensible to say âI donât know what the rule is for, but we should keep it right where it is anyway.â In fact, civilization practically depends on this (namely, our laws).
- People choose to speak up (or not speak up) for many reasons. The result is that determining âwhat most people thinkâ is very very difficult. My guess is that most individuals, and most Btc, favor a 1 Mb blocksize. Of those people who Iâve physically met, in real life, mostly at Scaling Bitcoin conferences, >50% favored keeping 1 MB blocks for many months
- The process of âgovernanceâ is one which answers the timeless question: âHow are disputes resolved?â. If we set a bad governance precedent today, where disputes are resolved by a tiny group of people making incomprehensible decisions, or by backroom deals, or by reddit upvotes, we will regret it in the future.
To say that âthe conversation is a lost causeâ, isnât to say that Bitcoin is a lost cause, or the blocksize battle itself is a lost cause (for anyone).
In fact, at 9 PM EST today I will drink a toast (you are welcome to join me) â to the Bitcoin software, for lasting this long!
Add Disqus comments.
comments powered by
Disqus