Виртуальная машина (Virtual Machine, VM)
16.04.2026
Виртуальная машина (virtual machine, VM) в блокчейн-смысле — это изолированная среда исполнения, детерминированно запускающая байткод смарт-контрактов на каждой ноде сети. Каждая полная нода независимо исполняет один и тот же байткод с одними и теми же входами и обязана прийти к одинаковому состоянию — без детерминизма консенсус был бы невозможен.
Это не то же самое, что системная виртуальная машина вроде VMware или VirtualBox, эмулирующая целый компьютер. Блокчейн-VM ближе к Java Virtual Machine: узкий интерпретатор конкретного байткода без файловой системы, сети и недетерминированных операций.
Зачем блокчейну VM
Исполнение нативного кода было бы быстрее, но небезопасно: баг или намеренный бесконечный цикл в контракте мог бы положить все ноды сразу. VM обеспечивает:
- Изоляцию (sandbox) — код контракта не может читать файлы, открывать сокеты или вызывать хостовую ОС
- Детерминизм — одни и те же входы дают одинаковый результат на любой ноде и любом железе
- Учёт ресурсов — каждая операция стоит газ; когда газ кончается, исполнение останавливается, предотвращая DoS
- Портируемость — один и тот же байткод работает на любой реализации спецификации VM
EVM (Ethereum Virtual Machine)
EVM — самая распространённая блокчейн-VM. Это стековая машина с размером слова 256 бит, подобранным под размер криптографических примитивов вроде хеша Keccak-256.
- Solidity или Vyper компилируются в байткод EVM
- У каждого опкода есть цена в газе; сложные операции (SSTORE, CALL, keccak) стоят дороже
- EVM-совместимые сети (Polygon, Arbitrum, Optimism, BNB Chain, Avalanche C-Chain, Base) запускают один и тот же байткод без изменений — поэтому MetaMask и Hardhat работают везде одинаково
SVM (Solana Virtual Machine)
VM Solana основана на eBPF (extended Berkeley Packet Filter) — технологии ядра Linux, адаптированной как sBPF. Контракты пишутся на Rust или C и компилируются в sBPF-байткод.
- Sealevel — параллельный рантайм Solana — исполняет непересекающиеся транзакции одновременно, используя заранее заявленные списки доступа к аккаунтам
- Регистровая архитектура (в отличие от стековой EVM), ближе к реальной архитектуре CPU
VM на WASM
WebAssembly (WASM) — портируемый байткод, изначально спроектированный для браузеров, всё чаще используется как целевая VM для блокчейнов. Сети на WASM: NEAR, Polkadot (через рантайм Substrate pallet-contracts), Cosmos CosmWasm, Internet Computer.
WASM языково-независим — разработчики могут писать на Rust, C++, AssemblyScript или Go — и опирается на зрелую экосистему инструментов за пределами крипты.
VM на Layer-2
Роллапы наследуют или расширяют существующие VM:
- Optimism, Arbitrum, Base — EVM-эквивалентные
- zkSync Era — EVM-совместимая через собственный zkEVM
- Starknet — работает на Cairo VM, спроектированной специально под STARK-доказательства
- Scroll, Polygon zkEVM, Linea — zkEVM с эквивалентностью на уровне байткода
