Skip to main content
Updates

Atlantis Network Upgrade Brings Byzantium to ETC

Ethereum Classic activated Atlantis at block 8,772,000 on September 12, 2019, closing a two-year EVM gap with 10 Byzantium EIPs.

ETC Community
Ethereum Classic Community
4 min read

Ethereum Classic activated the Atlantis network upgrade at block 8,772,000 on September 12, 2019, achieving Spurious Dragon and Byzantium EVM equivalence. Atlantis was specified in ECIP-1054 and closed a two-year compatibility gap with Ethereum.

Included EIPs

  • EIP-100 — Difficulty Adjustment for Uncles: Modified difficulty calculation to target mean block time including uncle blocks, providing more stable block production.
  • EIP-140 — REVERT Instruction: Added the REVERT opcode, allowing contracts to stop execution, revert state changes, and return unused gas. Essential for Solidity's require() and revert() patterns — before Atlantis, failed contracts consumed all remaining gas.
  • EIP-161 — State Trie Clearing: Removes empty accounts from state. Cleans up accounts created during the 2016 Shanghai DoS attacks that bloated the state trie.
  • EIP-170 — Contract Code Size Limit: Caps deployed bytecode at 24,576 bytes. Prevents denial-of-service through arbitrarily large contract deployments.
  • EIP-196 — alt_bn128 Addition and Scalar Multiplication: Precompiles for elliptic curve operations on the BN128 curve. Foundation for zk-SNARK verification and privacy protocols.
  • EIP-197 — alt_bn128 Pairing Check: Precompile for bilinear pairing checks on BN128. Enables efficient on-chain verification of zero-knowledge proofs.
  • EIP-198 — BIGINT Modular Exponentiation: Precompile for modular exponentiation. Supports RSA signature verification and other cryptographic operations.
  • EIP-211 — RETURNDATASIZE and RETURNDATACOPY: Opcodes for accessing return data from external calls. Enables contracts to handle variable-length return data without pre-allocating memory.
  • EIP-214 — STATICCALL: A new call opcode that guarantees no state modifications. Critical for Solidity's view and pure function modifiers — callers can prove the called contract cannot change state.
  • EIP-658 — Transaction Status Code in Receipts: Replaced the intermediate state root in transaction receipts with a simple boolean (1 = success, 0 = failure). Enabled dApps to reliably detect failed transactions.

Client Requirements

  • Core-Geth v1.11.0 or later (Multi-Geth at the time)
  • Hyperledger Besu with ETC Atlantis support

Share This Article

Help spread the word about Ethereum Classic and support the ecosystem