The economic impact of the EOF removal

Developers removed the EVM Object Format from the Fusaka upgrade on April 28, 2025, because community concerns about complexity and tool readiness grew. This decision followed intense debate during All-Core-Devs Execution calls, where facilitator Tim Beiko sought to reconcile divergent views on the structural future of the Ethereum Virtual Machine. The community examined four paths for the upgrade: Complete EOF, Minimal EOF, Baseline EOF, and Introspecting EOF. Complete EOF, also known as the Osaka plan, includes all proposed features and maintains bans on code and gas introspection. Minimal EOF relies on the leaner Shanghai-era proposal and excludes stack opcodes and introspection bans. Baseline EOF provides a middle ground by removing introspection bans while retaining structural enhancements. Introspecting EOF offers a pivot by removing the Gas Introspection theme and restoring the EXTCODE* opcodes to respond to client feedback. While the Ethereum Foundation targets L1 scaling through the Fusaka upgrade, the decision to pull the EVM Object Format from the immediate roadmap shows how developer anxiety regarding complexity can stall long-term structural progress.

The burden on developer efficiency

I find the economic impact on developers quite stark. In Solidity 0.8.29, a struct that fits in a single slot costs 125 more gas than the equivalent assembly-only version. This efficiency gap forces developers to choose between ease of use and gas savings. Those who manage contracts with high value must often navigate complex assembly to avoid these penalties. Critics argue that EOF will create a higher hurdle for developers who must understand specialized bytecode to maintain performance. While EOF promises better security, it might force developers into clunky design shortcuts to maintain efficiency. You likely know that Ethereum upgrades rarely follow a clean schedule, and this delay reflects the difficulty of modernizing the execution layer without breaking existing workflows. The tension between innovation and stability remains a primary concern for those building on the network.

Technical specifications and contract limits

The transition to EOF involves fundamental changes to how the EVM handles bytecode and contract sizes. Currently, EIP-170 limits Ethereum contracts to 24 KB. EOF aims to raise this limit to 64 KB via EIP-7830, though this change only applies to EOF-formatted contracts. Legacy contracts remain unaffected by the new limit.

EIP Name/Function Purpose
EIP-3540 EOF v1 Code and data separation
EIP-3670 Code Validation Reject invalid instructions
EIP-4200 Static Relative Jumps Replace dynamic jumps
EIP-4750 Functions Support subroutines
EIP-5450 Stack Validation Prevent stack errors
EIP-3860 Limit/Meter Initcode Cap initcode size

The structural changes in EOF attempt to address the limitations of dynamic control flow. Current EVM bytecode only supports dynamic control flow, which makes decompiling and static verification difficult. EOF introduces instructions with immediate operands to enable static control flow. EIP-4200 introduces RJUMP, RJUMPI, and RJUMPV to replace dynamic jumps with relative addresses. EIP-4750 allows for multiple code sections, where each section acts as its own subroutine. These changes aim to reduce the reliance on complex maneuvers used by compilers to manage the stack.

Scaling the execution layer

The Fusaka upgrade focuses heavily on L2 scaling through Peer Data Availability Sampling. This mechanism uses Reed-Solomon encoding to split blob data into 128 subnets. Each subnet stores a 2KB fragment of the original data. A validator staking the minimum 32 ETH must participate in 8 subnets, which requires only 16KB of bandwidth per blob. To participate in all 128 subnets, a node requires 3,872 ETH in total. This approach allows the network to handle more blobs without increasing the hardware requirements for typical validators.

Vitalik Buterin proposed replacing the EVM with RISC-V to achieve a 100x performance gain. This move would remove most precompiles and allow compilers to target a simpler virtual machine. Such a transition targets the Endgame where the execution layer becomes easy to ZK-prove. This coincides with long-term goals like 3-slot finality, which reduces latency to 36 seconds, and Verkle trees, which shrink proofs from megabytes to 200 bytes. If the network adopts 3-slot finality, the staking minimum might drop from 32 ETH to 1 ETH. How will the community reconcile the need for RISC-V simplicity with the necessity of maintaining backward compatibility for existing contracts?

Newsletter