Satoshi’s Best Kept Secret: Why is There a 1 MB Limit to Bitcoin Block Size

in #bitcoin7 years ago

725_Ly9jb2ludGVsZWdyYXBoLmNvbS9zdG9yYWdlL3VwbG9hZHMvdmlldy81YmYyMDliYjMzMTRkMjlmNDRjNGEwNTY0YmNmOTFmMC5qcGc=.jpg
Anybody familiar with Bitcoin is aware of the vexing problem caused by the 1 MB blocksize limit and the controversy that arose over how to scale the network. It’s probably worthwhile to look back on how that limit came to exist, in hopes that future crises can be averted by a solid understanding of the past.

A long time ago, in a land far away
In 2010, when the blocksize limit was introduced, Bitcoin was radically different than today. Theymos, administrator of both the Bitcointalk forum and /r/bitcoin subreddit, said, among other things:

"No one anticipated pool mining, so we considered all miners to be full nodes and almost all full nodes to be miners.

I didn't anticipate ASICs, which cause too much mining centralization.

SPV is weaker than I thought. In reality, without the vast majority of the economy running full nodes, miners have every incentive to collude to break the network's rules in their favor.

The fee market doesn't actually work as I described and as Satoshi intended for economic reasons that take a few paragraphs to explain."

It seems that late in 2010, Satoshi realized there had to be a maximum block size, otherwise some miners might produce bigger blocks than other miners were willing to accept, and the chain could split. Therefore, Satoshi inserted a 1 MB limit into the code.

And he kept it a secret.

Secret squirrels
Yes, Satoshi kept this change a secret until the patch was deployed, and apparently asked those who discovered the code on their own to keep quiet. He likely kept things quiet to minimize the chances that an attacker would figure out how to use an unlimited blocksize to DOS the network.

Theymos puts it:

“Satoshi never used IRC, and he rarely explained his motivations for anything. In this case, he kept the change secret and told people who discovered it to keep it quiet until it was over with so that controversy or attackers wouldn't cause havok with the ongoing rule change.”

It’s also likely that Satoshi never expected the 1 MB blocksize to be a problem. At the time, the average blocksize was orders of magnitude smaller than 1 MB, and it looked like there would be time enough to devise a solution. Satoshi himself said, of the blocksize limit:

“We can phase in a change later if we get closer to needing it.”

And again:

“It can be phased in, like:

if (blocknumber > 115000)

maxblocksize = largerlimit

It can start being in versions way ahead, so by the time it reaches that block number and goes into effect, the older versions that don't have it are already obsolete.

When we're near the cutoff block number, I can put an alert to old versions to make sure they know they have to upgrade.”

It’s apparent that Satoshi foresaw the removal of the blocksize limit as trivial and had no idea that such a minor code change would generate a firestorm.

Foreseeable problems
Bitcointalk user “kiba” presciently commented, shortly after the cap was created:

“If we upgrade now, we don't have to convince as much people later if the bitcoin economy continues to grow.”

In response to Satoshi’s comment that the limit could always be removed if necessary to support higher transaction capacity, Jeff Garzik pointed out:

“IMO it's a marketing thing. It's tough to get people to buy into a system, if the network is technically incapable of supporting high transaction rates.”

Clearly the warnings were present.

Why not bigger?
Many have asked why Satoshi didn’t create a larger blocksize, like 8 MB. The answer is three-fold:

It wasn’t needed, as even 1 MB was far larger than the largest blocks that had ever been mined.

It was technically easy to change, simply substituting one value in the code for another.

Larger blocks create technical challenges.

Back in 2010, Internet technology was such that larger blocks would not have propagated properly. In 2015, Theymos recalled:

“One obvious and easy-to-understand issue is that in order to be a constructive network node, you need to quickly upload new blocks

Souce:
www.cointelegraph.com/news

Sort:  

@minnowpond1 has voted on behalf of @minnowpond. If you would like to recieve upvotes from minnowponds team on all your posts, simply FOLLOW @minnowpond.

        To receive an upvote send 0.25 SBD to @minnowpond with your posts url as the memo
        To receive an reSteem send 0.75 SBD to @minnowpond with your posts url as the memo
        To receive an upvote and a reSteem send 1.00SBD to @minnowpond with your posts url as the memo

Coin Marketplace

STEEM 0.24
TRX 0.21
JST 0.036
BTC 97939.48
ETH 3363.31
USDT 1.00
SBD 3.31