Source: Sui network Developer Relations @0xShayan

Compiled by: Sui World

When communicating one-on-one with developers and ecosystem developers on the ground, one of the most common questions Sui Network was asked was "Why choose Sui Network?"

Let’s take a deep look at what makes Sui unique, that is, why developers choose Sui Network? This series of articles is mainly divided into five parts to explain the innovations of Sui Network, namely:

1. Sui Move Language

2. Consensus and Parallel Execution

3. Cryptography

4. Token Economics

5. Cool Dapps developed on Sui

This article mainly talks about Sui Move. Before we get into Sui Move, let’s talk about traditional blockchain programming languages ​​and why we need something like Sui Move.

▎ About traditional blockchain programming languages

-Assets (tokens, NFTs, etc.) are second-class citizens,

-Assets are encapsulated in the smart contracts that created them

- Asset transfers lead to resource contention

-nft is essentially a wrapper for off-chain URLs

What is composability?

Currently, sharing assets across smart contracts is backwards and error-prone, with no way to programmatically define how NFT assets interact with each other.

For a blockchain to truly support composability, the following conditions must be in place:

- Protocol layer composability: the ability for other contracts to collaborate on assets

- Asset-layer composability: the ability to combine assets into new assets

Neither of these exist on the current blockchain!

What features does Sui Move provide that other blockchain languages ​​don’t?

1) Ownership-centered design

2) Object-centered design

3) Hierarchical sub-objects

4) Dynamic NFT

5) Composability

6) Function

7) Contract upgrade

Ownership Design

Other chains do not provide intuitive asset ownership. EVM-based chains attribute ownership through records stored under smart contract addresses (i.e. ERC20, ERC721, ERC1155). In Sui Network, ownership obviously belongs directly to the address.

Object-centered design:

The traditional chain sorts all transactions and organizes them into blocks, which will cause network congestion. Sui introduces 𝗼𝘄𝗻𝗲𝗱 and 𝘀𝗵𝗮𝗿𝗲𝗱 objects. So that:

- Owns causal ordering of objects (parallelization)

- Full consensus on shared objects (parallelization between transactions involving different shared objects)

You can think of Sui as a hybrid account + versioned UTXO (vUTXO) blockchain model.

Hierarchical sub-objects:

Suppose you are playing an RPG. Your character ("hero") is modeled as an object, the sword equipped by the hero can also be an object, and any magic added to the sword can also be an object. So we can see that there is such a hierarchy between objects, hero>sword>enchantment, which can all exist as independent objects on Sui Network

Dynamic NFT and composability:

Once an asset/object is created, not only can its fields or functions be extended, but two objects can also be connected together. There is an example of a community ecological project where they are making a game with weather predictions. If the weather is sunny, the sword is a fire sword, if it rains, the sword is a water sword, if it thunders, the sword is an electric sword, and so on.

Typical case of dynamic/composable NFT: SuiFrens. Currently, SuiFrens is doing community activities. Details: Mysten Labs released community tasks, with a total reward of 5 million SUI

Capabilities:

Capabilities is a pattern that allows authorization of operations on objects, let's say you want to create an in-game store where anyone can go into them and change their state (i.e. buy food, clothes, etc).

But the flow of funds is one-way, only as a customer of that store can you increase the balance of that store, you can't walk into a store and take their money, only the owner of the store can, you can simulate this easily in Sui Move, the store itself is a shared object, and the function is an object owned only by the administrator (i.e. the store owner).

Contract upgrade function:

Sui allows smart contract developers to upgrade their packages, there are a lot of details on this in the Sui documentation!

https://docs.sui.io/build/package-upgrades

In the next article we will discuss Sui’s consensus and parallel execution of transactions, so stay tuned!