Aptos Move by Example
  • 🚀Getting Started
  • Set-Up
  • Why is Move Secure
    • Move prover
  • Move vs Solidity
    • Resources
    • Parallel Processing
    • Reentrancy attacks
    • Memory management
    • Smart contract verification
    • Compiled language
  • Basic Concepts
    • Move.toml
    • Primary data-types
    • Strings
    • Comments
    • Functions
    • Function Visibilities
    • Control flow and expressions
    • Loops
    • Error
    • Struct and its Abilities
    • Scripts
    • Operations
  • Intermediate Concepts
    • Local variables
    • Constants
    • Signer
    • Vector
    • Address
    • Uses and Aliases
    • Maps
    • Hash functions
    • References
    • Unit test
    • Generics
    • Type Arguments
    • Type Inference
  • Advanced Concepts
    • Global Storage Structure
    • Global Storage Operations
    • Phantom Type Parameters
    • Timestamps
    • Ownership
    • Move coding conventions
    • View functions
    • Aptos account
    • Aptos Coin
    • Aptos Token(Nft)
    • Object
    • Token V2
  • Applications
    • First App
    • ToDoList
    • Voting System
    • Basic Tokens
    • Storage using Generics
    • Company
    • Collection
    • Football Card
    • Staking Module
    • MultiSender Wallet
    • English Auction
    • Dutch Auction
    • Attendance Sheet
    • Polling Contract
    • Lottery Contract
  • Decentralized Finance
    • Simple Swap Protocol Contract
    • Code of Swapping Protocol
  • Hacks
    • Coming soon
  • Hands on tutorials
    • Indexer tutorials
Powered by GitBook
On this page
Edit on GitHub
  1. Move vs Solidity

Smart contract verification

Move was designed with a focus on security, and the language itself has several built-in features to help with verification. Move has a formal verification system that allows developers to mathematically prove that their code is correct and free from bugs. This is accomplished through Move's linear type system, which makes it easier to reason about code correctness and eliminates many common vulnerabilities such as reentrancy attacks.

Solidity, on the other hand, has traditionally been criticized for its lack of security features and the difficulty in verifying contracts for correctness. However, in recent years, there have been significant improvements in the Solidity ecosystem, with the introduction of tools like formal verification frameworks (such as VeriSol), static analyzers, and linters that help detect common vulnerabilities.

Overall, while both languages offer tools for smart contract verification, Move's built-in features for formal verification and security make it a more suitable choice for developers who prioritize security and correctness in their smart contracts. Solidity, on the other hand, has made significant progress in recent years and is also a viable option for smart contract development with the help of external tools and frameworks.

PreviousMemory managementNextCompiled language

Last updated 2 years ago