Technology attributes
Other attributes
Move is a programming language based on Rust that was created by Facebook for developing customizable transaction logic and smart contracts for the Libra digital currency. Every transaction submitted to the Libra blockchain uses a transaction script written in Move to encode its logic.
According to the Libra whitepaper, the highest priorities when creating Move were safety and security. Move is designed such that assets cannot be cloned to ensure that digital resources can only have one owner at a time and can only be spent once.
One of the stated initiatives of the Libra Association will be to foster the continued development of the Move language and the creation of smart contracts on top of the Libra blockchain. This will take place after Libra's public launch, scheduled for 2020.
Move is an executable bytecode language. It's key feature is the ability to define custom resource types with semantics inspired by linear logic, meaning that digital resources can be moved between program storage locations but they cannot be cloned or implicitly discarded.
The Move language directory consists of five parts:
- The virtual machine (VM), containing the bytecode format, a bytecode interpreter, and infrastructure to generate the genesis block of the Libra blockchain as well as subsequent blocks of transactions.
- The bytecode verifier, containing a static analysis tool which is used by the virtual machine to verify any new Move code before executing.
- The Move intermediate representation (IR) compiler, which compiles human-readable program text into Move bytecode.
- The standard library, containing the Move IR code for the core system modules (e.g. LibraAccount and LibraCoin).
- The tests and testing framework for the virtual machine, bytecode verifier, and compiler.