ZadeNor AI
Back to Blog
Web3 & Blockchain

Ethereum Execution Layer Specification

December 24, 2025
5 min
1,963 views
By ZadeNor AI Team
Ethereum Execution Layer Specification

Ethereum Execution Layer Specification

The Future of Ethereum Execution: Unveiling EELS

After over a year in development, the Ethereum community is abuzz with the release of the Ethereum Execution Layer Specification (EELS), a Python reference implementation of the core components of an Ethereum execution client. This groundbreaking project aims to provide a programmer-friendly and up-to-date specification of the Ethereum protocol, making it easier for developers to understand and work with the Ethereum Virtual Machine (EVM).

A Spiritual Successor to the Yellow Paper

EELS is inspired by the successful Consensus Layer Specification and draws on the frustration of deciphering the cryptic notation of the Yellow Paper to understand the specific behavior of an EVM instruction. The Yellow Paper, while a foundational document for Ethereum, can be daunting for developers to navigate. EELS seeks to bridge this gap by providing a clear and concise specification of the EVM, making it easier for developers to prototype and test new EVM instructions.

A Side-by-Side Comparison

To illustrate the benefits of EELS, let's compare the Yellow Paper's description of the Less-than (LT) EVM instruction with the equivalent code from EELS:

Yellow Paper:

"Less-than (LT) EVM instruction"

"...the EVM performs the following steps:

  1. Pop two values from the stack.
  2. Compare the two values.
  3. Push the result onto the stack."

EELS:

def less_than(evm: Evm) -> None:
    # STACK
    left = pop(evm.stack)
    right = pop(evm.stack)

    # GAS
    charge_gas(evm, GAS_VERY_LOW)

    # OPERATION
    result = U256(left < right)

    push(evm.stack, result)

    # PROGRAM COUNTER
    evm.pc += 1

As you can see, the EELS implementation is more concise and easier to understand, making it a valuable resource for developers working with the EVM.

Writing Tests and Showing Differences

EELS is just regular Python, making it easy to test and integrate with other libraries. The project includes a selection of pytest tests and can be used with execution-spec-tests to apply tests to production clients. Additionally, EELS can display the differences between forks, making it a valuable tool for client developers.

An Example EIP

EIP-6780 is the first EIP to get an EELS implementation provided by the author, Guillaume Ballet. Let's take a look at how EELS can be used to prototype and test new EVM instructions:

@dataclass
class Environment:
    caller: Address
    block_hashes: List[Hash32]
    origin: Address
    coinbase: Address
    number: Uint
    base_fee_per_gas: Uint
    gas_limit: Uint
    gas_price: Uint
    time: U256
    prev_randao: Bytes32
    state: State
    chain_id: U64
+    created_contracts: Set[Address]

# ...

# modify selfdestruct so it only works for contracts noted in created_contracts
if originator in evm.env.created_contracts:
    # register account for deletion
    evm.accounts_to_delete.add(originator)

Future Development

EELS aims to become the default way to specify Core EIPs, the first place EIP authors go to prototype their proposals, and the best possible reference for how Ethereum works. If you're interested in contributing or prototyping your EIP, join us on the #specifications channel or grab an issue from our repository.

In conclusion, EELS is a groundbreaking project that aims to make the Ethereum protocol more accessible and easier to work with. By providing a clear and concise specification of the EVM, EELS can help developers prototype and test new EVM instructions, making it a valuable resource for the Ethereum community.


Source: https://blog.ethereum.org/en/2023/08/29/eel-spec

About the Author

ZadeNor AI Team is a leading expert in WEB3 & BLOCKCHAIN, contributing to cutting-edge research and development in the field.