• Ethereum Classic is a decentralized network that supports smart contracts. It was created by Vitalik Buterin in 2013. Following the DAO hack in 2016, several members of the Ethereum community rejected the idea of a hard-fork to revert transactions (and return funds to the DAO participants), leading to the split between Ethereum and Ethereum Classic.

  • Ethereum Classic (ETC) parted away from Ethereum at block 1,920,000 (July 20th 2016) to retain the original version of the network, reinforcing the blockchain’s core characteristic of immutability. Since its ICO in 2015, Ethereum has relied on Proof of Work (PoW); Ethereum Classic shares its early history with its first (common) block being mined in July 2015.

  • Like Ethereum, the network is fueled by a cryptocurrency named ether (classic). It comprises an open-source, globally decentralized computing infrastructure, which executes programs called smart contracts.

  • Similarly, Ethereum Classic is based on an account model to record state changes. It relies on the Ethereum Virtual Machine (EVM) with two types of addresses: externally owned addresses (EOAs) and contract addresses that are deployed on the EVM.

  • As of March 2020, Ethereum Classic’s hashrate is much lower than Ethereum’s and the level of on-chain activity is also inferior to Ethereum's. With Ethereum planning to part away from Proof-of-Work (to introduce PoS with ETH 2.0), Ethereum Classic plans on persisting as the immutable Proof of Work version of Ethereum.


1. What is Ethereum Classic (ETC)?

Since the fork occurred in 2016, Ethereum Classic and Ethereum share many similarities:

  • Ethereum Classic is an open-source, globally decentralized computing infrastructure, executing programs referred to as smart contracts.

  • Ethereum Classic’s supply was pre-mined (72 million). Among these pre-mined ethers, 60 million were sold during an Initial Coin Offering in 2015.

  • Its PoW algorithm is Ethash, an algorithm that was initially designed to prevent ASIC mining. Block time has a target of ~15 seconds (with a maximum block size of 1,500,000 gas). Mining rewards are paid at a fixed rate of 4 ETC (vs. Ethereum’s 2 ETH) but will be reduced in the future to 3.2 ETC (at block 10,000,000).

  • Ethereum Classic is (quasi) Turing-complete, but each transaction requires gas, with price fluctuation based on real-time bandwidth use. Hence, transaction fees are a function of storage needs, bandwidth use, and computational complexity. Gas is used to prevent infinite execution of programs; it introduces an execution stopper equal to the maximum fees set for a transaction.

2. Ethereum Classic’s core features

These core features are similar to Ethereum. Click here to read the full report about Ethereum.

2.1 Account-based model

In an account-based model, a typical transaction (between accounts A and B) involves the transfer of ethers from one wallet to another: (1) debit from account A (2) credit to account B.

In comparison, a UTXO transaction works as follows: an individual gives money and receives change (i.e., retains unspent amount). Ethereum maps all accounts into balances. Therefore, a send operation reduces one account’s balance and increases another account's balance.

According to Ethereum’s design rationale explanations, benefits of the account model are large space-saving(transactions require a single signature and produce one output), greater fungibility(harder to blacklist funds), simplicity(easier to build DApps), and constant light client reference (light clients can read information from the state tree in any specific direction). Despite these advantages, the account model may facilitate double spendings and replay attacks.

2.2 Global state and account structure

At its core, Ethereum Classic is a transaction-based state machine. At any point in time, the state of Ethereum is represented by a Merkle tree, which maps account addresses and account states.

The state of Ethereum Classic is updated by the addition of each new block. Each block contains valid transactions and is linked to its previous block by its header.

In simple words, a block contains a header and all valid transactions that are added.

帐户模型

Like Ethereum, there are two types of accounts within Ethereum Classic:

  • Externally owned accounts (EOA) are controlled by private keys and have no code associated with them. Individuals use their private keys to perform actions. An EOA only comprises its nonce (i.e., number of transactions sent) and the associated balance (i.e., number of ethers owned by the account).

  • Contract accounts are controlled by their contract code, which is immutable once deployed. In addition to nonce and balance, a contract account also stores its storage hash (i.e., a hash of the root of the Merkle Tree) and code hash (i.e., the hash of the EVM code for this specific account)

帐户结构

Sources: Binance Research, modified from the original work of Vaibhav Saini.

2.3 EVM and smart contracts

The typical process to deploy a contract accounts on the Ethereum blockchain works as follow:

  • The contract is written in a high-level language (e.g., Solidity, Vyper).

  • The code is compiled to bytecode, and ABI is created.

  • These are deployed by a transaction (with gas fees) onto the Ethereum blockchain, after being relayed from nodes.

EVM

Source: Binance Research, modified from the original work of Li, X., Jiang, P. et al (2018).

The Ethereum Virtual Machine (EVM) is the computer software (or computation engine) that interprets bytecode instructions for the Ethereum blockchain. Specifically, the EVM handles any smart-contract logic, ranging from its deployment to the execution.

Based on 256-bit word format, the EVM has a simple stack-based architecture with multiple data components:

  • Program code ROM: an immutable program with the bytecode deployed for execution of the contract.

  • Memory: a component to store data temporarily.

  • Storage: a permanent component to store data.

ERC-20 tokens

An ERC-20 token is a token that implements a standardized interface defined in EIP-20. An example of the implementation by Consensys is available here.

Despite Ethereum’s token standards being fully compatible on Ethereum Classic, it has displayed a much lower level of adoption and interest from third parties.

Auction contracts

Auction contracts are a natural fit for a smart-contract on Ethereum/Ethereum Classic. For instance, one can create a blind auction where any EOA can send bid offers to the contract. The highest bidder wins it. An example of an implementation of an open auction is available in the documentation of Solidity.

3. Economics and supply distribution

Ethereum Classic’s economics rely solely on Proof of Work, following the original ICO in 2015.

Ethereum’s ICO was conducted in the first half of 2015 for 60 million ethers (collected in BTC).

Block mining is based on the Ethash function, which itself relies on Keccak. Ethash was designed to prevent ASIC participation, owing to features such as memory hardness. However, it has been gamed and blocks have become mostly mined by ASIC devices for a few years.

Unlike Ethereum, the total supply of Ethereum Classic is capped, with an inflation rate that decays over time. Its total maximum supply will be ~ 210-230 million ETC.

4. Project team

The main entities contributed to Ethereum Classic can be found in the table below.
For more information on the teams who contributed to the early stages of Ethereum, click here for the full report about Ethereum.

Team Name

Mission

ETC Labs attempts to ‘fulfill the promise of blockchain to improve people’s lives using Ethereum Classic”, with a focus on establishing partnerships and incubating start-ups.

ETC Core delivers infrastructure tooling and maintains both the Core-GETH client & the EVM-LLVC backend project.

ETC Cooperative supports the growth and development of Ethereum Classic on three fronts: development, marketing, and community.

ChainSafe is a team of developers working on web3 solutions and the development of an infrastructure to solve client needs.

IOHK (the main entity supporting Cardano) supports Mantis, a node client for Ethereum Classic, which allows users to manage their ETC.

5. Additional resources and references