zkVM vs EVM Differences

Sophon’s native zkVM is fundamentally different from Ethereum’s EVM as it’s designed to generate zero-knowledge proofs while executing smart contracts. While the EVM Bytecode Interpreter enables EVM compatibility (see limitations), here are the core differences between zkVM and EVM:

Execution Model

  • Proof Generation: zkVM operations must be ZK-proof friendly, affecting how certain operations work
  • Gas Model: Uses “ergs” instead of gas, with different cost calculations for operations
  • State Management: Different approach to handling state changes due to ZK-proof requirements

EVM Instruction Differences

To check what opcodes differ in behavior between Sophon and Ethereum, see the official EVM Instructions page.

Native Features

Account Abstraction

Unlike EVM which requires EIP-4337 for AA, Sophon’s zkVM:

  • Has native account abstraction built into the VM
  • Provides better performance for AA operations
  • Handles nonces differently for AA accounts

Learn more about AA differences

Paymasters

zkVM has native support for paymasters:

  • Built-in paymaster functionality
  • More efficient fee abstraction
  • Different gas accounting for sponsored transactions

System Contracts

  • Additional precompiled contracts specific to zkVM
  • Different handling of system-level operations
  • Native multi-transaction support

Learn more about precompile differences

State and Storage

Nonce Handling

  • Separate nonces for deployments and transactions
  • Different nonce management for smart contract accounts
  • Unique nonce behavior for batched transactions

Learn more about nonce differences

Storage Layout

  • Different storage slot calculation
  • Unique handling of immutable references
  • Modified library linking process

Learn more about storage differences

Contract Lifecycle

Deployment

  • Different bytecode format for native zkVM contracts
  • Unique contract creation flow
  • Modified CREATE/CREATE2 behavior for zkVM contracts

Learn more about deployment differences

Code Execution

  • Different handling of contract calls
  • Modified return data handling
  • Unique error propagation model

Learn more about execution differences