{
  "$schema": "https://degreesofsatoshi.com/encyclopedia/schemas/article-v1.json",
  "schemaVersion": "1.0.0",
  "id": "ethereum-virtual-machine",
  "canonical": "https://degreesofsatoshi.com/encyclopedia/ethereum-virtual-machine/",
  "collection": "ethereum",
  "title": "The Ethereum Virtual Machine: how different computers agree",
  "description": "Learn how the EVM turns transactions into the same state changes on different computers, with a counter example and clear limits to EVM compatibility.",
  "aliases": [
    "EVM",
    "Ethereum virtual computer",
    "EVM compatible"
  ],
  "dates": {
    "published": "2026-10-02",
    "modified": "2026-10-02",
    "verified": "2026-10-02T15:10:23.134Z",
    "dataAsOf": null
  },
  "authorship": {
    "publisher": "Degrees of Satoshi editorial project",
    "process": "AI-assisted research and drafting with a separate automated source-verification pass; no external expert or named human review is implied."
  },
  "quickAnswer": {
    "text": "The Ethereum Virtual Machine, or EVM, defines how contract instructions execute and change Ethereum state. Given the same starting state, transaction and applicable rules, nodes should obtain the same result. Gas bounds resource consumption. The EVM is a set of execution rules, not a single physical computer or a guarantee of application safety.",
    "claimId": "ethereum-virtual-machine-quick-answer",
    "sourceIds": [
      "evm",
      "gas",
      "contracts"
    ]
  },
  "keyFacts": [
    {
      "label": "Determinism",
      "value": "The same inputs and rules produce the same execution result",
      "sourceIds": [
        "evm"
      ],
      "id": "determinism",
      "claimId": "ethereum-virtual-machine-fact-determinism"
    },
    {
      "label": "Persistent data",
      "value": "Contract storage survives between transactions",
      "sourceIds": [
        "evm"
      ],
      "id": "persistent-data",
      "claimId": "ethereum-virtual-machine-fact-persistent-data"
    },
    {
      "label": "Work budget",
      "value": "Gas meters execution resources",
      "sourceIds": [
        "gas"
      ],
      "id": "work-budget",
      "claimId": "ethereum-virtual-machine-fact-work-budget"
    }
  ],
  "prerequisites": [
    "ethereum-smart-contracts"
  ],
  "sections": [
    {
      "id": "shared-execution",
      "heading": "Agreement depends on identical rules rather than one central machine",
      "sourceIds": [
        "evm",
        "nodes"
      ],
      "paragraphs": [
        "Ethereum nodes run execution-client software. Their EVM implementations must agree about what each instruction does, how it affects state and what resources it consumes. Different software implementations can implement the same protocol.",
        "This is why an upgrade is more than a website release. Changing execution rules requires the network’s participants to follow compatible rules; otherwise they can disagree about the result of a block."
      ]
    },
    {
      "id": "counter-example",
      "heading": "Example: three increments change stored state from five to eight",
      "sourceIds": [
        "evm",
        "contracts"
      ],
      "paragraphs": [
        "Imagine a contract storing the number five and exposing an increment function. Three successful calls, each adding one, leave the persistent value at eight. Every validating execution reaches that result from the same ordered inputs.",
        "Temporary working data used during a call is not the same as the stored counter. The EVM distinguishes execution memory, transaction-scoped transient storage and persistent contract storage, each with different lifetimes."
      ]
    },
    {
      "id": "gas-budget",
      "heading": "A finite budget makes arbitrary programs practical to check",
      "sourceIds": [
        "gas",
        "evm"
      ],
      "paragraphs": [
        "Programs may loop or perform expensive work. Gas charges for operations and bounds execution by a supplied budget. Without a resource mechanism, a small request could demand unbounded work from other participants.",
        "If execution runs out of gas, it fails rather than continuing forever. That failure does not imply zero cost: computation already performed has consumed resources, and the transaction can still have a fee."
      ]
    },
    {
      "id": "compatibility-boundary",
      "heading": "Compatible execution does not mean identical security",
      "sourceIds": [
        "scaling",
        "evm"
      ],
      "paragraphs": [
        "An EVM-compatible chain aims to support familiar contract execution and tooling. It may nevertheless use different consensus, data availability, upgrade controls or fee rules. Familiar software does not collapse those differences.",
        "A program can also execute exactly as written while containing a logic error. Determinism makes results repeatable; it cannot establish that the program implements the promise a user thought they were accepting."
      ]
    }
  ],
  "faq": [
    {
      "question": "Is the EVM a computer owned by Ethereum?",
      "answer": "No. Many computers run implementations of shared execution rules. The virtual-machine description refers to those rules and their state transitions.",
      "sourceIds": [
        "evm",
        "nodes"
      ]
    },
    {
      "question": "Can EVM execution read a random website?",
      "answer": "Not directly during ordinary consensus execution. Uncontrolled external responses could differ between nodes, so external facts must enter through explicit inputs.",
      "sourceIds": [
        "contracts",
        "evm"
      ]
    },
    {
      "question": "Are all EVM chains the same network?",
      "answer": "No. Compatible execution can exist on independent chains with different security and settlement arrangements, including sidechains.",
      "sourceIds": [
        "scaling"
      ]
    }
  ],
  "claims": [
    {
      "id": "ethereum-virtual-machine-quick-answer",
      "articleSlug": "ethereum-virtual-machine",
      "statement": "The Ethereum Virtual Machine, or EVM, defines how contract instructions execute and change Ethereum state. Given the same starting state, transaction and applicable rules, nodes should obtain the same result. Gas bounds resource consumption. The EVM is a set of execution rules, not a single physical computer or a guarantee of application safety.",
      "sourceIds": [
        "source-f31f86bc84bd28d7",
        "source-a8f47d83f0f10a68",
        "source-1bffcf35253de959"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-f31f86bc84bd28d7",
          "locator": "State transition function; EVM instructions; storage"
        },
        {
          "sourceId": "source-a8f47d83f0f10a68",
          "locator": "How are gas fees calculated; base fee; gas limit"
        },
        {
          "sourceId": "source-1bffcf35253de959",
          "locator": "What is a smart contract; a digital vending machine; limitations; multisig"
        }
      ],
      "scope": {
        "collection": "ethereum",
        "dataAsOf": null,
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T15:10:23.134Z",
        "reviewer": "automated independent verification",
        "notes": [
          "Checked determinism scope, memory/transient/persistent state lifetimes, gas limit and EVM-compatibility caveat;counter5+3=8."
        ]
      }
    },
    {
      "id": "ethereum-virtual-machine-fact-determinism",
      "articleSlug": "ethereum-virtual-machine",
      "statement": "Determinism: The same inputs and rules produce the same execution result",
      "sourceIds": [
        "source-f31f86bc84bd28d7"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-f31f86bc84bd28d7",
          "locator": "State transition function; EVM instructions; storage"
        }
      ],
      "scope": {
        "collection": "ethereum",
        "dataAsOf": null,
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T15:10:23.134Z",
        "reviewer": "automated independent verification",
        "notes": [
          "Checked determinism scope, memory/transient/persistent state lifetimes, gas limit and EVM-compatibility caveat;counter5+3=8."
        ]
      }
    },
    {
      "id": "ethereum-virtual-machine-fact-persistent-data",
      "articleSlug": "ethereum-virtual-machine",
      "statement": "Persistent data: Contract storage survives between transactions",
      "sourceIds": [
        "source-f31f86bc84bd28d7"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-f31f86bc84bd28d7",
          "locator": "State transition function; EVM instructions; storage"
        }
      ],
      "scope": {
        "collection": "ethereum",
        "dataAsOf": null,
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T15:10:23.134Z",
        "reviewer": "automated independent verification",
        "notes": [
          "Checked determinism scope, memory/transient/persistent state lifetimes, gas limit and EVM-compatibility caveat;counter5+3=8."
        ]
      }
    },
    {
      "id": "ethereum-virtual-machine-fact-work-budget",
      "articleSlug": "ethereum-virtual-machine",
      "statement": "Work budget: Gas meters execution resources",
      "sourceIds": [
        "source-a8f47d83f0f10a68"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-a8f47d83f0f10a68",
          "locator": "How are gas fees calculated; base fee; gas limit"
        }
      ],
      "scope": {
        "collection": "ethereum",
        "dataAsOf": null,
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T15:10:23.134Z",
        "reviewer": "automated independent verification",
        "notes": [
          "Checked determinism scope, memory/transient/persistent state lifetimes, gas limit and EVM-compatibility caveat;counter5+3=8."
        ]
      }
    }
  ],
  "sources": [
    {
      "id": "evm",
      "label": "Ethereum Virtual Machine",
      "publisher": "ethereum.org contributors",
      "url": "https://raw.githubusercontent.com/ethereum/ethereum-org-website/dcc900ff125891da5b6c723b905a7113cf1bd864/public/content/developers/docs/evm/index.md",
      "canonicalUrl": "https://ethereum.org/en/developers/docs/evm/",
      "version": "dcc900ff125891da5b6c723b905a7113cf1bd864",
      "checkedAt": "2026-10-02T14:35:40.399163+00:00",
      "locator": "State transition function; EVM instructions; storage",
      "sha256": "2a938eb38a613c0cd2e27229691f7bc3741585ab495a89e9db67fdd575f8b052",
      "note": "Supports deterministic execution, opcodes and the distinction between temporary execution memory and persistent state.",
      "recordId": "source-f31f86bc84bd28d7",
      "contentSha256": "2a938eb38a613c0cd2e27229691f7bc3741585ab495a89e9db67fdd575f8b052"
    },
    {
      "id": "gas",
      "label": "Gas and fees",
      "publisher": "ethereum.org contributors",
      "url": "https://raw.githubusercontent.com/ethereum/ethereum-org-website/dcc900ff125891da5b6c723b905a7113cf1bd864/public/content/developers/docs/gas/index.md",
      "canonicalUrl": "https://ethereum.org/en/developers/docs/gas/",
      "version": "dcc900ff125891da5b6c723b905a7113cf1bd864",
      "checkedAt": "2026-10-02T14:35:40.393022+00:00",
      "locator": "How are gas fees calculated; base fee; gas limit",
      "sha256": "5af7b13e15072d45f38e6fd48e414324c7229b6110d6f8f7fc14100e5153509d",
      "note": "Supports gas units, ETH/gwei units, base/priority fees, resource limits and charges for executed failed transactions.",
      "recordId": "source-a8f47d83f0f10a68",
      "contentSha256": "5af7b13e15072d45f38e6fd48e414324c7229b6110d6f8f7fc14100e5153509d"
    },
    {
      "id": "contracts",
      "label": "Introduction to smart contracts",
      "publisher": "ethereum.org contributors",
      "url": "https://raw.githubusercontent.com/ethereum/ethereum-org-website/dcc900ff125891da5b6c723b905a7113cf1bd864/public/content/developers/docs/smart-contracts/index.md",
      "canonicalUrl": "https://ethereum.org/en/developers/docs/smart-contracts/",
      "version": "dcc900ff125891da5b6c723b905a7113cf1bd864",
      "checkedAt": "2026-10-02T14:35:40.398357+00:00",
      "locator": "What is a smart contract; a digital vending machine; limitations; multisig",
      "sha256": "e0933f91c6c58d30c1f5f05cac3c45529bf34dcb0711bbaa9a4dfe2b9b9946db",
      "note": "Supports contract code/state, deterministic rules, illustrative vending logic, external-data limits and multisignature access.",
      "recordId": "source-1bffcf35253de959",
      "contentSha256": "e0933f91c6c58d30c1f5f05cac3c45529bf34dcb0711bbaa9a4dfe2b9b9946db"
    },
    {
      "id": "nodes",
      "label": "Nodes and clients",
      "publisher": "ethereum.org contributors",
      "url": "https://raw.githubusercontent.com/ethereum/ethereum-org-website/dcc900ff125891da5b6c723b905a7113cf1bd864/public/content/developers/docs/nodes-and-clients/index.md",
      "canonicalUrl": "https://ethereum.org/en/developers/docs/nodes-and-clients/",
      "version": "dcc900ff125891da5b6c723b905a7113cf1bd864",
      "checkedAt": "2026-10-02T14:35:47.541421+00:00",
      "locator": "What are nodes and clients; benefits to you; alternatives",
      "sha256": "cb031af5a627217c4fbcd4a524e3a4c695feb7f8b1ffec6991c4d6d04475c8a6",
      "note": "Supports execution/consensus client roles, independent validation, RPC services and node-versus-validator distinctions.",
      "recordId": "source-60a91d91cd9a2e6e",
      "contentSha256": "cb031af5a627217c4fbcd4a524e3a4c695feb7f8b1ffec6991c4d6d04475c8a6"
    },
    {
      "id": "scaling",
      "label": "Scaling overview",
      "publisher": "ethereum.org contributors",
      "url": "https://raw.githubusercontent.com/ethereum/ethereum-org-website/dcc900ff125891da5b6c723b905a7113cf1bd864/public/content/developers/docs/scaling/index.md",
      "canonicalUrl": "https://ethereum.org/en/developers/docs/scaling/",
      "version": "dcc900ff125891da5b6c723b905a7113cf1bd864",
      "checkedAt": "2026-10-02T14:35:47.354550+00:00",
      "locator": "Layer 2 scaling; rollups; sidechains; validium",
      "sha256": "184af71e45f53390c4f782d936954caf42715feb82048072d79eb05495569a21",
      "note": "Supports rollup execution/settlement roles and distinct security assumptions of sidechains and offchain data systems.",
      "recordId": "source-27bb64638570155e",
      "contentSha256": "184af71e45f53390c4f782d936954caf42715feb82048072d79eb05495569a21"
    }
  ],
  "related": {
    "articles": [
      "ethereum-gas-fees",
      "ethereum-nodes-rpc",
      "ethereum-layer-2"
    ],
    "dossiers": [],
    "wallets": []
  },
  "revisionHistory": [
    {
      "date": "2026-10-02",
      "kind": "published",
      "summary": "First publication after primary-source research and independent automated verification."
    }
  ],
  "citation": "Degrees of Satoshi editorial project. “The Ethereum Virtual Machine: how different computers agree.” Published 2026-10-02; updated 2026-10-02. https://degreesofsatoshi.com/encyclopedia/ethereum-virtual-machine/"
}
