Move Virtual Machine (MVM)
Introduction
The Move Virtual Machine (MVM) is a next-generation execution engine tailored for high-performance, secure, and scalable blockchain applications. With its robust security model, parallel execution capabilities, and cross-chain interoperability, MVM is poised to be a foundational component of the Movement Network and beyond.
Key Features
1. Security and Safety
MVM is designed with security at its core, utilizing Move's resource-oriented programming paradigm to prevent common vulnerabilities such as reentrancy and double-spending attacks.
2. Parallel Execution
Unlike traditional blockchain virtual machines, MVM supports parallel transaction execution, improving throughput and reducing latency. The MoveVM employs Block-STM, an advanced concurrency control mechanism that enables efficient execution of multiple transactions in parallel.
3. EVM Compatibility
MVM is capable of executing both Move bytecode and EVM bytecode, allowing developers to deploy Solidity-based smart contracts alongside Move-based applications.
4. Deterministic Execution
MVM ensures that all smart contracts execute deterministically, meaning that given the same inputs, they always produce the same outputs. This property is essential for maintaining consensus among nodes.
5. Interoperability and Modular Architecture
MVM supports cross-chain interoperability via the Fast Finality Settlement (FFS) module, allowing seamless interaction between different blockchain environments.
6. Move Objects and Resource Accounts
MVM extends the core MoveVM with additional features, including Move Objects, which provide an extensible programming model for global access to heterogeneous sets of resources stored at a single address on-chain. Additionally, Resource Accounts enable programmable on-chain accounts, ideal for DAOs, shared accounts, and complex applications.
7. Advanced Cryptographic Primitives
MVM includes built-in cryptographic primitives for building scalable, privacy-preserving decentralized applications.
8. Tables for Scalable Storage
MVM supports key-value storage tables, allowing for efficient and scalable data storage within an account.
9. Multi-Agent Transaction Framework
MVM enables multi-agent transactions, allowing multiple distinct signer entities to participate in a single transaction, increasing flexibility for complex applications.
Execution Model
MVM operates on a transaction-based execution model where transactions are processed in stages:
- Transaction Ingress: Transactions enter the network through full nodes and are placed into the mempool.
- Sequencing: Transactions are batched and ordered by a decentralized sequencer.
- Execution: The Move Executor processes transactions, verifying signatures and executing bytecode.
- Validation and Settlement: Executed transactions are validated and finalized using the FFS module.
- State Commit: The resulting changes are committed to the blockchain state.
Gas and Resource Model
MVM uses a resource-based pricing model to compute transaction costs:
- Computation Cost: Based on the number of instructions executed.
- Storage Cost: Dependent on the size of stored data.
- Bandwidth Cost: Determined by transaction size and data availability requirements.
Comparison to Other Virtual Machines
Feature | Aptos / MoveVM | Solana / SeaLevel | EVM | Sui / MoveVM |
---|---|---|---|---|
Data Storage | Global address & account-based | Account-based | Smart contract-based | Global address-based |
Parallelization | Infers parallelization at runtime | Requires explicit access specification | Serial execution | Requires explicit access specification |
Transaction Safety | Sequence number enforcement | Transaction uniqueness | Nonces | Transaction uniqueness |
Type Safety | Module structs and generics | Program structs | Contract types | Module structs and generics |
Function Calling | Static dispatch | Static dispatch | Dynamic dispatch | Static dispatch |
Authenticated Storage | Yes | No | Yes | No |
Object Accessibility | Globally accessible | Not applicable | Not applicable | Limited to specific objects |
Developer Tools and Support
MVM provides a comprehensive suite of developer tools, including:
- Move CLI for compiling and deploying Move modules.
- SDKs and APIs for interacting with smart contracts.
- Blockchain Explorer for monitoring transactions and contract interactions.
- Aptos Token and Fungible Asset Standards, enabling seamless token creation and interoperability.
- Staking and Delegation Framework, allowing developers to integrate staking mechanisms into their applications.
- Timestamp Service, ensuring accurate on-chain timekeeping for transaction sequencing.
MoveVM is how we are bringing users and traditional finance onchain to enjoy freedom in a safe, performant environment.