Deep-Dive into Move-based Blockchains
I. Introduction
Move is a new programming language for smart contract development. Originating from Facebook’s discontinued Diem and Novi projects, Move aims to revolutionize smart contract development by addressing the limitations of existing languages like Solidity – used for the EVM – and Rust – found in alternative L1 ecosystems such as Solana and Near. Move’s design philosophy focuses on improving security and enhancing developer experience. This approach aims to make smart contract development not only safer and more efficient but also more accessible to developers outside of the crypto space.
The two primary Move-based blockchains are Aptos and Sui. Additionally, Movement Labs is working on bringing Move to the Ethereum ecosystem with its Layer-2 blockchain called M2.
This article will delve into Move’s key features and compare it to existing smart contract languages. We’ll explore how Move promises to be more secure, offer better scalability, and provide a more developer-friendly environment.
II. Move: A New Paradigm in Smart Contract Languages
Move introduces a fundamental shift in smart contract development through its asset-based storage model, a stark contrast to Solidity’s address-based approach.
In Solidity, the blockchain’s state is organized around addresses. Each address (like a user’s wallet or a smart contract) has associated storage, and assets are typically represented as entries in a mapping within this storage. This model can lead to complexities in managing assets across different addresses and contracts.
Source: satyvm.medium.com
Move treats assets, called “resources,” as independent objects with their own unique existence in the blockchain’s state. To understand this, imagine each asset (like a coin or token) as its own distinct database entry. Unlike traditional blockchain systems where an address simply has balances of assets, in Move, each individual asset exists separately from addresses.
When you own an asset in Move, it’s as if that asset’s database entry has your address listed as the owner. When you transfer the asset, instead of just updating balances, the entire asset “moves” to the new owner’s storage, leaving no trace in its original location. This is akin to physically handing over a unique object, rather than just updating numbers in an account.
This design has built-in scarcity and access control properties, a significant improvement over systems like the EVM where only the native currency (ETH) has these inherent protections. It’s impossible for an asset to be in two places at once or to be duplicated accidentally. With other smart contract languages, developers need to carefully implement checks to prevent issues like double-spending. With Move, these protections are inherent to how assets work.
Source: satyvm.medium.com
Move consists of two types of programs: transaction scripts and modules. Transaction scripts are atomic and can only ever be used once, whereas modules are published in the global state and remain there indefinitely. Modules are similar to smart contracts in other programming languages, defining resources and their associated procedures.
Unlike the EVM, Move does not have dynamic dispatch, which is a key factor in preventing re-entrancy attacks that have plagued many Ethereum contracts. In systems with dynamic dispatch, the exact function to be called is determined at runtime. This means that when a contract calls an external function, it doesn’t know precisely what code will be executed until the call is made. This uncertainty can be exploited in re-entrancy attacks.
Move’s module system, on the other hand, uses static dispatch. All function calls are resolved at compile-time, meaning the exact code to be executed is known before the transaction is processed. This approach eliminates the uncertainty associated with dynamic dispatch.
The combination of static dispatch and the resource model means that the virtual machine always knows what operations are being performed and can ensure that resources are properly managed. This significantly enhances security by making it impossible for a contract to unexpectedly reuse resources or make calls that could lead to re-entrancy vulnerabilities.
Move incorporates additional features to further enhance its security. The Move Prover (MVP) is a formal verifier for smart contracts, providing mathematical proof of a contract’s correctness. This level of verification is not commonly available in other smart contract languages. Additionally, a bytecode verifier checks all modules and transaction scripts for safety and compliance with Move’s rules before execution, adding an extra layer of security.
Moreover, Move’s strong static type system catches many errors at compile-time, a proactive approach to error detection that significantly reduces the risk of runtime errors. This feature, combined with Move’s module structs and generics, offers more robust type safety compared to EVM’s contract types.
These features collectively create a more secure and efficient environment for developing and deploying smart contracts. By addressing common vulnerabilities at the language level and providing tools for formal verification, Move aims to improve both the reliability of smart contracts and the productivity of developers in the Web3 space.
Feature | Aptos / Move | SVM | EVM | Sui / Move |
Data storage | Stored at a global address or within the owner’s account | Stored within the owner’s account associated with a program | Stored within the account associated with a smart contract | Stored at a global address |
Parallelization | Capable of inferring parallelization at runtime within Aptos | Requires specifying all data accessed | Currently serial, nothing in production | Requires specifying all data accessed |
Transaction safety | Sequence number | Transaction uniqueness | Nonces, similar to sequence numbers | 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 | Guaranteed to be globally accessible | Not applicable | Not applicable | Can be hidden |
Source: https://docs.movementlabs.xyz/
III. Aptos vs Sui: A Comparative Analysis of the biggest Move blockchains
Aptos and Sui, both built on the Move programming language and developed by former members of Facebook’s Diem project, represent two distinct approaches to implementing Move’s asset-oriented design in blockchain architecture. While they share a common origin and language, their implementations differ significantly in several key areas.
Fundamental Architecture and Transaction Processing
Aptos adheres to a more traditional blockchain model with an address-centric design, similar to Ethereum. While it maintains Move’s asset-oriented approach for resources, treating them as objects with their own storage and properties to benefit from Move’s improved security, the overall blockchain state is still organized around addresses. Fungible tokens on Aptos operate more like EVM tokens. Move’s unique functionality to record ownership stored within the resource have been deactivated in AIP-21.
This design choice makes Aptos more familiar to developers from other blockchain ecosystems. To achieve high throughput, Aptos employs Block-STM (Software Transactional Memory), a parallel execution engine that allows for optimistic concurrent execution of transactions. It can process thousands of transactions simultaneously, dynamically detecting and resolving conflicts.
In contrast, Sui introduces a novel object-centric model using a directed acyclic graph (DAG). Sui records transactions by changing data on ‘objects’, with each object essentially having its own ledger. This fundamental difference shapes many of Sui’s other features and capabilities. The object-centric design allows Sui to process unrelated transactions in parallel naturally. Independent transactions don’t need to be ordered and can be processed simultaneously and instantly, offering almost instant finality. For transactions involving shared objects, Sui employs advanced parallelization techniques through its Narwhal consensus engine and causal order execution. This approach enables Sui to achieve high throughput across various transaction types.
Source: Binance Report
Consensus Mechanisms
Aptos employs AptosBFT, an iteration on the HotStuff protocol with a reputation-based system for leader selection among validators. This consensus mechanism works in tandem with the Block-STM execution engine to maintain consistency across the network while enabling high throughput.
Sui’s consensus approach is more nuanced due to its object-centric model. For transactions involving shared objects, Sui uses a Byzantine Fault Tolerant (BFT) consensus protocol, combining Narwhal and Bullshark.
On testnet Sui has recently introduced the novel Mysticeti consensus algorithm. This will reduce settlement finality from 640ms to 390ms compared to Narwhal-Bullshark making Sui even faster.
Simple transactions that don’t affect shared state can bypass consensus entirely, allowing for near-instant finality. This dual approach to consensus aims to optimize for both security and speed, leveraging the natural parallelism of Sui’s architecture.
Smart Contract Capabilities
Both platforms leverage Move’s security features but extend them in different ways. Sui offers native support for upgradeable smart contracts as part of its core protocol, allowing developers to patch bugs or add features to deployed contracts with built-in safeguards. Aptos, while not offering this at the protocol level, supports upgradeable contracts through specific programming patterns.
Sui introduces Sui Move, with platform-specific extensions optimized for its object-centric model. Aptos, maintaining closer alignment with core Move, encourages a modular approach to smart contract development, facilitating code reuse and easier maintenance within its address-centric structure.
Unique Features
Aptos introduces “resource accounts,” owned and controlled by smart contracts rather than users, enabling more flexible on-chain governance and automated interactions. It also offers flexible key management schemes, including multi-signature accounts and rotating keys. These features aim to enhance security and enable more complex decentralized applications within Aptos’ familiar blockchain structure.
Sui, leveraging its object-centric model, provides programmable transaction blocks, allowing users to batch multiple operations into a single atomic transaction. This feature can significantly reduce transaction costs for complex operations and enables new types of efficient, multi-step blockchain interactions.
Fee Market
Sui implements localized fee markets, potentially preventing network-wide fee spikes during high-demand periods for specific applications. This approach allows for more granular control over transaction costs and could lead to more predictable and efficient fee structures for users and developers.
Aptos uses a global fee market, more in line with traditional blockchain models. While this approach is familiar to many in the blockchain space, it may be more susceptible to network-wide congestion and fee spikes. However, Aptos’ focus on upgradeability suggests that its fee structure could evolve in the future to address these potential issues.
Comparison conclusion
While both Aptos and Sui build upon Move’s asset-oriented design, they’ve taken different approaches to overall blockchain architecture, consensus, smart contract functionality, and economic models. Aptos integrates Move’s object-oriented assets into a familiar address-centric structure, potentially easing adoption for developers from other ecosystems while still offering significant security improvements. Sui, on the other hand, fully embraces and extends Move’s object-oriented approach to the entire blockchain design, offering a more radical departure from traditional models that could enable new types of applications and potentially higher levels of parallelism.
Key figures on current adoption
Sui | Aptos | |
Market Cap | $2.26B | $2.89B |
Fully diluted Valuation | $8.71B | $6.66B |
TVL | $611M | $377M |
Mcap/TVL | 3.74 | 7.86 |
DAU | 427,000 | 148,700 |
Dex trading Volume | $338M | $306M |
Daily Transactions | 3.2M | 723,000 |
7D Fee Revenue | $52.8k | $38.6k |
Current numbers indicate that Sui is slightly ahead of Aptos in terms of adoption, as the chain has attracted more users, liquidity and generates more volume so far.
IV. Move expansion to other ecosystems
M2: Move on Ethereum Layer 2
M2 represents a novel approach in the Move ecosystem, aiming to bring the advantages of Move to the Ethereum network as a Layer 2 solution. Developed by Movement Labs, M2 seeks to combine the security and developer-friendly aspects of Move with the network effects and established ecosystem of Ethereum.
Key features of M2 include:
- Ethereum Compatibility: As an Ethereum Layer 2, M2 allows developers to leverage Ethereum’s security and extensive ecosystem while benefiting from Move’s features.
- One of the most intriguing aspects of M2 is its Fractal module, which allows Solidity code to be translated into Move opcodes. This feature could potentially allow existing Ethereum projects to migrate to M2 with minimal code changes, lowering the barrier to adoption.
- Celestia Integration: M2 uses Celestia for data availability, which potentially allows for better scalability and lower transaction costs compared to traditional rollups.
- Snowman Consensus: The platform implements Snowman Consensus for shared sequencing, aiming to provide fast finality and high throughput.
- Cross-VM Interoperability: M2 supports Sui Move, Aptos Move, and introduces MEVM (Move EVM), an embedded EVM interpreter. This allows developers to write contracts in Move while maintaining compatibility with existing Ethereum smart contracts.
- Localized Fee Markets: M2 implements localized fee markets, which can help prevent network-wide fee spikes during high-demand periods for specific applications.
- Partnered with Union and Noble to bring native USDC to M2 and make M2 IBC (Cosmos’ Inter-Blockchain Communication Protocol) compatible.
Source: movementlabs.xyz
In August 2024 Movement Labs launched its MoveDrop incentivized testnet phase focused on developers as well as users. Mainnet launch date yet to be announced. As of now, Movement Labs has not announced plans for a token, but after launching an incentivized testnet a token launch with a testnet token it seems sure that there will be a token launched. Developers and users speculating on a potential future airdrops may consider interacting with the M2 incentivized testnet.
Bringing Move to other Ecosystems
Initiatives are underway to bring Move to various blockchain ecosystems. The Solana Foundation is working on a Move integration, there are efforts to build a Move module that would allow Cosmos native Move chains as well as initiatives to bring the MoveVM to substrate and the Polkadot Ecosystem.
However, all these efforts are still in an early stage and face various technical challenges. Thus the exact form these solutions will take and when they will be available remains unclear. What is clear though, is the goal to establish Move as the “JavaScript of smart contract languages,” leveraging its advanced features and developer-friendly nature across diverse blockchain environments.
V. Future Outlook
Looking ahead, the success of all Move chains will depend on their ability to onboard developers that will build out an ecosystem of flourishing apps. Due to its simpler and better developer experience, Move could adopt new developers coming into crypto better, and thus achieve a steeper growth curve.
Simple onboarding alone won’t be enough to achieve this though. The Move blockchains need to foster a vibrant community that offers interesting business opportunities to potential developers. This creates a challenging cycle every new blockchain faces: attracting developers requires a large user base, but gaining users demands compelling applications. With their massive funding and offering a superior smart contract language, the Move blockchains are probably the best positioned new blockchains to break out of this cycle.
Ultimately, Move’s emphasis on asset-oriented programming and built-in safeguards positions it as a potential catalyst to onboard the next wave of blockchain developers and innovation with them. If developer onboarding rate hits escape velocity. Move could play a pivotal role in shaping a more secure and developer-friendly future for decentralized applications.
This article has been written and prepared by Lukasinho, a member of the GCR Research Team, a group of dedicated professionals with extensive knowledge and expertise in their field. Committed to staying current with industry developments and providing accurate and valuable information, GlobalCoinResearch.com is a trusted source for insightful news, research, and analysis.
Disclaimer: Investing carries with it inherent risks, including but not limited to technical, operational, and human errors, as well as platform failures. The content provided is purely for educational purposes and should not be considered as financial advice. The authors of this content are not professional or licensed financial advisors and the views expressed are their own and do not represent the opinions of any organization they may be affiliated with.