I don't normally create self-moderated posts and don't intend to censor anyone in this one, but I did decide to make this post self-moderated simply because the topic could easily lead to inflammatory posts in spite my intentions.
The block size debate seems to be ongoing, albeit at a lower and more reasonable rumble. Honestly, I'm a bit cynical regarding where bitcoin is headed vs where I believe it was intended to go. I'm also pretty set in my beliefs regarding many arguments across the spectrum of the debate. However, I'm not posting to argue any specific point. Primarily, I want to try to propagate and/or invalidate the potentially provable information I believe to be true. To that end, I am going to post some of that information here now. I will update this OP as responses that prove and disprove my points are provided. I may also update this OP with additional information that I recall later. I may even add additional information provided by other posters to this OP to the extent that they are factual in nature (as opposed to opined). Hopefully this OP can serve as a point of reference for people who want to validate their beliefs regarding facts that should help in regarding formation or evolution of their opinions in said debate.
All of that having been said, here are some alleged facts that I would love to see proven (or disproven in cases where that is possible):
The 1 MB block limit was added due to concerns regarding storage because there were no alternatives to full nodes
The 1 MB block limit was added due to concerns regarding bandwidth because there were no alternatives to full nodes
The 1 MB block limit was added at a time when 6Mb DSL might have been considered fast by a majority of miners and nodes
The USA is somewhat behind the rest of the developed world in bandwidth speeds
Broadband was defined as >56Kbps (i.e. ISDN) / 4 Mb/s+ (USA FCC 2010) when the 1MB block limit was created *presumably a fair number would be somewhere near 4MB/s given the proof on when the 1MB block limit was added.
The FCC in the USA has since redefined broadband as 25 MB/s in 2015, which is >400x (i.e. ISDN) / 6.25x (USA FCC 2010) the definition of broadband when the 1MB block limit was created *presumably 6.25x would be a reasonable calculation based on my comment on the previous fact above.
Here are supported facts:Satoshi predicted and had no problem with a few large mining farms vs the majority of users being miners
(bold emphasis added by me)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.
- snip -
The design outlines a lightweight client that does not need the full block chain. In the design PDF it's called Simplified Payment Verification. The lightweight client can send and receive transactions, it just can't generate blocks. It does not need to trust a node to verify payments, it can still verify them itself.
The lightweight client is not implemented yet, but the plan is to implement it when it's needed. For now, everyone just runs a full network node.
I anticipate there will never be more than 100K nodes, probably less. It will reach an equilibrium where it's not worth it for more nodes to join in. The rest will be lightweight clients, which could be millions.
At equilibrium size, many nodes will be server farms with one or two network nodes that feed the rest of the farm over a LAN.
- snip -
Simplified Payment Verification is for lightweight client-only users who only do transactions and don't generate and don't participate in the node network. They wouldn't need to download blocks, just the hash chain, which is currently about 2MB and very quick to verify (less than a second to verify the whole chain). If the network becomes very large, like over 100,000 nodes, this is what we'll use to allow common users to do transactions without being full blown nodes. At that stage, most users should start running client-only software and only the specialist server farms keep running full network nodes, kind of like how the usenet network has consolidated.
- snip -
Satoshi was still developing when the 1MB block limit was created
The 1 MB block limit was added at a time when the only way to run a wallet was to run a full node
There are now legitimate lightweight wallet alternatives to running a full node
As far as I know, the first non-full node wallet was MultiBit. I'm not sure how to prove that there weren't any other SPV wallets before that.
If you are willing to accept that MultiBit was first, then the announcement of MultiBit was on September 12, 2011:
I am pleased to announce the release of a new bitcoin client called MultiBit.
- snip -
We've already established that the block size limit was added in 2010, so if there were no other SPV wallets before MultiBit (in 2011), then the only way to run a wallet was to run a full node.
Furthermore, in May of 2010 (just 2 months before the block limit was added) Satoshi stated that there were no SPV wallets yet:
- snip -
Simplified Payment Verification is for lightweight client-only users who only do transactions and don't generate and don't participate in the node network. They wouldn't need to download blocks, just the hash chain, which is currently about 2MB and very quick to verify (less than a second to verify the whole chain). If the network becomes very large, like over 100,000 nodes, this is what we'll use to allow common users to do transactions without being full blown nodes. At that stage, most users should start running client-only software and only the specialist server farms keep running full network nodes, kind of like how the usenet network has consolidated.
SPV is not implemented yet, and won't be implemented until far in the future, but all the current implementation is designed around supporting it.
Here are the discredited "facts":It was intended for the 1 MB block limit to be raised or removed in the future
That depends on whose "intention" you are talking about.
From the very moment that Satoshi added the 1 mb block limit, there were probably people that wanted the limit increased or removed immediately. Satoshi and others were already, at that time, talking about raising it "in the future". But there were probably people that saw the limit when it was created and decided right then that they never wanted it to change. What was intended doesn't really matter. It took time for people to form opinions on what the long term effects of such a limit would be.
If you are looking for evidence though, here's someone wanting to change it to 7 MB in October of 2010:
We should be able to at least match Paypal's average transaction rate...
- snip -
+static const unsigned int TX_PER_MINUTE = 1400;
+static const unsigned int TX_AVG_SIZE_GUESS = 256;
+static const unsigned int MAX_BLOCK_SIZE =
+ TX_PER_MINUTE * TX_AVG_SIZE_GUESS * 10 * 2;
- snip -
And here's Satoshi saying that we could increase it "in the future":
- snip -
We can phase in a change later if we get closer to needing it.
I listed this in the discredited section because I believe Satoshi's intentions are generally implied here even though the "fact" didn't indicate as much. Based on the snippet above, it doesn't appear that it was so much an intended action as an anticipated possibility.