Move.

Beitrag

Teile dein Wissen.

Prämie+10

Peera Admin.
Mar 11, 2025
Experten Q&A

Sui Move vs Aptos Move - What is the difference?

Sui Move and Aptos Move - two prominent implementations of the Move programming language. While both are rooted in the same foundational principles, they have diverged significantly in design, execution, and ecosystem development. To better understand their differences, we need to uncover some of their key aspects:

How do their runtimes differ?

Both Sui and Aptos implement their own custom Move virtual machines (VMs). How does this impact performance, scalability, and developer experience? For instance:

  • Does Sui's runtime optimize for parallel execution differently than Aptos'?
  • Are there notable differences in transaction lifecycle management or gas models?

What are the differences between their standard libraries?

The Move standard library is a critical component for building smart contracts. However, Sui and Aptos have forked their implementations, leading to divergence:

  • Are there modules or functions unique to one implementation but absent in the other?
  • How do these differences affect common use cases like token creation, NFTs, or decentralized finance (DeFi)?

How does data storage differ between them?

One of the most significant distinctions lies in how Sui and Aptos handle data storage:

  • Sui uses an object-centric model, where each object has its own ownership and permissions.
  • Aptos, on the other hand, retains a more traditional account-based model similar to Ethereum.
  • How does this impact state management, composability, and gas efficiency?

Is it fair to say that Aptos is closer to EVM while Sui is closer to SVM?

Some developers argue that Aptos' account-based architecture resembles Ethereum's EVM, while Sui's object-centric approach aligns more closely with Solana's SVM.

  • Do you agree with this analogy? Why or why not?
  • How does this architectural choice influence developer ergonomics and application design?

Are there universal packages working for both Sui Move and Aptos Move?

Given their shared origins, it would be ideal if some libraries or tools were interoperable across both ecosystems.

  • Are there any existing universal packages or frameworks that work seamlessly on both platforms?
  • If not, what are the main barriers to achieving compatibility?

Can one of them be transpiled into another?

If a project is built on Sui Move, could it theoretically be transpiled to run on Aptos Move, or vice versa?

  • What are the technical challenges involved in such a process?
  • Are there tools or compilers currently available to facilitate this kind of migration?
  • Move
3
2
Teilen
Kommentare
.

Antworten

2
0xduckmove.
Mar 13 2025, 08:18

Vergleichen wir Sui Move mit Aptos Move. Diese beiden sind wie Geschwister aus der Move-Sprachfamilie, aber sie haben definitiv ihre eigene Persönlichkeit:

#Wie funktionieren sie? Die Laufzeitunterschiede: Leistung, Skalierbarkeit und Entwicklererfahrung

Sowohl Sui als auch Aptos implementieren benutzerdefinierte Move-VMs (VMs), die als Laufzeiten dienen und die Leistung, Skalierbarkeit und das Entwicklererlebnis beeinflussen.

Untersuchungen haben ergeben, dass Sui Move wie ein Freund ist, der immer herumeilt und Dinge schnell erledigt.Die virtuelle Maschine ist auf Geschwindigkeit ausgelegt — denken Sie etwa 0,5 Sekunden nach, um eine Transaktion abzuschließen, dank einiger ausgeklügelter Tricks zur parallelen Ausführung mit einem DAG-Setup (z. B. 0,5 Sekunden, wie in Aptos vs. Sui vs. Movement: Move Blockchains Compared beschrieben)

Bild

Im Gegensatz dazu verwendet Aptos eine lineare Architektur mit Funktionen zur parallelen Ausführung, aber der Konsens bei jeder Transaktion kann zu Engpässen im großen Maßstab führen, deren Endgültigkeit etwa 0,9 Sekunden beträgt.

Die kausale Reihenfolge von Sui bedeutet, dass für viele Transaktionen kein vollständiger Konsens erforderlich ist, wodurch die Latenz reduziert wird. Aptos verwendet AptosBFT, ein Derivat von HotStuff, und gewährleistet so eine schnelle Finalisierung, aber potenziell einen höheren Rechenaufwand.

Das Modell von Sui beinhaltet einen Referenzgaspreis, der zu Beginn jeder Epoche auf der Grundlage von Validator-Eingaben festgelegt wird, wodurch Vorhersagbarkeit und niedrige Gebühren gewährleistet werden (z. B. eine durchschnittliche Transaktionsgebühr von 0,0001$, gemäß Sui vs. Aptos: Welche Blockchain ist die richtige für Sie?).

Standardbibliotheken: Module, Funktionen und Anwendungsfälle

Da Sui und Aptos unterschiedliche architektonische Designs haben — Sui ist objektzentriert und behandelt Vermögenswerte als übertragbare Objekte, während Aptos kontobasiert ist und Vermögenswerte mit Konten verknüpft — unterscheiden sich ihre Standardbibliotheken erheblich in Struktur und Verwendung.

Ein benutzerdefiniertes Token erstellen

In Aptos bietet das Modul managed_coin aus der Standardbibliothek aptos_framework eine einfache Möglichkeit, fungible Token zu erstellen und zu verwalten. Hier ist ein Beispiel:

module example::MyToken {
    use aptos_framework::managed_coin;
    use std::signer;

    /// Struct representing the custom token
    struct MyToken has key { }

    /// Initialize the token with name, symbol, decimals, and monitoring option
    public entry fun initialize(account: &signer) {
        managed_coin::initialize<MyToken>(
            account,
            b"MyToken",           // Name
            b"MTK",              // Symbol
            6,                   // Decimals
            true,                // Enable monitoring
        );
    }

    /// Mint tokens to the caller's account
    public entry fun mint(account: &signer, amount: u64) {
        managed_coin::mint<MyToken>(account, amount);
    }
}

In diesem Anwendungsfall wird ein fungibles Token erstellt, das an ein Konto gebunden ist, was typisch für kontobasierte Systeme wie Aptos ist.

In Sui verwaltet das coinModul aus der Sui-Standardbibliothek Tokens als Objekte. Sie erstellen eine Währung und verwenden ein TreasuryCapObjekt, um Münzen zu prägen. Hier ist ein Beispiel:

module example::MyToken {
    use sui::coin::{Self, Coin, TreasuryCap};
    use sui::transfer;
    use sui::tx_context::{Self, TxContext};

    /// Struct defining the custom token type (with `drop` for currency creation)
    struct MY_TOKEN has drop { }

    /// Create a new currency and transfer its TreasuryCap and metadata
    public entry fun create_currency(ctx: &mut TxContext) {
        let (treasury_cap, metadata) = coin::create_currency(
            MY_TOKEN {},         // Token type witness
            6,                   // Decimals
            b"MTK",              // Symbol
            b"MyToken",          // Name
            b"A custom token",   // Description
            option::none(),      // Optional icon URL
            ctx,
        );
        transfer::public_transfer(treasury_cap, tx_context::sender(ctx));
        transfer::public_transfer(metadata, tx_context::sender(ctx));
    }

    /// Mint new coins using the TreasuryCap
    public fun mint(
        treasury_cap: &mut TreasuryCap<MY_TOKEN>,
        amount: u64,
        ctx: &mut TxContext
    ): Coin<MY_TOKEN> {
        coin::mint(treasury_cap, amount, ctx)
    }
}

Ein NFT prägen

Aptos verwendet das Token-Modul, um nicht fungible Token (NFTs) innerhalb von Sammlungen zu verwalten. So erstellen Sie eine Sammlung und prägen ein NFT:

module example::MyNFT {
    use aptos_framework::token;
    use std::string;
    use std::signer;

    /// Create a new NFT collection
    public entry fun create_collection(creator: &signer) {
        token::create_collection(
            creator,
            string::utf8(b"MyCollection"),       // Collection name
            string::utf8(b"A collection of NFTs"), // Description
            string::utf8(b"https://example.com"), // URI
            true, true, true, true, true, true, true, true, true, // Mutability flags
        );
    }

    /// Mint an NFT within the collection
    public entry fun mint_nft(
        creator: &signer,
        collection: &string::String,
        name: &string::String,
        uri: &string::String
    ) {
        token::create_token(
            creator,
            *collection,
            *name,
            string::utf8(b"Description"), // Token description
            1,                            // Maximum supply (1 for NFT)
            *uri,                         // Token URI
            0, 0, 0,                      // Royalty settings
            vector::empty(),              // Property keys
            vector::empty(),              // Property values
            vector::empty(),              // Property types
        );
    }
}```


 Verwaltung einzigartiger digitaler Vermögenswerte (z. B. Kunstwerke) innerhalb einer strukturierten Sammlung, wie sie in kontobasierten NFT-Systemen üblich ist.

`objects``object`In Sui sind NFTs eigenständig `transfer`mit eindeutigen IDs, die mithilfe der Module und verwaltet werden. Hier ist ein Beispiel:

```rust
module example::MyNFT {
    use sui::object::{Self, UID};
    use sui::transfer;
    use sui::tx_context::{Self, TxContext};
    use std::string;

    /// Struct representing an NFT
    struct MyNFT has key {
        id: UID,
        name: string::String,
        uri: string::String,
    }

    /// Mint an NFT and transfer it to the sender
    public entry fun mint(
        ctx: &mut TxContext,
        name: string::String,
        uri: string::String
    ) {
        let nft = MyNFT {
            id: object::new(ctx),  // Generate a unique ID
            name,
            uri,
        };
        transfer::transfer(nft, tx_context::sender(ctx));
    }
}

Erstellung und Übertragung einzigartiger Vermögenswerte (z. B. Sammlerstücke) als unabhängige Objekte unter Nutzung der objektzentrierten Flexibilität von Sui. Aufgrund dieser Unterschiede müssen Entwickler den Code anpassen, was sich auf die Entwicklungszeit und die Interoperabilität des Ökosystems auswirkt.

Datenspeicherung: Objektzentrierte oder kontobasierte Modelle

Einer der wichtigsten Unterschiede besteht in der Datenspeicherung. Sui verwendet ein objektzentriertes Modell, bei dem jedes Asset (z. B. Token, NFTs) ein Objekt mit Metadaten, Eigentum und Berechtigungen ist, das in der Kette mit eindeutigen IDs gespeichert wird ([Objektmodell | Sui-Dokumentation](Das https://docs.sui.io/concepts/object-model)).This Modell ermöglicht parallele Statusaktualisierungen, wodurch die Zusammensetzbarkeit und Gaseffizienz verbessert werden, da Transaktionen oft nur eine Ledger-Aktualisierung erfordern (z. B. aktualisiert die Übertragung eines Objekts seinen Status, nicht mehrere Konten).

Aptos hingegen verwendet ein kontobasiertes Modell, ähnlich wie Ethereum, bei dem Konten eigene Ressourcen im globalen Speicher besitzen, sodass Aktualisierungen sowohl der Absender- als auch der Empfängerkonten pro Transaktion erforderlich sind (Aptos vs. Sui - The Tie).

Bild

Näher an EVM oder SVM?

Die Frage, ob Aptos EVM (Ethereum Virtual Machine) näher steht und Sui SVM (wahrscheinlich Solana Virtual Machine) näher steht, bedarf einer Klärung. Das kontobasierte Modell von Aptos entspricht dem von EVM und aktualisiert den Kontostatus pro Transaktion, sodass es Ethereum-Entwicklern vertraut ist (Aptos vs. Sui: Vergleich zweier wachsender Layer-1-Blockchains).

Das objektzentrierte Modell von Sui ist jedoch einzigartig und nicht direkt vergleichbar mit SVM, das wie Solana auf Konten basiert. Einige Entwickler argumentieren, dass Sui Solana in Bezug auf Skalierbarkeit ähnelt, aber hier geht es mehr um Leistung als um Datenmodelle. Man kann also mit Fug und Recht sagen, dass Aptos EVM näher ist, während das Modell von Sui anders ist und nicht mit SVM übereinstimmt, was die Analogie in Frage stellt.

Universalpakete: Kompatibilität und Barrieren

Angesichts ihrer gemeinsamen Ursprünge würde eine ideale Interoperabilität universelle Pakete beinhalten. Untersuchungen deuten jedoch darauf hin, dass solche Pakete nicht existieren, da Unterschiede in den Standardbibliotheken und Datenmodellen Hindernisse darstellen.

Beispielsweise würde ein Paket, das Aptos_coin von Aptos verwendet, auf Sui nicht funktionieren, ohne es für sui: :coin (GitHub - pentagonxyz/movemate: Bibliothek mit Modulbausteinen für Move) umzuschreiben. Zu den Hindernissen gehören plattformspezifische APIs, Objekt- und Kontenmodelle und unterschiedliche VM-Implementierungen, sodass eine nahtlose Kompatibilität ohne signifikante Anpassungen unwahrscheinlich ist.

3
Beste Antwort
Kommentare
.
BigDev.
Aug 15 2025, 16:34

Hier ist ein klarer, schnörkelloser Vergleich zwischen Sui Move und Aptos Move, der zeigt, dass sie eine gemeinsame Kernsprache haben, sich aber in Laufzeitverhalten, Datenmodellen und Entwicklungsmustern unterscheiden.

🏃 Laufzeit: Geschwindigkeit, Skalierbarkeit und Transaktionsfluss

Die Laufzeit von Sui ist für die parallele Ausführung mithilfe eines DAG-Modells optimiert. Viele Transaktionen überspringen dank der kausalen Reihenfolge den globalen Konsens, sodass einfache Übertragungen in etwa 0,5 Sekunden abgeschlossen werden können. Es wurde für Anwendungsfälle mit hohem Durchsatz und niedriger Latenz entwickelt.

Aptos unterstützt auch die parallele Ausführung, verwendet jedoch ein strengeres AptosBFT-Konsensmodell (basierend auf HotStuff), sodass jede Transaktion im Konsens erfolgt. Dies bietet stärkere Konsistenzgarantien, kann aber die Dinge etwas verlangsamen — die Endgültigkeit landet bei etwa 0,9 Sekunden.

Kurz gesagt: • Sui ist schneller für einfache, unabhängige Operationen. • Aptos legt mehr Wert auf Konsistenz und einen breiteren Konsens pro TX.

🧱 Datenmodell: Objektzentriert oder kontozentriert

Das gesamte Modell von Sui dreht sich um Objekte. Alles in der Kette — Token, NFTs, sogar Pakete — sind Objekte mit eindeutigen IDs. Der Besitz wird pro Objekt verfolgt. Das bedeutet: • Einfache Zusammensetzbarkeit und modularer Aufbau • Eine Transaktion = ein Objektwechsel = effizientes Gas • Ideal für Spiele, NFTs und Composable DeFi

Aptos hält an einem bekannteren kontobasierten Modell fest. Konten besitzen strukturierte Ressourcen, und bei jeder Transaktion werden die Absender-/Empfängerkonten aktualisiert. Es ist eher wie Ethereum: • Bekannt für Solidity-Entwickler • Starke staatliche Konsistenz • Besser geeignet für traditionelle Token-Flows

Also: • Sui → Wie die Verwaltung von Vermögenswerten als eigenständige Einheiten • Aptos → Wie bei der Verwaltung von Salden, die an den Kontostand gebunden sind

💰 Token-Erstellung: TreasuryCap im Vergleich zu Managed Coin

In Sui definierst du einen Token als Objekt (MY_TOKEN) und prägst ihn über einen TreasuryCap. Mit der Funktion coin: :create_currency haben Sie die volle Kontrolle über Metadaten und Angebotslogik. Tokens sind auch Objekte.

In Aptos verwenden Sie das Modul managed_coin. Es bindet das Token an ein Konto und verfolgt das Angebot über den Ressourcenzugriff.

Zusammenfassung: • Sui → Token ist ein Objekt mit UID, lebt in der Kette • Aptos → Token ist eine Ressource, die unter Kontokontrolle steht

🎨 NFTs: Sammlungen im Vergleich zu eigenständigen Objekten

Aptos-NFTs werden innerhalb von Sammlungen mithilfe von token: :create_token geprägt, das an den Kontospeicher gebunden ist.

Sui NFTs sind eigenständige Objekte mit eigener ID und Metadaten. Sie prägen und übertragen sie wie jedes Objekt, mit voller Flexibilität.

Das bedeutet: • Aptos → Besser für kuratierte Sammlungen • Sui → Besser für zusammenstellbare, zugelassene NFTs (z. B. Spielgegenstände)

🔧 Erfahrung mit Entwicklern und Interop • Sui legt den Gaspreis einmal pro Epoche fest → billig + vorhersehbar • Aptos-Gas ist dynamisch, aber pro TX genauer

Aber Interop ist schwierig. Die Shared Move-Syntax entspricht nicht den gemeinsam genutzten Paketen: • aptos_framework: :coin ≈ sui: :coin • Kontobasierte Logik lässt sich nicht einfach auf Objektlogik übertragen

Aus diesem Grund gibt es noch keine Universalpakete. Selbst bei gemeinsamen Wurzeln zwingen die Unterschiede zwischen VM und Laufzeit Entwickler dazu, kettenspezifische Logik zu schreiben.

🔄 Vergleich zwischen EVM und SVM • Aptos ist EVM näher — Kontomodell, ähnliche Statusaktualisierungen • Sui ist nicht ganz Solana-ähnlich (SVM basiert auch auf Konten). Es ist einzigartig, mit objektorientiertem Design

Vergessen Sie also Analogien — Sui ist einzigartig in der Art und Weise, wie es Daten und Ausführung modelliert.

📦 Wie Teams mit Kompatibilität umgehen

Wenn du kettenübergreifend baust: • Du benötigst Adapter oder separate Module pro Kette • Tools wie MoveMate oder Pentagon helfen, aber volle Interoperabilität bedeutet immer noch, für jede Laufzeit zu schreiben • Manche Entwickler beginnen der Einfachheit halber mit Aptos und wechseln dann zur Skalierung und Objektlogik zu Sui

TL; DR — Sui gegen Aptos Move

Eigenschaften: Sui Move, Aptos Move Parallele Laufzeit, DAG-basiert, BFT-Konsens mit einer Endgültigkeit von unter 1 s, starke Konsistenz Datenmodell Objektzentriert Kontobasiert Token-Erstellung über ein TreasuryCap-Objekt Über managed_coin im Konto NFTs Eigenständige, zusammensetzbare Objekte, sammlungsbasiert, an ein Konto gebunden Entwicklererlebnis Schnelles, zusammensetzbares, neues Modell Bekannt, stabil, Ethereum-ähnlich Referenzpreis pro TX, basierend auf der Epoche des Gasmodells Interop Low, benötigt kettenspezifische Logik Das Gleiche

1
Kommentare
.

Weißt du die Antwort?

Bitte melde dich an und teile sie.

Move is an executable bytecode language used to implement custom transactions and smart contracts.

270Beiträge616Antworten
Sui.X.Peera.

Verdiene deinen Anteil an 1000 Sui

Sammle Reputationspunkte und erhalte Belohnungen für deine Hilfe beim Wachstum der Sui-Community.