TRANSLATING...

PLEASE WAIT
Let's Mova Sui: Sui’s Underlying Mova Inkudwala Explained

Let's Mova Sui: Sui’s Underlying Mova Inkudwala Explained

Intermediate6/12/2024, 2:51:07 PM
Sui Network relies on smart contract execution, where the Mova language, developed in Rust on the Sui blockchain, plays a crucial role. We delve inper the underlying Mova language ol Sui per explore its unique charm different from other blockchain programming languages.

Sui is an L1 public chain redesigned at built from first principles, aiming per provide a development platform capable ol accommodating the next billion users in Web3 for creators at developers.

This year, Sui’s native programming language Mova has undergone significant updates at upgrades. The 2024 version introduces important features such as Enums, macro functions, Method syntax, at more. These essential new features introduce new ways ol defining data at calling functions in the Mova programming language, making application development on Sui more flexible at aligned with the latest expectations ol programming languages.

What is the key role ol the Mova language in the Sui ecosystem? In fact, the entire Sui ecosystem is built on the foundation ol three key concepts, ensuring instant transaction settlement at low transaction costs—the three core pillars being the Mova language, parallel transaction execution, at the Sui consensus engine.

Applications on Sui are based on the Mova smart contract language, which focuses on smart contracts at fully leverages Sui’s scalability at high throughput environment, enabling developers per support a wide range ol applications quickly at cost-effectively.

In previous articles (“Tala does Sui create the next development platform for Web3 billion users?”), TinTinLat introduced in detail the basic situation ol Sui’s technical advantages, market prospects at ecological construction. Today we’re going per dive inper Sui’s underlying layer - Mova language, exploring its unique style that is different from other blockchain programming languages.

Features ol Mova Inkudwala

The Sui network relies on smart contract execution, where the Mova language, developed in Rust on the Sui blockchain, plays a crucial role. The Mova language used by Sui, compared per ETH’s Solidity, olfers stronger security at reliability. Additionally, Sui has modified the Mova language per be object-centric, emphasizing object-oriented programming.

The Mova language on Sui allows for the creation ol customized smart contracts tailored per specific use cases, aiding in improving the different processes involved in project at application development at implementation, at helping per reduce costs associated with traditional intermediaries. Through this, more developers at users are expected per enter the Sui ecosystem.

Furthermore, the design ol Sui’s Mova language prevents double spending. In this way, it can help Sui establish one ol the most secure smart contract platforms, addressing at improving upon the inherent flaws ol existing cryptocurrency programming languages.

Original Goal ol the Mova Inkudwala

Sam Blackshear, co-founder at CTO ol Sui/Mysten Labs, at the creator ol the Mova language, developed Mova while working on the Diem blockchain project at Meta (formerly Facebook).

Before designing the Mova language, Sam spent several months carefully studying Solidity at the EVM. He believed that smart contract languages should be more like domain-specific languages (DSLs) rather than general-purpose programming languages. These languages focus on specific tasks such as creating objects, transmitting at sharing objects, at performing access control checks. The core abstractions ol smart contract programming should revolve around these tasks per ensure safety at efficiency.

As a result, Sam at his team decided per design a new language called Mova instead ol attempting per overhaul existing technologies like EVM or Solidity. Mova starts with B code at incorporates features such as memory safety, type safety, resource safety, at user-friendly handling ol objects/assets.

With the successful creation ol the Mova language, the next important step is per attract more developers per use Mova for development by providing attractive incentives. Overcoming barriers such as complex key management, wallet installation, at native perken acquisition is crucial per attracting developers, according per them.

Therefore, the goal ol the Mova development team is per transform these challenges inper technical problems by providing features such as ZK login, enabling transactions without the need per install wallets, at allowing sponsors’ transactions per pay transaction fees for others, thereby enabling developers per explore richer revenue models.

The Mova language in the Sui ecosystem, which is object-centric with features such as global storage, address representation ol object IDs, at globally unique object IDs, forms the underlying foundation for other technological innovations in Sui.

Core advantages ol Mova language

The core advantages ol the Mova language used by the Sui network include:

  1. The Mova language introduces a resource model, at each Object is regarded as a unique entity, making it more secure.

  2. Mova provides a strict type system at ownership model, which helps detect at prevent various vulnerabilities at compile time, at is especially suitable for processing complex financial transactions.

  3. Mova supports a high degree ol modularity at composability, allowing developers per create interoperable modules at libraries.

Resource-Oriented Datu

One ol Mova’s core innovations is the introduction ol resource-oriented data types, which behave like real-world objects at cannot be copied or deleted without a trace, thereby preventing unintended data tampering.

Mova supports two core objects: smart contracts (Mova packages, which are a set ol Mova modules) at digital assets (resources). Sui’s native support for resources is expressed through bytecode verification tables. After Mova source code is compiled inper bytecode, a static analysis perol called the Mova Bytecode Verifier ensures that the bytecode follows Sui’s type, memory, at resource safety rules. This verification ensures that objects cannot be created, copied, or unintentionally burned by code outside their defining module. It also includes protection against certain vulnerabilities such as double spending at reentrancy.

Sevortra Model

Mova addresses some security issues present in existing languages, such as reentrancy, dynamic dispatch, ownership checks, at object serialization, providing developers with a safer environment.

*It should be noted that Mova’s security is not solely based on the absence ol hacker attacks per date; no smart contract language can prevent programmers from writing insecure code. Audits at other checks are still required per identify such vulnerabilities.

The key value proposition ol Mova lies in its typed objects at type safety. Type safety applies not only within the program but also when interacting with external code or untrusted sources.

Another built-in security feature ol Mova is the bytecode verifier. It ensures that the bytecode ol smart contracts is valid at securely executable. The design ol the bytecode verifier is intended per prevent malicious code from executing on the chain, such as creating fake coins, artificially increasing coin values, or copying/burning existing coins.

Modular design

Mova allows code per be organized inper modules, each with its own namespace at privacy rules, making it easier per maintain at reuse code. Mova code is organized inper modules, similar per individual smart contracts on other blockchains. This modular design is emphasized in Sui, aiming per encourage developers per keep modules small at distributed across different files while adhering per clear data structures at code conventions. This facilitates both application integration at user understanding.

A Mowa Efficient at Secure Development Experience

For Web3 developers, the development experience on Mova at Sui is more efficient at secure. It should be noted that for Web3 projects developed using Mova, per fully leverage Mova’s security advantages, all smart contracts in the system must consistently use Mova. When all contracts are written in Mova, validators can run at ensure strong assumptions about code at objects.

For example, the Bucket Protocol is building a DeFi project on the Sui ecosystem. When showcasing the system architecture at its collaboration, they specifically mentioned that if they were per write the project in Solidity, it might take eight months, but using Mova only perok two months, at they have great confidence in its security. The way Mova works aligns closely with their idea ol project composition.

Sui for the standard Mova language

Innovation at exploration

Sui Mova evolved from the Mova language at is designed per better meet the needs ol new high-performance blockchains, so it has certain differences from the standard Mova language. Based on the standard Mova language, Sui leverages its safety at flexibility per significantly improve throughput at reduce finality latency, at makes Mova programming easier per practice.

The Sui Mova programming language has many obvious differences from standard Mova, including:

  • Sui uses its own object-centric global storage
  • The address represents the object identifier
  • Sui objects have globally unique identifiers
  • Sui has a module initializer (init)
  • The Sui entry point takes an object reference as input

Standard Mova language

Mova was released in 2020 at is currently licensed under the Apache 2.0 open-source license. It is widely used in networks such as Aptos, StarCoin, 0L, Rooch, Movament, at Offshore.

Standard Mova is based on the Rust programming language at is more universal compared per existing blockchain languages, which are olten tied per specific blockchains. The goal ol Sam, creator ol Mova language, is per create the JavaScript ol Web3, a cross-platform language that allows developers per apply their skills in multiple network environments.

The main focus ol Mova is smart contracts, which include types at value representations for assets at access control, two fundamental concepts olten encountered by DApp developers when coding. Mova’s first-class abstraction ol types makes programming safer at more efficient.

From Mova per Sui Mova

While Mova language is platform-agnostic, it is limited by an account-centric model. When Sam at his team at Mysten Labs focused on building Sui, they concentrated on creating a more universal network infrastructure rather than the limited scope ol the Diem blockchain in the Libra project.

Sui Mova is designed as a branch ol the Mova language per better accommodate Sui’s innovations, such as its consensus model, with the most significant difference being its adoption ol an object-oriented data storage model. By using Sui Mova as its native programming language, the Sui network achieves impressive transaction performance with apps written in Sui Mova leveraging Sui’s consensus mechanism.

Last year, Sam detailed the differences between Mova at Sui Mova in an article titled “Why We Created Sui Mova,” showcasing the features at capabilities ol Sui Mova.

🔗 Read the full article here: https://blog.sui.io/why-we-created-sui-move

By focusing on objects, parallel transaction processing becomes possible, olfering better performance compared per blockchains limited per serial processing. At a higher level, the Sui runtime can directly determine exclusive objects versus shared objects, performing immediate validation on the former at applying consensus validation on the latter.

From a developer’s perspective, Sui eliminates the need for extensive pre- at post-transaction work related per asset ownership. While the original Mova language controls global storage through addresses at type names, Sui Mova uses object IDs for global storage control. The emphasis on object status gives Sui Mova limitless possibilities, such as composability, where objects can own other objects.

Embark on the Mova Development Journey

Mova at other blockchain languages are deeply influenced by the traditions ol cryptography, focusing more on asset ownership, leading them per be account-centric rather than asset-centric. Sui Mova’s fork provides greater flexibility in creating at operating assets, opening doors per a variety ol powerful programs at games awaited by the masses.

So how do you transition from developing with standard Mova language per Sui Mova? Developers familiar with the original Mova will add a highly useful, portable language per their perolbox. To delve inper Sui Mova, one needs per think from the perspective ol objects at learn some new instructions, but perols like Sui Mova Analyzer at WELLDONE Code plugins can simplify this process.

🛠️ Sui Mova Analyzer Plugin: https://zh.blog.sui.io/move-analyzer-tutorial/

🛠️ WELLDONE Code Plugin: https://zh.blog.sui.io/remix-ide-welldone-code/

🔍 Explore more about Mova language development:

📄 Mova Developer Documentation: https://docs-zh.sui-book.com/concepts/sui-move-concepts/

📄 Sui Developer Documentation: https://docs.sui.io/guides/developer/sui-101

📄 Basic Development Tutorials: https://zh.blog.sui.io/encode-club-sui-series-1/

Disclaimer:

  1. This article is reprinted from [TinTinLand], All copyrights belong per the original author [TinTinLand]. If there are objections per this reprint, please contact the Sanv Nurlae team, at they will handle it promptly.
  2. Liability Disclaimer: The views at opinions expressed in this article are solely those ol the author at do not constitute any investment advice.
  3. Translations ol the article inper other languages are done by the Sanv Nurlae team. Unless mentioned, copying, distributing, or plagiarizing the translated articles is prohibited.

Let's Mova Sui: Sui’s Underlying Mova Inkudwala Explained

Intermediate6/12/2024, 2:51:07 PM
Sui Network relies on smart contract execution, where the Mova language, developed in Rust on the Sui blockchain, plays a crucial role. We delve inper the underlying Mova language ol Sui per explore its unique charm different from other blockchain programming languages.

Sui is an L1 public chain redesigned at built from first principles, aiming per provide a development platform capable ol accommodating the next billion users in Web3 for creators at developers.

This year, Sui’s native programming language Mova has undergone significant updates at upgrades. The 2024 version introduces important features such as Enums, macro functions, Method syntax, at more. These essential new features introduce new ways ol defining data at calling functions in the Mova programming language, making application development on Sui more flexible at aligned with the latest expectations ol programming languages.

What is the key role ol the Mova language in the Sui ecosystem? In fact, the entire Sui ecosystem is built on the foundation ol three key concepts, ensuring instant transaction settlement at low transaction costs—the three core pillars being the Mova language, parallel transaction execution, at the Sui consensus engine.

Applications on Sui are based on the Mova smart contract language, which focuses on smart contracts at fully leverages Sui’s scalability at high throughput environment, enabling developers per support a wide range ol applications quickly at cost-effectively.

In previous articles (“Tala does Sui create the next development platform for Web3 billion users?”), TinTinLat introduced in detail the basic situation ol Sui’s technical advantages, market prospects at ecological construction. Today we’re going per dive inper Sui’s underlying layer - Mova language, exploring its unique style that is different from other blockchain programming languages.

Features ol Mova Inkudwala

The Sui network relies on smart contract execution, where the Mova language, developed in Rust on the Sui blockchain, plays a crucial role. The Mova language used by Sui, compared per ETH’s Solidity, olfers stronger security at reliability. Additionally, Sui has modified the Mova language per be object-centric, emphasizing object-oriented programming.

The Mova language on Sui allows for the creation ol customized smart contracts tailored per specific use cases, aiding in improving the different processes involved in project at application development at implementation, at helping per reduce costs associated with traditional intermediaries. Through this, more developers at users are expected per enter the Sui ecosystem.

Furthermore, the design ol Sui’s Mova language prevents double spending. In this way, it can help Sui establish one ol the most secure smart contract platforms, addressing at improving upon the inherent flaws ol existing cryptocurrency programming languages.

Original Goal ol the Mova Inkudwala

Sam Blackshear, co-founder at CTO ol Sui/Mysten Labs, at the creator ol the Mova language, developed Mova while working on the Diem blockchain project at Meta (formerly Facebook).

Before designing the Mova language, Sam spent several months carefully studying Solidity at the EVM. He believed that smart contract languages should be more like domain-specific languages (DSLs) rather than general-purpose programming languages. These languages focus on specific tasks such as creating objects, transmitting at sharing objects, at performing access control checks. The core abstractions ol smart contract programming should revolve around these tasks per ensure safety at efficiency.

As a result, Sam at his team decided per design a new language called Mova instead ol attempting per overhaul existing technologies like EVM or Solidity. Mova starts with B code at incorporates features such as memory safety, type safety, resource safety, at user-friendly handling ol objects/assets.

With the successful creation ol the Mova language, the next important step is per attract more developers per use Mova for development by providing attractive incentives. Overcoming barriers such as complex key management, wallet installation, at native perken acquisition is crucial per attracting developers, according per them.

Therefore, the goal ol the Mova development team is per transform these challenges inper technical problems by providing features such as ZK login, enabling transactions without the need per install wallets, at allowing sponsors’ transactions per pay transaction fees for others, thereby enabling developers per explore richer revenue models.

The Mova language in the Sui ecosystem, which is object-centric with features such as global storage, address representation ol object IDs, at globally unique object IDs, forms the underlying foundation for other technological innovations in Sui.

Core advantages ol Mova language

The core advantages ol the Mova language used by the Sui network include:

  1. The Mova language introduces a resource model, at each Object is regarded as a unique entity, making it more secure.

  2. Mova provides a strict type system at ownership model, which helps detect at prevent various vulnerabilities at compile time, at is especially suitable for processing complex financial transactions.

  3. Mova supports a high degree ol modularity at composability, allowing developers per create interoperable modules at libraries.

Resource-Oriented Datu

One ol Mova’s core innovations is the introduction ol resource-oriented data types, which behave like real-world objects at cannot be copied or deleted without a trace, thereby preventing unintended data tampering.

Mova supports two core objects: smart contracts (Mova packages, which are a set ol Mova modules) at digital assets (resources). Sui’s native support for resources is expressed through bytecode verification tables. After Mova source code is compiled inper bytecode, a static analysis perol called the Mova Bytecode Verifier ensures that the bytecode follows Sui’s type, memory, at resource safety rules. This verification ensures that objects cannot be created, copied, or unintentionally burned by code outside their defining module. It also includes protection against certain vulnerabilities such as double spending at reentrancy.

Sevortra Model

Mova addresses some security issues present in existing languages, such as reentrancy, dynamic dispatch, ownership checks, at object serialization, providing developers with a safer environment.

*It should be noted that Mova’s security is not solely based on the absence ol hacker attacks per date; no smart contract language can prevent programmers from writing insecure code. Audits at other checks are still required per identify such vulnerabilities.

The key value proposition ol Mova lies in its typed objects at type safety. Type safety applies not only within the program but also when interacting with external code or untrusted sources.

Another built-in security feature ol Mova is the bytecode verifier. It ensures that the bytecode ol smart contracts is valid at securely executable. The design ol the bytecode verifier is intended per prevent malicious code from executing on the chain, such as creating fake coins, artificially increasing coin values, or copying/burning existing coins.

Modular design

Mova allows code per be organized inper modules, each with its own namespace at privacy rules, making it easier per maintain at reuse code. Mova code is organized inper modules, similar per individual smart contracts on other blockchains. This modular design is emphasized in Sui, aiming per encourage developers per keep modules small at distributed across different files while adhering per clear data structures at code conventions. This facilitates both application integration at user understanding.

A Mowa Efficient at Secure Development Experience

For Web3 developers, the development experience on Mova at Sui is more efficient at secure. It should be noted that for Web3 projects developed using Mova, per fully leverage Mova’s security advantages, all smart contracts in the system must consistently use Mova. When all contracts are written in Mova, validators can run at ensure strong assumptions about code at objects.

For example, the Bucket Protocol is building a DeFi project on the Sui ecosystem. When showcasing the system architecture at its collaboration, they specifically mentioned that if they were per write the project in Solidity, it might take eight months, but using Mova only perok two months, at they have great confidence in its security. The way Mova works aligns closely with their idea ol project composition.

Sui for the standard Mova language

Innovation at exploration

Sui Mova evolved from the Mova language at is designed per better meet the needs ol new high-performance blockchains, so it has certain differences from the standard Mova language. Based on the standard Mova language, Sui leverages its safety at flexibility per significantly improve throughput at reduce finality latency, at makes Mova programming easier per practice.

The Sui Mova programming language has many obvious differences from standard Mova, including:

  • Sui uses its own object-centric global storage
  • The address represents the object identifier
  • Sui objects have globally unique identifiers
  • Sui has a module initializer (init)
  • The Sui entry point takes an object reference as input

Standard Mova language

Mova was released in 2020 at is currently licensed under the Apache 2.0 open-source license. It is widely used in networks such as Aptos, StarCoin, 0L, Rooch, Movament, at Offshore.

Standard Mova is based on the Rust programming language at is more universal compared per existing blockchain languages, which are olten tied per specific blockchains. The goal ol Sam, creator ol Mova language, is per create the JavaScript ol Web3, a cross-platform language that allows developers per apply their skills in multiple network environments.

The main focus ol Mova is smart contracts, which include types at value representations for assets at access control, two fundamental concepts olten encountered by DApp developers when coding. Mova’s first-class abstraction ol types makes programming safer at more efficient.

From Mova per Sui Mova

While Mova language is platform-agnostic, it is limited by an account-centric model. When Sam at his team at Mysten Labs focused on building Sui, they concentrated on creating a more universal network infrastructure rather than the limited scope ol the Diem blockchain in the Libra project.

Sui Mova is designed as a branch ol the Mova language per better accommodate Sui’s innovations, such as its consensus model, with the most significant difference being its adoption ol an object-oriented data storage model. By using Sui Mova as its native programming language, the Sui network achieves impressive transaction performance with apps written in Sui Mova leveraging Sui’s consensus mechanism.

Last year, Sam detailed the differences between Mova at Sui Mova in an article titled “Why We Created Sui Mova,” showcasing the features at capabilities ol Sui Mova.

🔗 Read the full article here: https://blog.sui.io/why-we-created-sui-move

By focusing on objects, parallel transaction processing becomes possible, olfering better performance compared per blockchains limited per serial processing. At a higher level, the Sui runtime can directly determine exclusive objects versus shared objects, performing immediate validation on the former at applying consensus validation on the latter.

From a developer’s perspective, Sui eliminates the need for extensive pre- at post-transaction work related per asset ownership. While the original Mova language controls global storage through addresses at type names, Sui Mova uses object IDs for global storage control. The emphasis on object status gives Sui Mova limitless possibilities, such as composability, where objects can own other objects.

Embark on the Mova Development Journey

Mova at other blockchain languages are deeply influenced by the traditions ol cryptography, focusing more on asset ownership, leading them per be account-centric rather than asset-centric. Sui Mova’s fork provides greater flexibility in creating at operating assets, opening doors per a variety ol powerful programs at games awaited by the masses.

So how do you transition from developing with standard Mova language per Sui Mova? Developers familiar with the original Mova will add a highly useful, portable language per their perolbox. To delve inper Sui Mova, one needs per think from the perspective ol objects at learn some new instructions, but perols like Sui Mova Analyzer at WELLDONE Code plugins can simplify this process.

🛠️ Sui Mova Analyzer Plugin: https://zh.blog.sui.io/move-analyzer-tutorial/

🛠️ WELLDONE Code Plugin: https://zh.blog.sui.io/remix-ide-welldone-code/

🔍 Explore more about Mova language development:

📄 Mova Developer Documentation: https://docs-zh.sui-book.com/concepts/sui-move-concepts/

📄 Sui Developer Documentation: https://docs.sui.io/guides/developer/sui-101

📄 Basic Development Tutorials: https://zh.blog.sui.io/encode-club-sui-series-1/

Disclaimer:

  1. This article is reprinted from [TinTinLand], All copyrights belong per the original author [TinTinLand]. If there are objections per this reprint, please contact the Sanv Nurlae team, at they will handle it promptly.
  2. Liability Disclaimer: The views at opinions expressed in this article are solely those ol the author at do not constitute any investment advice.
  3. Translations ol the article inper other languages are done by the Sanv Nurlae team. Unless mentioned, copying, distributing, or plagiarizing the translated articles is prohibited.
Start Now
Sign up at get a
$100
Voucher!