Ursprüngliche Forschungsanalyse von Web3.com Ventures
0xFishylosopher

Einführung
Angesichts des kürzlichen Mainnet-Starts von Aptos und der Einführung seines Tokens auf Binance und anderen großen zentralisierten Börsen gibt es keinen besseren Zeitpunkt, eine explorative Analyse dieses lange gepriesenen Projekts zu schreiben. Als verwaistes Kind von Metas Versuchen, die Kryptowährung Libra zu schaffen, führt Aptos Libras Ideal fort, die Blockchain zu sein, die die nächste Million Benutzer in die Kryptowelt einbinden wird.
Der übergeordnete Fokus von Aptos liegt darauf, eine skalierbare, sichere und zuverlässige Blockchain bereitzustellen [1]. Dabei setzt Aptos auf eine neue Smart-Contract-Sprache namens Move, die angeblich eine „sicherere“ Sprache ist als der aktuelle „Goldstandard“ Ethereums Solidity. Natürlich ist Aptos nicht die erste L1-Blockchain, die sich selbst als „skalierbar, sicher und zuverlässig“ vermarktet. Auch andere Chains, vor allem Solana, haben in der Vergangenheit versucht, dies als ihren Slogan zu verwenden, mit unterschiedlichem Erfolg [2]. In diesem Essay werde ich versuchen, von den grundlegenden Eigenschaften der Sprache Move auszugehen, die technischen Grundlagen von Aptos im Kontext anderer ähnlicher Projekte zu analysieren und eine kritische Einschätzung des Potenzials und der Grenzen dieser brandneuen Chain abzugeben.
Sprache verschieben
Eine Analyse von Aptos ist ohne eine Analyse der Sprache Move nicht möglich. Tatsächlich liegt hier wohl das meiste Potenzial von Aptos. Move wurde ursprünglich von Metas Libra-Team (jetzt Diem) entwickelt, um ein paradigmatisch anderes Smart-Contract-Programmiermodell im Vergleich zu anderen Smart-Contract-Sprachen bereitzustellen. Anstatt einen transaktionsbasierten Ansatz zu verfolgen, verfolgt Move einen ressourcenbasierten Ansatz zur Definition von Smart-Contract-Modellen [3].
Was bedeutet das alles? Beginnend mit Bitcoin hat die große Mehrheit der namhaften Blockchains einen „Transaktions-First“-Ansatz übernommen, bei dem jeder Eintrag in einem Blockchain-Block eine Transaktion ist (sagen wir zwischen Alice und Bob). Eine Transaktion ist ein relatives Objekt. Damit eine Transaktion stattfinden kann, müssen eine Alice- und eine Bob-Adresse vorhanden sein. Um sicherzustellen, dass Alice bei einem Transaktions-First-Ansatz eine Münze nicht „doppelt ausgibt“, müssen wir prüfen, dass es keine Konflikte mit allen anderen Transaktionen gibt, ein Ärgernis, das Transaktionen zwangsläufig verlangsamt.
Der „ressourcenbasierte“ Ansatz von Move unterscheidet sich dagegen grundlegend. Statt Zeilen von A-nach-B-Transaktionen aufzuzeichnen, zeichnet Move das Objekt (oder die Ressource) auf, das den Besitzer wechselt, und aktualisiert lediglich die Attribute entsprechend. Wichtig ist, dass Ressourcen atomare Einheiten sind – die Existenz einer Ressource X ist nicht von der Existenz anderer Ressourcen abhängig, anders als bei Transaktionen, bei denen eine Transaktion T von der Existenz zweier vorheriger Agenten, A und B, abhängt. Daher ermöglicht ein ressourcenbasierter Ansatz eine viel atomarere, unabhängigere Struktur, die für die parallele Ausführung optimiert ist.

„Ressourcen“ in Move sind im Wesentlichen Objekte mit bestimmten Attributen. Im Fachjargon sind sie implementierte Strukturen (also eine Container-Datenstruktur) [4]. An dieser Stelle könnten Leute mit Ethereum-Programmierhintergrund eine Frage stellen: Solidity hat neben anderen Datenstrukturen auch Strukturen. Was ist das Besondere an den Strukturen in Move? Ich glaube, der wichtigste Unterschied besteht darin, dass Strukturen in Solidity zwar eine relativ periphere Rolle in der Sprache spielen (und hauptsächlich der Übersichtlichkeit halber verwendet werden), in Move jedoch die Grundlage von allem sind. Außerdem haben die Strukturen von Move verschiedene „Fähigkeiten“, darunter „Kopieren“, „Ablegen“, „Speichern“ und „Schlüssel“, die definieren, ob ein Objekt duplizierbar, speicherbar, löschbar usw. ist [5]. Diese Art der Strukturnotation unterscheidet sich völlig von Solidity oder sogar von der großen Mehrheit der gängigen Programmiersprachen (z. B. C/C++). Diese verschiedenen „Fähigkeiten“ sind jedoch zutiefst intuitiv. Manche Dinge können Sie „kopieren“, wie eine Münze oder ein Token. Manche Dinge können Sie „ablegen“ oder wegwerfen. Andere Dinge, wie beispielsweise einzigartige digitale Assets, können möglicherweise nicht kopiert werden. Betrachten wir nun die folgende offizielle Definition einer „Ressource“ auf Move:
„Wir bezeichnen Strukturwerte häufig als Ressourcen, wenn sie nicht kopiert und nicht gelöscht werden können.“ – Strukturen und Ressourcen, Move Language Documentation [4]
„Ressourcen“ sind also im Wesentlichen einzigartige „Strukturen“, die immer für Sie da sind. Wie romantisch.
Die vollständige Neudefinition eines „Structs“ durch Move ermöglicht die Verwendung einer Datenstruktur, um Token, NFTs, Smart Contracts und andere digitale Assets in einem sauberen, modularen Ansatz prägnant zu definieren [6]. Dies ist etwas, womit das EVM von Ethereum einfach nicht mithalten kann; jeder mit ein wenig Entwicklungserfahrung mit dem EVM weiß, wie frustrierend der Umgang mit Structs (und verschachtelten Structs) in Solidity ist.
Entscheidend ist, dass der ressourcenbasierte Ansatz von Move seine Sicherheitsgarantien untermauert. Wie im Whitepaper von Move erwähnt, gibt es in vielen Programmen eine indirekte Darstellung von Assets, was bedeutet, dass Knappheit und Zugriffskontrolle nicht skalierbar sind. Während beispielsweise die Knappheit von Ether fest codiert und durch die EVM geschützt ist, erben andere ERC-20-Token diese Schutzmechanismen nicht und müssen darauf achten, keine Fehler einzuführen, die eine Duplizierung, Wiederverwendung oder den Verlust von Assets ermöglichen“ [4]. Denken Sie an den klassischen Reentrancy-Angriff. Dies ist etwas, das EVM-Projekte schon lange plagt und oft zu Verlusten in Millionenhöhe führt [7]. Aufgrund des ressourcenbasierten Ansatzes von Move ist der Reentrancy-Angriff bei Move unmöglich. Daher ist die Eintrittsbarriere bei der Codierung von Move wohl viel zugänglicher als bei der EVM – ein entscheidender Faktor für die Massenakzeptanz.
Aptos — Technische Grundlagen
Die wohl größte Leistung von Aptos ist schlicht, Move als Sprache auf den Markt gebracht zu haben. ****Tatsächlich ist ein Großteil des Aptos-Designs direkt von der von Meta entwickelten Diem (Libra)-Blockchain übernommen. Denken Sie daran, dass Aptos eine Kette ist, bei der Skalierbarkeit und Sicherheit im Vordergrund stehen. Um dies zu erreichen, werden hauptsächlich zwei technische Implementierungen verwendet. Die erste befindet sich in der Konsensschicht, nämlich dem AptosBFT-Konsensmechanismus. Die zweite ist die Ausführungsschicht bzw. die Block-STM-Ausführungs-Engine. Sehen wir uns diese der Reihe nach an.
Erstens ist AptosBFT ein byzantinisch fehlertoleranter Konsensmechanismus, was im Wesentlichen bedeutet, dass er weiterhin Sicherheit gewährleisten kann, solange nicht mehr als 1/3 der Knoten im Netzwerk böswillige Akteure sind [8]. Dies ist eine gängige Praxis: Bitcoins Proof of Work, Ethereums Proof-of-Stake usw. sind alle byzantinisch fehlertolerant. Wie also implementiert AptosBFT tatsächlich seinen Konsensmechanismus? Wie alle anderen Proof-of-Stake-Ketten verlässt sich Aptos auf „gesteckte“ Validatorknoten. Es implementiert eine Variante des HotStuff-Konsensalgorithmus, eines modernen PoS-Algorithmus, der im Vergleich zu früheren Modellen (z. B. pBFT) ein viel saubereres Kommunikationsprotokoll zwischen Knoten bietet, indem die Knoten mit einem „rotierenden Anführer“ statt mit jedem anderen Knoten kommunizieren [9]. Während AptosBFT einige Optimierungen auf Basis von HotStuff einführt, darunter vor allem einen „Schlüsselrotationsmechanismus“ (zur Erhöhung der Sicherheit) und eine Reduzierung des Overheads (zur Verbesserung der Skalierbarkeit), gibt es am PoS-Design von HotStuff keine größeren strukturellen Änderungen [10].

Andererseits ist die parallele Ausführungs-Engine von Block-STM ein weitaus originelleres Design und wohl der wichtigste technische Durchbruch des Projekts [11]. Denken Sie daran, dass Ressourcen atomar sind – der Besitzerwechsel einer bestimmten Ressource X hängt nicht von anderen Ressourcen ab. Indem wir Transaktionen in Blöcken gruppieren (wie Legosteine), können wir eine enorme Parallelität bei der Ausführung von Ressourcentransaktionen nutzen und so eine 20-mal höhere Rechengeschwindigkeit im Vergleich zu Ethereum erreichen [11].
Aber wie sieht das im Vergleich zu Solana und anderen parallelen Ausführungs-Engines aus? Solanas wichtigste Innovation bestand darin, alle Abhängigkeiten seiner Smart Contracts fest zu codieren, um parallele Ausführungen durchführen zu können. Wenn alle Abhängigkeiten im Voraus bekannt sind, kann die Solana-Ausführungs-Engine die erforderlichen Abhängigkeiten vor der Laufzeit sperren. Aptos hingegen verwaltet Abhängigkeiten im laufenden Betrieb, indem es zunächst alle Transaktionen „optimistisch“ ausführt und im Fehlerfall die spezifischen Transaktionen, die fehlgeschlagen sind, erneut ausführt [12].

Lassen Sie uns das oben Gesagte anhand einer einfachen Analogie erklären. Ethereum ist eine einspurige Straße, auf der alle Autos in einer Reihe hintereinander fahren müssen, während Solana und Aptos jeweils vierspurige Schnellstraßen sind. Das beschleunigt die Dinge natürlich. Die Frage ist aber, wie fahren die Autos auf der Schnellstraße? Bei Solana wird jedem Auto im Wesentlichen eine bestimmte Spur zugewiesen, und es wird immer auf dieser Spur fahren. Im besten Fall ist das sehr schnell und effizient, aber wenn dieser Zuweisungsprozess schiefgeht, ist das ein sehr schlimmes Worst-Case-Szenario. Bei Aptos hingegen werden den Autos zunächst einige Spuren zugewiesen, aber wenn das nicht funktioniert, dürfen die Autos auf andere Spuren ausweichen, um Unfälle zu vermeiden. Auch wenn Aptos im besten Fall vielleicht nicht so schnell ist wie Solana, ist es also zuverlässiger als Solana und hat ein besseres Worst-Case-Szenario [13].
Evaluation – Potenzial und Grenzen
Aptos ist derzeit die erste und einzige große Move-basierte L1-Kette, die ein Mainnet gestartet hat. Daher ist die Veröffentlichung des Aptos-Mainnets ein unglaublich symbolisches Ereignis; das Geld und die Medienaufmerksamkeit, die Aptos auf sich gezogen hat, stehen nicht unbedingt im Verhältnis zu seiner inhärenten technischen Innovation.
Wie oben erwähnt, besteht die wichtigste technische Innovation, die Aptos selbst vorgenommen hat, in seiner Block-STM-Parallelausführungs-Engine. Die meisten anderen technischen Aspekte, einschließlich des Konsensmechanismus und der Verwendung der Move-Sprache, sind geringfügig verbesserte Legacy-Produkte, die von Meta übernommen wurden [14]. In Bezug auf die Block-STM-Parallelausführungs-Engine ist unklar, ob dies einen qualitativen Unterschied zwischen der Benutzererfahrung bei Aptos und der Benutzererfahrung bei Solana verursachen wird; wenn die Benutzererfahrung dieselbe ist, wird es dem Benutzer egal sein, wie sie auf technischer Ebene implementiert wird.
Wie bei jedem Infrastrukturprojekt hängt der langfristige Erfolg von Aptos davon ab, welche Projekte darauf aufbauen. Derzeit sind die Projekte in seinem Ökosystem wie Liquidswap DEX, der Topaz NFT-Marktplatz und der Aptos Names-Domaindienst zwar notwendige Produkte in jedem Blockchain-Ökosystem, aber für das Design von Aptos nicht einzigartig genug [15]. Diese Projekte sind wie der Lebensmittelladen, eine Schule und ein Krankenhaus in einem kleinen Dorf. Obwohl sie für das Funktionieren des Dorfes notwendig sind, verleihen sie ihm keinen einzigartigen Charakter, den kein anderes Dorf hat.
Rückblickend lässt sich ein Teil des Erfolgs von Solana auf Projekte wie StepN zurückführen, die tatsächlich in der Lage waren, Solanas Vorteil der Parallelität zu nutzen. Diese GameFi- und SocialFi-Projekte beinhalten oft große Mengen paralleler Daten, die relativ isoliert sind. Daher eignen sich diese Anwendungen hervorragend für parallele Ausführungsmaschinen wie Aptos und Solana, können aber auch eine große Verbraucherbasis und ein hohes Transaktionsvolumen erzielen. Tatsächlich machte StepN zu einem bestimmten Zeitpunkt allein rund 20 % der gebührenzahlenden Benutzer von Solana aus [16].
Damit Aptos als Infrastrukturprojekt erfolgreich sein kann, muss es eine einzigartige Palette von Projekten geben, die die Vorteile der parallelen Ausführungs-Engine von Aptos optimal nutzen, Projekte, die auf Ethereum oder sogar Solana nicht möglich wären. Mit Aptos‘ neuartigem Block-STM-Design könnten diese möglicherweise in Form einer neuen Klasse von SocialFi-Projekten Gestalt annehmen, bei denen Benutzer in kleinen Cliquen interagieren (wie Gruppenchats). Da diese Gruppen fließend und dynamisch und gleichzeitig einigermaßen unabhängig voneinander sein können, sind sie für die parallele Ausführungs-Engine von Aptos viel besser geeignet als für die von Solana oder Ethereum. Aber das ist natürlich nur eine abstrakte Spekulation.
Dennoch ist der Start des Aptos-Mainnets noch immer ein unglaublich wichtiges und symbolträchtiges Ereignis in der Kryptowelt. Er stellt den Höhepunkt der jahrelangen Bemühungen der Meta-Ingenieure dar, ein qualitativ anderes Paradigma zur Lösung des Ethereum-Engpasses bei der Skalierbarkeit zu erwecken. Die einzigartigen Sprachfunktionen von Move bedeuten, dass es zwangsläufig DApps geben wird, die sich viel besser auf Move als auf Solidity oder anderen Smart-Contract-Sprachen implementieren lassen. Aber werden diese Projekte zwangsläufig im Aptos-Ökosystem implementiert? Niemand weiß es. Aptos genießt möglicherweise einige First-Mover-Vorteile, weil es Move in Produktion bringen und seinen Namen mit der Sprache Move verknüpfen konnte. Gleichzeitig könnte es aber auch ein MySpace-ähnliches Schicksal als First Mover erleiden.
Zumindest eines ist sicher: Aptos mag das erste Move-Experiment auf dem Markt sein, aber es wird sicherlich nicht das letzte sein [17].
🐦 @0xfishylosopher
📅 22. Oktober 2022
Haftungsausschluss: Diese Recherche dient ausschließlich Informationszwecken. Sie stellt keine Anlageberatung oder Empfehlung zum Kauf oder Verkauf von Anlagen dar und sollte nicht zur Beurteilung der Vorzüge von Anlageentscheidungen verwendet werden.
Verweise
[1] Siehe die Hauptseite von Aptos Labs: https://aptoslabs.com/
[2] Einführung in Solana: https://www.forbes.com/advisor/investing/cryptocurrency/what-is-solana/
[3] Whitepaper zur Move-Sprache: https://diem-developers-components.netlify.app/papers/diem-move-a-language-with-programmable-resources/2020-05-26.pdf
[4] Move-Entwicklerdokumentation für Strukturen und Ressourcen: https://github.com/move-language/move/blob/main/language/documentation/book/src/structs-and-resources.md
[5] Details zu Strukturfähigkeiten: https://move-language.github.io/move/abilities.html
[6] Siehe Move Language-Tutorial: https://101blockchains.com/move-programming-language-tutorial/
[7] https://blog.chain.link/reentrancy-attacks-and-the-dao-hack/
[8] Einzelheiten zur byzantinischen Fehlertoleranz: https://decrypt.co/resources/byzantine-fault-tolerance-what-is-it-explained
[9] HotStuff-Konsensmodell: https://hackernoon.com/hotstuff-the-consensus-protocol-behind-safestake-and-facebooks-librabft
[10] AptosBFT-Konsens: https://blog.pontem.network/aptosbft-all-you-need-to-know-about-the-bft-consensus-in-aptos-ff4cf22c7a80
[11] Siehe technisches Dokument zu Block-STM: https://arxiv.org/abs/2203.06871
[12] Vergleich der Ausführungs-Engines Aptos und Solana: https://www.gofyeo.com/post/aptos-vs-solana-a-technical-comparison-part-1
[13] Aptos Worst-Case-Analyse als O(n²), Solana als O(n⁴). Details: https://antiape.substack.com/p/cf40447d-d674-4454-9e09-f003517de6de?s=r
[14] Siehe Aptos Whitepaper: https://aptos.dev/assets/files/Aptos-Whitepaper-47099b4b907b432f81fc0effd34f3b6a.pdf
[15] Aptos-Ökosystem: https://coinmarketcap.com/alexandria/article/what-is-aptos-the-ultimate-guide-to-the-aptos-ecosystem
[16] Von Messari Cryptos Twitter: https://twitter.com/MessariCrypto/status/1567880625218019333
[17] Siehe Sui, eine andere Move-basierte Sprache: https://sui.io/