Ethereum Improvement Proposals (EIPs)

repository·master·Indexed 11 days ago

https://github.com/ethereum/eips

The central repository for documenting standards and improvements to the Ethereum protocol, including consensus, networking, and interface specifications. Contains documentation and implementation details for various proposals such as the ERC1155 Multi Token Standard, EIP-7701 Native Account Abstraction, and EIP-7885 NTT precompiled contracts for post-quantum cryptography.

Tokens
219.8K
Snippets
369
Records
884
Agent score
95%

What's inside EIPs

  1. Overview of EIP-4844: Shard Blob Transactions

    master

    EIP-4844 introduces a new transaction format called "blob-carrying transactions." These transactions allow for the inclusion of large amounts of data that are not directly accessible by the Ethereum Virtual Machine (EVM) during execution, but whose cryptographic commitments are accessible.

    This serves as a stop-gap solution for data sharding by implementing the transaction format intended for full sharding without actually sharding the data. Instead, the blob data is part of the beacon chain and is downloaded by all consensus nodes, though it can be deleted after a relatively short delay.

    Key constraints:

    • Target data per block: ~0.375 MB
    • Maximum data per block: ~0.75 MB
  2. Overview of Optimism-geth with Pure Go NTT Precompiles

    master
    This project is a fork of op-geth that introduces precompiled contracts for Number Theoretic Transform (NTT) operations. These operations are implemented in pure Go, allowing for efficient on-chain post-quantum cryptographic operations (such as Falcon and ML-DSA) without requiring external dependencies.
  3. Overview of EIP-8052 Falcon Precompiles

    master

    EIP-8052 introduces precompiled contracts to support the Falcon-512 signature scheme, providing post-quantum security for EVM-based chains. To balance NIST compliance with EVM efficiency, the signature verification process is split into two distinct stages: a Hash-to-Point stage and a Core Algorithm stage.

    By separating these, developers can choose between:

    1. NIST Compliance: Using the standard SHAKE256 hash function.
    2. EVM Efficiency: Using a Keccak-based PRNG, which is significantly cheaper to compute within the EVM.
    3. ZK Compatibility: The split architecture allows for more efficient Falcon signature ZK proofs by reducing circuit size and proving time.
  4. Overview of EIP-2711: Sponsored, Expiring, and Batch Transactions

    master

    EIP-2711 introduces a new transaction type (Type 2 under EIP-2718) designed to support three specific use cases:

    1. Sponsored Transactions: Allows a separate account (GAS_PAYER) to pay for gas, while a different account acts as the msg.sender.
    2. Batch Transactions: Enables executing multiple transactions from the same sender in sequence, providing cross-transaction atomicity.
    3. Expiring Transactions: Uses a validUntil field to ensure transactions become invalid after a specific timestamp, useful for preventing stale transactions in queues or providing temporal replay protection.

    Note: This EIP is currently marked as Withdrawn.

  5. Overview of EIP-8057: Inter-Block Temporal Locality Gas Discounts

    master

    EIP-8057 introduces a deterministic gas discount mechanism for the first access to accounts and storage keys within a transaction. This discount is based on how recently the item was accessed in previous blocks, utilizing block-level access lists (EIP-7928) to ensure the discount is publicly observable and consensus-safe.

    Key Characteristics

    • Multi-block Temporal Locality: Discounts decay smoothly over a fixed window of recent blocks (e.g., a 32-block window).
    • Deterministic Pricing: Because discounts depend only on prior-block activity recorded in access lists, users, builders, and wallets can calculate exact costs before submission.
    • No Intra-block Warming: The mechanism does not change warming semantics for transactions within the same block; it only applies to accesses across different blocks.
    • Goal: To align gas costs with the actual mechanical costs of client state access (caching/SSD pages) and increase effective L1 throughput by reducing average gas costs for realistic workloads.
  6. Overview of EIP-2982: Serenity Phase 0

    master

    EIP-2982 specifies Phase 0 of Serenity (eth2), which is the initial bootstrapping phase of Ethereum's transition to a scalable, proof-of-stake (PoS) consensus mechanism.

    In Phase 0, the existing Proof-of-Work (PoW) chain remains entirely unaffected. Instead, a beacon chain is built in parallel to serve as the core of the upgraded consensus. The beacon chain uses the Casper the Friendly Finality Gadget (FFG) for proof-of-stake consensus and the Latest Message Driven Greedy Heaviest Observed Sub-Tree (LMD-GHOST) fork-choice rule.

    Key objectives of Phase 0 include:

    • Bootstrapping the PoS consensus mechanism.
    • Establishing the validator registry via a deposit contract on the Ethereum mainnet.
    • Providing a foundation for future sharding and full PoS integration.
  7. Overview of LUCID encrypted mempool (EIP-8184)

    master

    LUCID is a mechanism designed to provide a public, encrypted mempool for Ethereum. It allows MEV-sensitive transactions to be carried through the public inclusion pipeline while keeping their contents hidden until after the scheduling decision (block production) has been fixed.

    Key features include:

    • Commit-before-reveal: Transactions are committed to the inclusion pipeline before their contents are decrypted, protecting against front-running and sandwich attacks.
    • Scheme Agnostic: The EIP does not enshrine a specific cryptographic construction. It allows for various off-protocol decryption schemes, such as trustless self-decryption or designs following a key publisher's instructions.
    • Censorship Resistance: By allowing encrypted propagation, it enables users to access blockspace without relying on private, opaque relays, thereby complementing EIP-7805 (FOCIL).
  8. Overview of yul7979 compiler

    master

    yul7979 is a compiler for a subset of Yul designed for EIP-7979. It translates Yul function definitions and calls into the three specific instructions introduced by EIP-7979: CALLDEST, CALLSUB, and RETURNSUB.

    The compiler features two backends:

    1. 7979 Backend: Emits instructions nearly one-to-one (function definitions to CALLDEST...RETURNSUB, and calls to PUSH CALLSUB). This output is designed to pass the reference validator of the companion validation EIP.
    2. Legacy Backend: Emits programs using traditional methods (synthesizing calls and returns from dynamic jumps) to allow for like-for-like performance and size comparisons.
  9. Overview of EIP-8178: Binary SSZ Transport for the Engine API

    master

    EIP-8178 specifies a binary SSZ (Simple Serialize) transport layer for communication between Consensus Layer (CL) and Execution Layer (EL) clients. This serves as a high-performance alternative to the existing JSON-RPC Engine API.

    Key improvements over JSON-RPC include:

    • Reduced Wire Size: Eliminates hex-encoding of binary data (hashes, addresses, transactions, blobs), reducing payload sizes by approximately 50%.
    • Lower CPU Overhead: Removes the need for JSON parsing and generation.
    • Native SSZ Support: Since CL clients use SSZ natively, this transport allows the EL to deserialize raw SSZ bytes directly, removing the SSZ $\rightarrow$ JSON $\rightarrow$ Internal Type conversion bottleneck.
  10. Overview of EIP-8075: Adaptive State Cost

    master

    EIP-8075 introduces a mechanism to cap Ethereum state growth by dynamically adjusting the gas cost of state creation. It targets a state growth rate of 250 MiB per day using a fee market mechanism similar to EIP-4844.

    Key features include:

    • Dynamic Pricing: The state_gas_per_byte adjusts based on excess_state_bytes (the running total of state bytes created in excess of a target).
    • Scaling via Gas Separation: To prevent state costs from crowding out compute, regular_gas and state_gas are tracked and limited separately, though they are aggregated for base fee calculations.
    • Smooth Adjustments: The cost per state byte varies moderately (at most 0.1% per block) to ensure users can set reasonable gas limits without frequent transaction failures.
  11. Overview of EIP-8363: Tapered Issuance Burn

    master

    EIP-8363 introduces a tapered issuance burn mechanism designed to prevent the staking ratio from growing uncontrollably. It achieves this by deducting a fraction of validator rewards (for duties like attestation, block proposal, and sync committee participation) and burning the deducted ETH.

    Key Mechanics

    • Tapered Burn: The burn fraction increases linearly with the staking ratio.
    • Saturation Point: The burn reaches 100% at a fixed saturation balance, meaning net staking yield declines as more ETH is staked.
    • Equilibrium: The mechanism is designed so that issuance no longer incentivizes staking beyond a 50% staking ratio. This allows the market to settle where the yield matches the risk premium demanded by stakers.
    • Phased Transition: To avoid a sharp drop in yields for existing stakers, the reduction is phased in over 18 months by temporarily raising the BASE_REWARD_FACTOR. While the level of issuance is phased, the shape of the taper (the lack of incentive beyond 50% stake) is active from day one.
  12. Overview of EIP-5792: Wallet Call API

    master

    EIP-5792 introduces a new set of JSON-RPC methods prefixed with wallet_ to modernize how applications interact with user wallets. Unlike the legacy eth_sendTransaction and eth_getTransactionReceipt methods, the Wallet Call API allows applications to:

    1. Batch multiple onchain write calls: Send a group of calls in a single RPC request, which smart accounts can often execute atomically in one transaction.
    2. Leverage modern transaction features: Support advanced formats like ERC-4337 paymasters.
    3. Query wallet capabilities: Use a dedicated RPC to discover what specific features or transaction formats a wallet supports.
    4. Separate concerns: Enforce a clean architectural separation between the application and the wallet.

    The API includes methods for sending calls (wallet_sendCalls), checking status (wallet_getCallsStatus, wallet_showCallsStatus), and discovering capabilities (wallet_getCapabilities).