{
  "id": 2926,
  "title": "EIP-2926: Chunk-Based Code Merkleization",
  "status": "Draft",
  "type": "Standards Track",
  "category": "Core",
  "summary": "Breaks smart contract bytecode into fixed-size chunks stored in a Merkle Patricia Trie, reducing network bandwidth for block proof and resource consumption for real-time proving.",
  "impacts": [
    "End users are unaffected as code transition occur at protocol layer.",
    "Developers need to adapt to the new gas costs model.",
    "Wallet functionality remains unchanged.",
    "Infrastructure tools need updates to handle chunk-based proofs and codeRoot fields.",
    "Layer 2s remain unaffected.",
    "A transition period has to happen, during which  resource consumption increases slightly.",
    "Core consensus rules remain unchanged.",
    "Requires the implementation of code transition and the new storage format for accounts.",
    "Reduces resource consumption for real-time provers and avoids worst case attacks.",
    "Enable stateless clients to fetch only accessed code chunks, reducing network bandwidth.",
    "Allow for the removal of the code size limit.",
    "Reduction in size for any proof containing partial code reads"
  ],
  "discussion_url": "https://ethereum-magicians.org/t/eip-2926-chunk-based-code-merkleization/4555",
  "source_markdown_url": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-2926.md",
  "canonical_url": "/latest/eips/2926.json",
  "markdown_url": "/latest/eips/2926.md",
  "citations": [
    {
      "recordId": "eip-2926",
      "artifactPath": "normalized/2926.json",
      "url": "/records/proposal/eip-2926/normalized/2926.json",
      "label": "EIP-2926: Chunk-Based Code Merkleization",
      "snippet": "Breaks smart contract bytecode into fixed-size chunks stored in a Merkle Patricia Trie, reducing network bandwidth for block proof and resource consumption for real-time proving."
    }
  ]
}
