📈 Get daily crypto insights that make you smarter about your money

Ethereum Classic Activates First Hard Fork to Patch DoS Attack Vulnerability at Block 2.5 Million

Ethereum Classic reached a critical milestone on October 25, 2016, as the network successfully activated its first-ever hard fork at block 2,500,000. The Gas Reprice hard fork, specified in ECIP-1050, was designed to close a major attack vector that had plagued both the Ethereum and Ethereum Classic networks for weeks, rendering transactions slow and nodes unstable.

TL;DR

  • Ethereum Classic activated its first hard fork at block 2,500,000 on October 25, 2016
  • The fork repriced gas costs for certain computational operations exploited in recent DoS attacks
  • Over 19 million empty accounts had been created by attackers using the SUICIDE opcode, compared to roughly 777,000 real accounts
  • The transition completed without a network split, and hashrate remained stable
  • Both Classic Geth and Parity clients implemented the hard fork code

Weeks of Relentless Attacks Prompted Emergency Action

Since the Devcon2 Ethereum Developers Conference on September 18, 2016, the Ethereum network — including both the ETH and ETC chains — had been under sustained denial-of-service attacks. The attacker exploited inadequately priced gas costs for certain I/O-heavy computational operations in the Ethereum Virtual Machine, allowing them to flood the network with spam transactions at minimal cost.

The impact was severe. Blockchain synchronization became painfully slow and unpredictable, valid transactions took an extraordinarily long time to be included in blocks, and full nodes running both Geth and Parity clients crashed under the strain of processing the spam transaction bloat. Some users reported having to increase transaction fees by as much as 45 times the normal rate just to get their transactions confirmed.

One of the most damaging attack vectors involved the SUICIDE opcode, which the attacker used to create over 19 million empty accounts on the network. By comparison, there were only approximately 777,000 real accounts at the time. This massive state bloat made it extremely difficult for nodes to sync and process the blockchain.

The Gas Reprice Solution

While client-side code fixes provided some relief, they could only do so much. A fundamental protocol-level change was required to permanently close the attack vector. The solution was to reprice certain EVM opcodes to better reflect their actual computational cost, making spam attacks prohibitively expensive.

The Ethereum (ETH) chain had already activated its version of the gas reprice hard fork on October 19, 2016, at block 2,463,000 via EIP-150. However, the Geth 1.4.18 release from the Ethereum Foundation did not properly handle the --oppose-dao flag when implementing changes at block 2,463,000, making it incompatible with the Ethereum Classic chain. This necessitated a separate implementation timeline for ETC.

The Ethereum Classic development team implemented and tested the fork code, building on the ECIP-1050 specification, which mirrored the technical approach of EIP-150 but with ETC-specific client support. The hard fork was activated at ETC block 2,500,000.

A Smooth Transition

Block 2,500,000 passed without any issues, and the ETC Gas Reprice hard fork went live successfully. Reports from the ETCstats network monitor confirmed there was no network split, and the ETC network hashrate did not change in any significant way — a strong signal of miner and infrastructure support for the upgrade.

Users of light wallets such as Jaxx, the ClassicEtherWallet web wallet, and the Chrome extension were unaffected by the transition. Exchange-held ETC balances also remained safe throughout the process. However, users of Mist or Ethereum Wallet were advised to switch to either Parity or the Classic version of Geth as their backend client.

A Philosophical Milestone

The successful completion of the Gas Reprice hard fork held significance beyond just the technical fix. From its inception, the Ethereum Classic community had established a clear principle: hard forks are only acceptable to correct protocol-level bugs, fix security vulnerabilities, or provide functionality upgrades — not to bail out failed contracts or serve special interests. The gas reprice fork fit squarely within this framework, addressing a genuine security vulnerability without violating any of the community’s core principles.

This was particularly notable given the context of 2016, when the original Ethereum chain had already undergone the controversial DAO hard fork in July, which Ethereum Classic chose not to follow. The Gas Reprice fork demonstrated that ETC could independently maintain and upgrade its protocol while adhering to its stated principles.

The Attacker Connection

Investigations into the attacks revealed intriguing connections. Analysis of the attacker’s transactions traced them through the EthPool and DwarfPool mining pools, potentially revealing IP addresses. Some of the attacking accounts donated small amounts of Ethereum Classic (ETC) to the Ethereum Classic development account — the same address that the DAO hacker had contributed 1,000 ETC to when accessing their funds. The identical donation amounts and patterns led some researchers to speculate that the DoS attacker could be the same individual responsible for the $50 million DAO exploit.

Why This Matters

The Gas Reprice hard fork of October 25, 2016 was a defining moment for Ethereum Classic as an independent blockchain. It proved that the ETC community and its developers could respond quickly and effectively to security threats, implement necessary protocol upgrades, and coordinate a smooth hard fork transition across exchanges, mining pools, and wallet providers — all without compromising their philosophical commitment to immutability. For the broader crypto ecosystem, it also highlighted the importance of properly pricing computational operations on smart contract platforms, a lesson that would influence gas tokenomics design for years to come.

Disclaimer: This article is for informational purposes only and does not constitute financial advice. Past events and network upgrades do not guarantee future performance. Always conduct your own research before making any investment decisions.

🌱 FOR BUSINESSES BitcoinsNews.com
Reach 100K+ Crypto Readers
Sponsored content, press releases, banner ads, and newsletter placements. Put your brand in front of Bitcoin's most engaged audience.

25 thoughts on “Ethereum Classic Activates First Hard Fork to Patch DoS Attack Vulnerability at Block 2.5 Million”

  1. coordinating Geth and Parity for an emergency fork in 2016 with basically zero tooling compared to today. those devs carried the entire ecosystem on their backs

  2. The entire Gas Reprice fix came down to repricing a handful of underpriced opcodes. Months of chain instability over gas costs that should have been settled at the design stage. ECIP-1050 reads like an apology letter.

  3. 19 million empty accounts from the SUICIDE opcode attack vs 777k real ones. the spam ratio was insane, no wonder the chain was choking

    1. 19 million spam accounts versus 777k real ones. a 25:1 noise ratio and the chain still survived. says a lot about ethereum client resilience

    2. opcode_watcher

      gasless_ the SUICIDE opcode exploit was so simple it hurt. create account for 0 gas, self-destruct to refund gas, repeat. attacker found the one cost asymmetry that mattered

      1. the SUICIDE opcode refund mechanic was such an obvious exploit in hindsight. zero cost account creation with gas refund was a ticking time bomb

        1. gas_war_vet the refund mechanic was a time bomb. Ethereum gas pricing assumed opcodes were priced correctly. SUICIDE proved that assumption catastrophically wrong

          1. gas_refund_skep

            Emese T. SUICIDE paying a gas refund was the core design flaw. incentivizing self-destruction to save gas is backwards economics. glad EIP-6 killed it

      2. opcode_watcher the SUICIDE gas refund exploit was elegant in the worst way. zero cost account creation at scale, basically a DOS for fractions of a cent

  4. Completed without a network split and stable hashrate. Say what you will about ETC, but the technical execution of this fork was solid under pressure.

    1. Marek the hashrate staying stable is more impressive than people realize. ETC had way less miner commitment back then compared to what it gained later

  5. 19 million empty accounts from the SUICIDE opcode attack vs 777k real ones. the ratio is insane. attackers basically created 25 ghost accounts for every real user on the network

  6. both Geth and Parity shipping the fix simultaneously is underrated. try coordinating a multi-client fork today with the client diversity we have now

    1. coordinating a hard fork across Geth and Parity with zero network split in 2016 was quietly one of the best technical executions in blockchain history

      1. rpc_node_ coordinating Geth and Parity without a chain split in 2016 was actual engineering. today a fork means 7 clients and 3 months of drama on Twitter

        1. fork_choreo_ two clients coordinating without chain split in 2016 was cleaner than most 2024 upgrades. the complexity of client diversity today makes emergency forks way more dangerous

        2. fork_choreo_ 2016 coordination was phone calls between 12 people. today you need 7 client teams to agree before anyone even schedules the call lol

  7. 19M junk accounts from one opcode bug vs 777k real users. the fact that Geth handled the cleanup without crashing is the real story here

    1. node_archive_42

      Lukas B. 19M junk accounts from one opcode is insane. modern Ethereum deals with state bloat complaints but at least nobody spammed 25x the real user base into existence

    2. 19M junk accounts and the chain kept chugging. run that today with full state nodes and the disk cost alone bankrupts every hobbyist operator

      1. The quiet part is that the fork itself swept away most of those 19M empty accounts. State cleanup by consensus, no drama, and it actually worked.

        1. zero drama because two clients and shared panic. run that fork today with 7 execution clients and you get three chains and a blame thread on twitter

Leave a Comment

Your email address will not be published. Required fields are marked *

BTC$78,429.000.0%ETH$2,481.28-0.2%SOL$103.18-0.2%BNB$740.53-1.2%XRP$1.42-0.8%ADA$0.2172-1.8%DOGE$0.0884-1.5%DOT$1.13-7.8%AVAX$7.94-0.6%LINK$11.93-5.4%UNI$6.61-3.1%ATOM$1.88+5.0%LTC$54.010.0%ARB$0.1540-8.3%NEAR$2.57+9.1%FIL$0.8459+0.5%SUI$0.7980-1.6%BTC$78,429.000.0%ETH$2,481.28-0.2%SOL$103.18-0.2%BNB$740.53-1.2%XRP$1.42-0.8%ADA$0.2172-1.8%DOGE$0.0884-1.5%DOT$1.13-7.8%AVAX$7.94-0.6%LINK$11.93-5.4%UNI$6.61-3.1%ATOM$1.88+5.0%LTC$54.010.0%ARB$0.1540-8.3%NEAR$2.57+9.1%FIL$0.8459+0.5%SUI$0.7980-1.6%
Scroll to Top