The History of the Ethereum Hard Fork and the Birth of Ethereum Classic

·

Most hard forks are planned as part of a project's roadmap and include updates that are widely agreed upon by the community; this is typically referred to as consensus. However, some hard forks do not always maintain consensus, leading to multiple, distinct blockchains. This was precisely the case with the events that caused the split between Ethereum and Ethereum Classic.

Understanding Ethereum Classic (ETC)

Ethereum Classic emerged after a portion of the Ethereum community chose to continue using the original blockchain, rejecting a time-sensitive hard fork known as the "DAO Hard Fork." On July 20, 2016, at block height 1,920,000, Ethereum implemented a hard fork that introduced an irregular state change to refund approximately 3.6 million Ether stolen from a smart contract called The DAO.

Some community members disagreed with this change, arguing that it violated Ethereum's core principle of immutability. They chose to continue operating the original chain under the name Ethereum Classic. While the split was initially ideological, both chains have since evolved into separate and independent entities.

The DAO: A Decentralized Autonomous Organization

The DAO was created by Slock.It, a skilled development team that included former Ethereum founding members. Slock.It envisioned The DAO as a community-driven funding mechanism for projects. The core idea was that proposals would be submitted, curators would manage them, and funds would be raised from investors within the Ethereum community. If a project proved successful, investors would receive a share of the profits.

The DAO was also one of the earliest experiments with Ethereum-based tokens. Instead of funding projects directly with Ether, participants exchanged their Ether for DAO tokens, used those tokens to vote on project funding, and could later exchange them back for Ether.

The DAO token sale ran from April 5 to April 30, 2016, and raised nearly 14% of all Ether in circulation at the time, valued at approximately $150 million.

The Re-Entrancy Vulnerability

On June 9, developers Peter Vessenes and Christian Reitwiessner reported that most Ethereum-based contracts managing funds could be vulnerable to a bug that would allow an attacker to drain contract funds. A few days later, on June 12, Stephen Tual, a founder of Slock.It, announced that The DAO's code was not susceptible to the bug described. This provided temporary relief to concerned DAO contributors until June 17, when an unknown attacker began exploiting The DAO using a variant of the vulnerability described on June 9. Ultimately, the attacker drained approximately 3.6 million Ether from The DAO.

Simultaneously, a group of volunteers calling themselves the Robin Hood Group (RHG) began using the same vulnerability to extract the remaining funds. On June 21, RHG announced they had secured roughly 70% of the remaining Ether in The DAO—about 7.2 million Ether—and planned to return it to the community. Their quick thinking and actions were widely praised for protecting a significant portion of the community's funds.

Technical Explanation of Re-Entrancy

A more detailed explanation was provided by Phil Daian, but in short, the bug allowed a contract function on the Ethereum Virtual Machine to be called multiple times simultaneously. This enabled the DAO attacker to repeatedly request Ether withdrawals before the contract had updated its records to reflect the initial withdrawal.

How the Re-Entrancy Attack Worked

Imagine you have $100 in your bank account, and you can submit withdrawal slips for any amount to the bank teller. The teller gives you the amount for each slip in sequence and only records your total withdrawal after processing all slips. What if you presented three slips for $100 each? Or three thousand?

In other words, the process was:

  1. The DAO attacker requested the DAO contract to withdraw DAO tokens.
  2. Before the contract updated its internal record of the withdrawal, the attacker requested another withdrawal.
  3. Step 2 was repeated as many times as possible.
  4. The contract eventually recorded a single withdrawal, unaware of the multiple transactions that had occurred.

The DAO Hard Fork

A safety feature in The DAO mandated a 28-day delay on all withdrawal requests. This gave the community a brief window to discuss how to respond to the exploit. From June 17 to July 20, the DAO attacker would be unable to convert their stolen DAO tokens into Ether.

Developers focused on finding a viable solution, exploring multiple avenues in a short time. These included a proposed DAO soft fork announced on June 24, which aimed to delay withdrawals until a consensus was reached, and a DAO hard fork announced on July 15, which proposed irregular state changes to reverse the effects of the attack.

On June 28, a Denial-of-Service (DoS) vulnerability was discovered in the proposed soft fork code, leading to the conclusion that a hard fork was the only viable option. The DAO hard fork would move all Ether invested in The DAO to a new refund smart contract, allowing the original owners to claim a full refund. This provided a solution to return the stolen funds but also meant interfering with the balances of specific addresses on the network. A portion of Ether remained in childDAOs, and a group of trustees was appointed to manually authorize the return of these remaining funds, then valued at approximately $6-7 million.

Multiple Ethereum client teams created software versions that allowed users to decide whether to enable the fork. A key debate was whether the fork should be opt-in (default: no fork) or opt-out (default: fork). A vote was held on Carbonvote from July 15 until July 16, when it closed at block 1,894,000. Of the 5.5% of the total Ether supply that participated, about 80% (roughly 4.5% of total supply) voted for the opt-out option. A quarter of the votes for opt-out came from a single address.

The final decision was to implement an opt-out hard fork. Those opposed to the DAO hard fork needed to change a configuration option in their client software to not follow the fork.

On July 20, at block 1,920,000, Ethereum implemented the DAO hard fork, creating two separate chains: one that supported the irregular state change and one that opposed it.

While the forked Ethereum chain (now the main Ethereum chain) gained the majority of the mining power, a significant portion of the community began supporting the original blockchain, which later became known as Ethereum Classic. Within days, several exchanges began listing both Ether (ETH) on the new chain and Ethereum Classic (ETC) on the original chain. Due to the nature of the fork, every user holding Ether at the time of the split now held funds on both blockchains. After Poloniex listed ETC on July 24, the market quickly established a value for ETC.

The Hard Fork Debate

In the weeks leading up to the DAO hard fork, significant debate occurred on the /r/ethereum subreddit. Key arguments are summarized below.

ArgumentForAgainst
Accountability/JusticeThe community has a responsibility to determine if a theft occurred and should correct it. There is a moral imperative.The responsibility for determining theft and correction should lie solely with legal institutions. Bias cannot be eliminated if affected parties are involved.
The DAO's ProtocolMost DAO participants could not properly assess the code, so they did not truly agree to be bound by it.The DAO's terms and conditions explicitly stated that "...The DAO’s code controls and sets forth all terms of The DAO Creation."
Blockchain ImmutabilityImmutability is a social construct; therefore, it can be changed if the majority agrees.Immutability is a social construct; therefore, enforcing it is of paramount importance.
Opt-In vs. Opt-OutThe community can choose whether a hard fork is opt-in or opt-out. A vote decided on opt-out.Historically, hard forks are opt-in (e.g., Bitcoin). The opt-out vote only represented 4.5% of the total supply in about one day.

Timeline of the DAO Hard Fork Events

Ethereum and Ethereum Classic: The Divergence

While the initial split centered on The DAO, Ethereum and Ethereum Classic are now independent projects. Their complete differences are evolving and too broad to cover in full here, but it is notable that the chains have significant divergences in core development and community structure.

Technical Differences

EVM Compatibility

For the most part, the two networks remain highly compatible. Contract code generated for one chain generally runs as expected on the other, though minor differences exist in the EVM operation due to separate implementation of various Ethereum Improvement Proposals (EIPs).

Core Network Development

Core network development—the code that runs the network—is typically undertaken by specialized, decentralized groups.

EthereumEthereum Classic
Primarily the Ethereum Foundation and community volunteers.ETCDEV, IOHK, and community volunteers.

Ideological Differences

One of the biggest material differences between Ethereum and Ethereum Classic is ideology, which manifests in two primary ways: immutability and community structure.

Immutability

In the context of blockchain, immutability refers to the preservation of the blockchain's history.

EthereumEthereum Classic
Follows a philosophy often described as "governance." This allows participants to vote, with varying degrees of representation, to change the blockchain in certain cases.Adheres to the philosophy that once data is on the blockchain, it cannot be modified. This is a principle shared with Bitcoin, Litecoin, and other cryptocurrencies.

Community Structure

While blockchains are designed to be decentralized, the ecosystems around them often feature centralized elements.

EthereumEthereum Classic
Key communication channels and repositories (e.g., /r/ethereum, ethereum.org, primary GitHub) are largely associated with the Ethereum Foundation.Key assets (e.g., /r/ethereumclassic, ethereumclassic.org, various GitHub orgs) are managed by separate, independent entities.

Timeline of Other Notable Ethereum Forks

Several other projects have forked from Ethereum. Some are hard forks that split directly from the main network. Others are soft forks or independent networks that use Ethereum's client software but share no history with the mainnet. It's also worth noting that some projects claiming to be forks are actually ERC-20 tokens on the Ethereum network.

Frequently Asked Questions

What was The DAO?
The DAO was a pioneering decentralized autonomous organization built on Ethereum. It functioned as a venture capital fund where investors used DAO tokens to vote on project proposals. A critical vulnerability in its code led to the theft of a large amount of Ether, triggering a major crisis in the Ethereum community.

What is the main difference between ETH and ETC?
The primary difference is philosophical. Ethereum (ETH) implemented a hard fork to reverse the DAO hack, prioritizing community intervention in extreme cases. Ethereum Classic (ETC) rejected this fork, upholding the principle of absolute blockchain immutability above all else. This fundamental ideological split has led to separate development paths and communities.

What is a re-entrancy attack?
A re-entrancy attack is a smart contract vulnerability where an external malicious contract makes recursive calls to a vulnerable function before its initial execution is complete. This can allow the attacker to drain funds, as the victim contract's balance isn't updated until after the function finishes, enabling multiple unauthorized withdrawals. To explore more strategies for securing smart contracts, you can find additional resources here.

Could a fork like the DAO fork happen again?
While any community can propose a fork, the political and economic consequences of the DAO fork were significant. The event established a strong precedent and made it clear that such actions are highly divisive. The barriers to achieving consensus for a similar state-changing fork are now considerably higher due to the larger, more established, and more diverse ecosystem.

How did the fork affect Ethereum owners?
At the moment of the fork, every address holding Ether on the original blockchain suddenly held an equal amount of both ETH (on the new forked chain) and ETC (on the original classic chain). These two assets then traded independently on supporting exchanges, with their values determined by the market.

Are Ethereum and Ethereum Classic technically compatible?
While they share a common origin and remain largely technically similar, they are now entirely separate blockchains with different tokens (ETH and ETC), different consensus rules in some areas, and independent development roadmaps. Transactions on one chain do not affect the other.