The block size war was also a war of quotations. Each side walked around with a short stack of Satoshi lines and treated them as a will. The published record is richer than either stack, and it does not read like a will. This essay stays inside that record: public posts on Bitcointalk and the cryptography mailing list, and private emails that the recipients later published — the Hearn correspondence at plan99.net, the Malmi correspondence, and related messages that have also appeared as exhibits in court. It does not invent a preference Satoshi did not state, and it does not award the chain to either camp.
He talked as if Bitcoin should scale to Visa-sized volume
On 12 April 2009, answering Mike Hearn, Satoshi wrote:
“The existing Visa credit card network processes about 15 million Internet purchases per day worldwide. Bitcoin can already scale much larger than that with existing hardware for a fraction of the cost. It never really hits a scale ceiling. If you're interested, I can go over the ways it would cope with extreme size.”
“By Moore's Law, we can expect hardware speed to be 10 times faster in 5 years and 100 times faster in 10. Even if Bitcoin grows at crazy adoption rates, I think computer speeds will stay ahead of the number of transactions.”
The letter is on Hearn's published thread 1. A closely matching passage, including the “two DVD movies worth” bandwidth arithmetic at 1 KB per transaction, went to Martti Malmi on 3 May 2009, with a large-scale sketch of “100,000 block generating nodes” and “millions of SPV clients.” Large-block advocates quote these paragraphs constantly, and fairly: they are not marginalia. Satoshi is arguing, in 2009, that terrestrial payment volume is an intended design point, and that hardware improvement is part of how the system gets there.
He also talked as if most users would not run full nodes
The same letters, and the public posts that follow, are the small-block stack's favourite material — also fairly. On 14 July 2010, in the Bitcointalk thread “Scalability,” he wrote:
“The design outlines a lightweight client that does not need the full block chain. In the design PDF it's called Simplified Payment Verification. […] 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.”
Source: topic 286, message 2947. Two weeks later, on 29 July, in “Scalability and transaction rate”:
“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.”
Source: topic 532, message 6306. On 5 August, in the flood-attack thread, he added that micropayments become more practical “if I implement client-only mode and the number of network nodes consolidates into a smaller number of professional server farms.” People who worry about home-node centralization read these sentences as a warning Satoshi did not feel as they do. People who want large blocks read them as permission to let full nodes professionalise. The sentences themselves do both things: they assume SPV, and they assume consolidation.
He added a 1 MB cap, and he said a higher limit could be phased in
The July and September 2010 commits are described in Jul–Sep 2010. Satoshi never published a design document that says “1 MB forever.” He also never published one that says “remove the cap in year N.” What he published, when Garzik offered an immediate 7 MB patch, is the 3–4 October refusal and the flag-day sketch already quoted. At the end of that year, answering Hearn's question about “the 500kb limit on block sizes” — the generate cap, MAX_BLOCK_SIZE_GEN, not the consensus cap — he wrote, on 29 December 2010:
“A higher limit can be phased in once we have actual use closer to the limit and make sure it's working OK.”
“Eventually when we have client-only implementations, the block chain size won't matter much. Until then, while all users still have to download the entire block chain to start, it's nice if we can keep it down to a reasonable size.”
“With very high transaction volume, network nodes would consolidate and there would be more pooled mining and GPU farms, and users would run client-only. With dev work on optimising and parallelising, it can keep scaling up.”
“Whatever the current capacity of the software is, it automatically grows at the rate of Moore's Law, about 60% per year.”
Source: Hearn thread 3. A large-block reading: the cap is temporary, phase it in, Moore's Law will carry the rest. A small-block reading: do not raise it until use is near the limit and the code has been shown to work; until SPV is real, keep the chain “reasonable”; consolidation is a consequence he is willing to describe, not necessarily a goal to accelerate. Both readings use words that are on the page. Neither is entailed by them.
He was cautious about fees, and about discussing them
In the 12 April 2009 Hearn letter he said he did not anticipate fees “anytime soon,” but described a market in which some nodes might require a minimum fee if running a node became burdensome. On 4 December 2009 he told Malmi there would be “free transactions until the block size is over 200K, with priority given to smaller transactions,” and then: “It's best if you don't talk about this transaction fee stuff in public. It's there for flood control. We don't want to give anyone any ideas.” Fees, in this early writing, are a spam defence and a distant miner-revenue story (“I'm sure that in 20 years there will either be very large transaction volume or no volume,” 14 February 2010, topic 48), not a programme for a permanently tight block.
Where the two sides over-read him
The large-block over-read is to treat “never really hits a scale ceiling” and “we can phase in a change later” as a binding instruction to raise MAX_BLOCK_SIZE on a particular 2015 or 2017 schedule. Satoshi did not give that schedule. He gave a mechanism (a height gate, an alert) and a condition (“if we get closer to needing it,” “once we have actual use closer to the limit”). The small-block over-read is to treat “Don't use this patch” as a philosophy of 1 MB, or to treat “server farms” as a reason never to raise the cap. He was telling Garzik not to run an incompatible patch in October 2010, when blocks were still negligible. He was describing an equilibrium of professional nodes and SPV clients, which is a scaling model, not a prohibition.
Amaury Séchet, who has no interest in helping the small-block side, put the documentary point as clearly as anyone on this show:
“When, when you read like all the quotes, like both sides have various quotes like that that they like to bring up, but usually those quotes, they are within a context. Like, like this one is a good example. It means that like Satoshi was opposed to run bigger blocks at that specific time in that specific way, but it doesn't really mean that he was opposed in general. On the other hand, when he added the limit, he said that it was a temporary measure, but never really explained like what the plan was to, you know, make it like what is, what is the final plan? […] He could have had like many ideas, maybe he was not even very sure himself. Right. But at the end of the day, all those quotes, they inform us, but they don't really give us a definitive answer.”
S17 E19, 01:09:55. Listen. One clarification, because accuracy here is the point of the essay: the commit messages for the 1 MB cap do not, in so many words, call it “temporary.” The “phase in later” language is in the October forum posts and the December email to Hearn. Séchet is summarising that cluster of remarks, not quoting a commit message. His conclusion still holds. The archive informs. It does not decide.