Move: Secure and Efficient Web3 Programming Language with Scarcity and Access Control
Move is a secure Web3 programming language that prioritizes scarcity and access control. Assets in Move are represented within resources, ensuring default scarcity enforcement. Structs, representing assets, can only be duplicated or dropped if explicitly defined as copy at the bytecode layer.
Access control is maintained through accounts and module privileges. Modules, acting as libraries or programs, can create, store, or transfer assets with public functions accessible to other modules. Constructors for non-public structs are restricted to the defining module, and fields can only be accessed within the module or through public accessors and setters. Structs with key or store attributes have specific storage restrictions.
In Move, a signer, representing the transaction sender and verified account owner, holds the highest permission level, allowing resource addition. Modules can require a signer for accessing or modifying account resources. MoveVM deployments can extend the core with additional features through an adapter layer, operating with a framework supporting standard operations similar to a computer's operating system. Move's adaptability and standardized functionality make it a secure choice for Web3 development.