What would you like to read about?

  1. Homepage
  2. Posts
  3. The History of Ethereum's Block Size & Block Gas Limit

The History of Ethereum's Block Size & Block Gas Limit

May 27th, 2021

TL;DR

July 30, 2015

  • Ethereum launches with a block gas limit of 5000

August 7, 2015

  • Increase⬆ to 21000 on August 7
  • Increase⬆ to 3,141,592 over next 24 hours

March 4, 2016

  • Increase⬆ to 4,712,388

Sept 22-24 2016

  • Decrease⬇ limit to 1,000,000 in response to Network (DDoS) attacks
  • Increases⬆ limit to 1,500,000 later that day

October 14/15, 2016

  • Decrease⬇ limit to 500,000 as hard fork is prepared to fix the calls that are underpriced

October 23, 2016

  • Increased⬆ to 2,000,000 after hard fork and stability

November 24/25, 2016

  • Increase⬆ to 3,300,000

December 4/5/6, 2016

  • Increase⬆ to 4,000,000 as a final recovery move back prior-attack days

May 31-June 5, 2017 - June 30, 2017

  • Increase⬆ to 4,712,388 and then further to ⬆ to 6,720,000

December 10, 2017

  • Increase⬆ to 8,000,000

September 14-20, 2019

  • Increase⬆ to 10,000,000 (+25%)

June 19/20-July 24, 2020

  • Increase to ⬆ to 12,000,000 and then further increases⬆ to 12,500,000

April 19/20/21, 2021

  • Increased⬆ to 15,000,000

Part 1: A Peaceful Beginning

"Ethereum has a block size limit due to the block gas limit enforced by the consensus protocol. The block gas limit is dynamically adjusted by miners. In each block, miners can increase or decrease the block size by a maximum of the previous block size divided by 1024. This is defined in equations 45 to 47 in the formal Ethereum protocol specification and implemented by all Ethereum clients. Effectively this means that a majority of miners must agree for the block size cap to change." and "If a blockchain network is at capacity, with all blocks filled with transaction, then all the tx senders found utility in sending their txs with their particular fees." - Gustav Simonsson
LeastAuthority/ethereum-analyses
Contribute to LeastAuthority/ethereum-analyses development by creating an account on GitHub.

Key Events

July 30, 2015

August 7, 2015 - March 2016

  • Over the next day, the block gas limit increases⬆ to 3,141,592, the number chosen in the beginning. 3,141,592 is maintained through March 2016
  • 3,141,592 is "PI Million" aka a "Nothing up my sleeve number" aka something cryptographers find amusing (😂)
Nothing-up-my-sleeve number - Wikipedia
miner: gas limit strategy, target 3141592 & def gas price 50 Shannon by Gustav-Simonsson · Pull Request #1578 · ethereum/go-ethereum

March 4, 2016

  • Increased⬆ to 4,712,388
  • (1.5 times PI million)
  • The minimum gas price to relay a transaction is lowered from 50 gwei to 20 gwei:
cmd/utils: lower the min accepted gas price for relay and GPO by obscuren · Pull Request #2273 · ethereum/go-ethereum
This PR lowers the minimum accepted gas price to 20 shannon and lowers the GPO min to 20 shannon.

Part 2: The DAO Hack

Mid-2016

While not directly related to gas block limits, it's a key piece of history. Interestingly, the max block gas limit played a role in the soft fork that never was.

It also will lead us into the next chapter as this soft fork was determined to have a DOS vulnerability, thus limiting the choice from soft, hard, or neither to just fork or no fork.

June 17, 2016

  • The DAO is hacked
The DAO hack in eight minutes
One of the most famous attacks on an Ethereum smart contract was “The DAO” project. DAO (in general) stands for Decentralized Autonomous Organization and represents a smart contract that governs the…

June 24, 2016

  • The choice to hard or soft fork in response to the hack
DAO Wars: Your voice on the soft-fork dilemma
The last week was quite hectic for all of us in the Ethereum ecosystem. The DAO has shown us that it takes much more effort to write smart contracts than we originally anticipated; but also that it takes a surprising amount of debate to reach a consensus on issues of this scale. Everybody...
  • "Miners supporting the DAO soft-fork can do so by starting Geth 1.4.8 with --dao-soft-fork. This will cause the block gas limits to be lowered towards Pi million until the deciding block 1800000 (approx. 6 days from now) is reached. If the gas limit of this block is below or equal 4M, the soft-fork goes into effect and (all updating) miners will start blocking DAO transactions that release funds. Miners not supporting the DAO soft-fork can run Geth normally without any extra arguments needed. They will try to keep the block gas limits at the current 4.7 million. If the gas limit of the decisive block will be above 4M, the soft-fork is denied and (all updating) miners will accept DAO transactions that release funds."

June 28, 2016

  • JK LOL DON'T SOFT FORK THERE'S A DOS ATTACK VECTOR
Ethereum’s DAO Wars Soft Fork is a Potential DoS Vector
We identify a DoS vulnerability with Ethereum’s proposed soft-fork for The DAO, and urge the community to be prepared for attacks, and to speed up the timetable for resolving the hard fork decision.
The DOS vector and the Soft Fork for Miners
Parity Technologies builds core blockchain infrastructure for the decentralised web.

July 20, 2016

  • Hard fork executed:
Hard Fork Completed
We would like to congratulate the Ethereum community on a successfully completed hard fork. Block 1920000 contained the execution of an irregular state change which transferred ~12 million ETH from the “Dark DAO” and “Whitehat DAO” contracts into the WithdrawDAO recovery contract. The fork itself to…

July 23, 2016

  • Ethereum Classic emerges due to listing by Poloniex:

July 29, 2016

Rise of Replay Attacks Intensifies Ethereum Divide - CoinDesk
The recent split between ethereum and ethereum classic has opened the door to cross-network issues, problems that have ensnared several exchanges.

September 2, 2016

  • Geth 1.5 released. Includes a big under-the-hood overhaul of transaction priorities, dropping of old txs, and putting a limit on the maximum number of tx a queue can have.
Transaction pool optimizations by karalabe · Pull Request #2742 · ethereum/go-ethereum
Commit core, eth, miner: only retain 1 tx/nonce, remove bad onesOur transaction pool currently maintains arbitrarily many transactions with a given nonce. This isn't the best because only the ...

Part 3: The Network Attacks

Late-2016

  • While everyone is waking up and preparing for the first day of Devcon II in Shanghai, key EF folks and engineers had already been startled awake and were attempting to determine wtf is going on. They repurposed the press room as a war room due to connectivity. Also, just, lol.

Sept 18 2016

  • Jeff (master of geth): Pushes patch to geth in response to sustained attacks that caused geth to crash
Security alert – All geth nodes crash due to an out of memory bug
Security Alert Affected configurations: Geth Likelihood: High Severity: High Summary: geth nodes running out of memory and crashing on block https://etherchain.org/block/2283416 Details: TBD Solution: Geth 1.4.12 was released. Please update ASAP.

Sept 22-24 2016

  • Jeff (master of geth): We're still under attack. There are noticeable discrepancies between Parity and Geth, though not a consensus issue just a late-to-the-party issue. "It is highly recommended to switch to Parity mining. Use these settings: --cache-size-db 1024 --gas-floor-target 1000000 --gasprice 50000000000"
The Ethereum network is currently undergoing a DoS attack
URGENT ALL MINERS: The network is under attack. The attack is a computational DDoS, ie. miners and nodes need to spend a very long time processing some blocks. This is due to the EXTCODESIZE opcode, which has a fairly low gasprice but which requires nodes to read state information from...
  • This in turn decreases⬇ limit to 1,000,000
  • Later that same day, Vitalik gives updated instructions that make more tweaks, including increases⬆ limit to 1,500,000
Transaction spam attack: Next Steps
Today the network was attacked by a transaction spam attack that repeatedly called the EXTCODESIZE opcode (see trace sample here), thereby creating blocks that take up to ~20-60 seconds to validate due to the ~50,000 disk fetches needed to process the transaction. The result of this was a ~2-3x redu…

October 14/15, 2016

  • Hard fork is prepared to fix the calls that are underpriced
  • The network attacks re-emerge
  • Miners further encouraged to decrease⬇ limit to 500,000
  • Oct 13, 2016, Martin Swende: "While the recent patches have led to an overall increased resiliency in the client implementations, the attacks have also demonstrated that a lower-level change to the EVM pricing model is needed."
Announcement of imminent hard fork for EIP150 gas cost changes
During the last couple of weeks, the Ethereum network has been the target of a sustained attack. The attacker(s) have been very crafty in locating vulnerabilities in the client implementations as well as the protocol specification. While the recent patches have led to an overall increased resiliency…
FAQ: Upcoming Ethereum Hard Fork
The Ethereum network will be undergoing a hard fork at block number 2463000, which will likely occur between 12:00 and 13:00 UTC on Tuesday, October 18, 2016. A countdown timer can be seen at https://fork.codetract.io/. As a user, what do I need to do? Download the latest version of your...

October 23, 2016

October 31, 2016

  • Uncles and stuff from Daddy V:
Uncle Rate and Transaction Fee Analysis
One of the important indicators of how much load the Ethereum blockchain can safely handle is how the uncle rate responds to the gas usage of a transaction. In all blockchains of the Satoshian proof-of-work variety, any block that is published has the risk of howbecoming a “stale”, ie. not...

November 24/25, 2016

  • Increased⬆ to 3,300,000
  • More recovery from network attacks

December 4/5/6, 2016


Part 3: ICO Mania

2017

March 19, 2017

  • Vlad comments on lowering the block rewards for miners:
The case for smaller block rewards
About a week ago, a miner and friend mentioned to me that reducing block rewards would require another hard fork. I agreed. I realized only after replying that he meant that it would be a contentious…

May 8, 2017

  • Peter: Geth removes arbitrary gas price of 20 gwei and sets default of 18 gwei and other stuff to alleviate network congestion. Fun fact: "Side note: the PR reduces the default gas price from 20 Shannon to 18 Shannon. This is actually a noop since our miner code had a weird snippet that set its accepted gas limit to 90% of what the user specified. :| I removed that."
cmd, core, eth, miner: remove txpool gas price limits by karalabe · Pull Request #14442 · ethereum/go-ethereum
Historically our transaction pool enforced all transactions to meet a certain pricing threshold to accept and forward. This however is limiting the network from propagating low price transactions, ...

May 31-June 5, 2017 - June 30, 2017

What to do when there are too many pending Ethereum transactions
Once up a time, Ethereum blocks had plenty of room. Usually they had a few or even zero transactions, and once in a while you’d see a block…
  • June 27, 2017: Hudson:
Accounts, Transactions, Gas, and Block Gas Limits in Ethereum
Chinese translation (中文翻译) courtesy of EthFans French Translation (traduction française) courtesy of Ethereum France Korean Translation( 한국어 번역) courtesy of Yeji Park Russian Translation (Русский перевод) courtesy of Mark Poyda Spanish Translation (Traducción Española) courtesy of Wan Raitelli Turki…

December 10-14, 2017

  • November 28, 2017: Cryptokitties launches!
  • December 3, 2017: TechCrunch
People have spent over $1M buying virtual cats on the Ethereum blockchain – TechCrunch
Launched a few days ago, CryptoKitties is essentially like an digital version of Pokemon cards but based on the Ethereum blockchain. And like most viral sensations that catch on in the tech world, it’s blowing up fast. Built by Vancouver and San Francisco-based design studio AxiomZen, the game is th…

December 10, 2017

January 2018

  • As network and cats reach a total fever pitch, Nick Johnson adjusts gas price math to prevent a long-standing issue with gas price calculations: "geth recommends a gas price that is greater than that required for 50% of transactions in recent blocks. This can lead to gas price inflation as people take this figure and add a margin to it, resulting in a positive feedback loop." This issue was first noted but not fully realized in June 2017 due to volatility of gas prices. It was especially experienced by overworked exchanges bulk-sending transactions after an ICO where they would feedback-loop themselves.
  • The solution then was to "wait it out" (wait for gas prices to fall when ICO was over). CryptoKitties was so sustained the issues we had all been encountering for so long came to a head numerous times over in the exchange workgroup. All tensions were high, and Nick ended up pushing up this PR.
eth/gasprice: set default percentile to 60%, count blocks instead of transactions by Arachnid · Pull Request #15828 · ethereum/go-ethereum
The first should address a long term issue where we recommend a gas price that is greater than that required for 50% of transactions in recent blocks, which can lead to gas price inflation as peopl...

Interlude (2018 & 2019)

No changes to block gas limit

  • Bear market sinks in, everyone goes and hibernates
  • Graphs and analysis from 2015-2018:
Ethereum Gas Price Analysis
This Analysis examines The Time Series of Average Gas Price with considering Transactions, As the Ethereum Network traffic. The Average Gas Price data provided by Etherscan.io and On-chain data from…

September 14-20, 2019

  • Increases⬆ to 10,000,000 (+25%)
  • This is partially due to Tether's movement to using the Ethereum blockchain
  • Also, thanks to Tether's weirdness, geth's gas (limit) estimation would return a lower value than necessary. The fix is dropped here:
internal/ethapi: estimate gas usage automatically. by rjl493456442 · Pull Request #19508 · ethereum/go-ethereum
This PR introduces functionality to enable gas estimation for transaction signing or sending.Currently, the gas is not specified, then geth will use a hardcoded value(90k) as the default gas value...
  • And geth patches a hole that would allow people like us to do a lot of token balance lookups in a little amount of space via eth_call. Normal RPCs to getBalance would require a separate lookup for each token, but not if you use a contract running on-chain to give them all for you in one call via eth_call. The issue is less about allowing any of the calls and more the fact it allowed an UNLIMITED number of them which would crash folk's nodes. 😅
eth, les, geth: implement cli-configurable global gas cap for RPC calls by holiman · Pull Request #19401 · ethereum/go-ethereum
This PR adds a CLI-configurable global gas cap on eth_call and eth_estimateGas. Although node operators should not expose rpc api to untrusted users (like, the internet), even with http level load ...

Part 4: DeFi Summer, Farmers, Yields

One of the first mentions of "DeFi Summer"

June 19/20-July 24, 2020

  • Increases to ⬆ to 12,000,000 and then further increases⬆ to 12,500,000
  • June 19, 2020 (2nd largest miner at the time):

Part 5: Inefficiencies and Profits Intensify

Background

"We additionally show that high fees paid for priority transaction ordering poses a systemic risk to consensus-layer security. We explain that such fees are just one form of a general phenomenon in DEXes and beyond---what we call miner extractable value (MEV)---that poses concrete, measurable, consensus-layer security risks. We show empirically that MEV poses a realistic threat to Ethereum today. Our work highlights the large, complex risks created by transaction-ordering dependencies in smart contracts and the ways in which traditional forms of financial-market exploitation are adapting to and penetrating blockchain economies."

Flash Boys 2.0: Frontrunning, Transaction Reordering, and Consensus Instability in Decentralized Exchanges
Blockchains, and specifically smart contracts, have promised to create fairand transparent trading ecosystems. Unfortunately, we show that this promise has not been met. We document andquantify the widespread and rising deployment of arbitrage bots in blockchainsystems, specifically in decentra…

June 30, 2020

  • This PR changes the sorting of pool transactions with the same gas price. Previously transactions were sorted randomly (due to the way go maps work). Now they are sorted by the time that they were added to the mempool in ascending order. This is supposed to remove the incentive for spamming transactions to backrun a tx (#21350). Potential cons of this solution: This provides stronger incentives for miner collusion than the current solution
core: sort txs at the same gas price by received time by hendrikhofstadt · Pull Request #21358 · ethereum/go-ethereum
This PR changes the sorting of pool transactions with the same gas price.Previously transactions were sorted randomly (due to the way go maps work).Now they are sorted by the time that they were ...

Aug 28, 2020

  • The dark forest is first revealed to a much wider audience than Phil and other's research was originally
Ethereum Is a Dark Forest
Like any normal person, I spend a lot of time lurking in the #support channel of the Uniswap Discord. (Disclosure: Uniswap is a portfolio company of Paradigm.) On Wednesday afternoon, someone asked…

Flashbots Arrive

  • "Miner extractable value (MEV) is a measure devised to study consensus security by modeling the profit a miner (or validator, sequencer, or other privileged protocol actor) can make through their ability to arbitrarily include, exclude, or re-order transactions from the blocks they produce. MEV includes both ‘conventional’ profits from transaction fees and block rewards, and ‘unconventional’ profits from transaction reordering, transaction insertion, and transaction censorship within the block a miner is producing. The term MEV can be misleading as one would assume it is miners who are extracting this value. In reality, the MEV present on Ethereum today is predominantly captured by DeFi traders through structural arbitrage trading strategies; miners indirectly profit from these traders’ transaction fees."
Flashbots: Frontrunning the MEV Crisis
Flashbots is a research and development organization formed to mitigate the negative externalities and existential risks posed by miner-extractable value (MEV) to smart-contract blockchains.

Why now? What changed?

Ethereum Gas Prices: How the Mempool acts as a Competitive Market for Settlement
What drives the market for Ethereum gas fees? And how can you set your gas to ensure a reliable and predictable transaction experience — without overpaying. In this post, we explore what gas is and how you can accurately calculate fees.
  • Steadily increasing contract interactions (ie. there are more complex transactions on Ethereum than before which increases the absolute amount of MEV up for grabs.)
  • Token market cap exceeding ETH market cap (ie. MEV revenue in ERC-20 tokens is starting to compete with regular transaction fees paid in ETH.)
  • Transaction fees exceeding block rewards (ie. transaction fees have reached unprecedented levels partly due to traders pushing the gas prices up when competing for trading opportunities. It is a clue that MEV-related revenue may surpass block reward for miners.)
  • Adoption of generalized frontrunners (ie. an indicator of increased sophistication in MEV extraction.)
  • Adoption of permissioned mempools (ie. another indicator of such sophistication)
  • If you can't beat 'em, join 'em! (transparently!)
flashbots/pm
Everything there is to know about Flashbots. Contribute to flashbots/pm development by creating an account on GitHub.

February 22, 2021

  • Quantifying MEV: Introducing MEV-Explore v0:
Quantifying MEV: Introducing MEV-Explore v0
MEV is a metric representing the total value that can be extracted permissionlessly from the re-ordering, inclusion or censoring of transactions within a block being produced on a blockchain. So far…

April 19/20/21, 2021

  • Gas prices plummet from 1000 GWEI peaks, 500 GWEI "normal" to 20 GWEI normal in days. 🤔
GasNow

May 2021 and Beyond

  • TBD :)

Further References & Resources

Talk To Us & Share Your Thoughts

A note: Your support enables MyCrypto to continue developing non-custodial, user-friendly cryptocurrency management solutions as a public good. We love helping the community stay safe and informed through efforts such as CryptoScamDB and free educational articles, and are happy to walk you through solving any problems we can help with even if you are asking for help with something that isn’t directly related to MyCrypto. We are currently a small team with limited resources, and we don’t charge for most features on the MyCrypto apps. Please consider making a donation or purchasing a MyCrypto Membership, which will come with more exclusive features and perks as we scale. Your contributions help us continue to help you and the rest of the crypto community.

MyCrypto is an open-source tool that allows you to manage your Ethereum accounts privately and securely. Developed by and for the community since 2015, we’re focused on building awesome products that put the power in people’s hands.

© 2021 MyCrypto, Inc.

Donate

Subscribe to MyCrypto

Get updates from MyCrypto straight to your inbox!

By submitting your email, you affirmatively agree to our Privacy Policy