Web3.com Ventures Original Research Analysis

0xFishylosopher

Úvod

Vzhledem k nedávnému spuštění mainnetu Aptos a jeho tokenu na Binance a dalších hlavních centralizovaných burzách není lepší čas na sepsání průzkumné analýzy tohoto dlouho opěvovaného projektu. Aptos, osiřelé dítě Metaových pokusů o vytvoření kryptoměny Libra, pokračuje v ideálu Libry být blockchainem, který přijme další milion uživatelů kryptoměn.

Zastřešujícím cílem Aptosu je poskytovat škálovatelný, bezpečný a spolehlivý blockchain [1]. K tomu se Aptos spoléhá na nový jazyk inteligentních smluv, Move, zdánlivě „bezpečnější“ jazyk než současný „zlatý standard“ Solidity Ethereum. Aptos samozřejmě není první blockchain L1, který se prodává jako „škálovatelný, bezpečný a spolehlivý“. Jiné řetězce, nejvíce pozoruhodně Solana, také pokusil se použít toto jako jejich slogan v jejich minulosti, se střídavým úspěchem [2]. V této eseji se budu snažit vycházet ze základních atributů jazyka Move, analyzovat technické základy Aptosu v kontextu jiných podobných projektů a poskytnout kritické posouzení potenciálu a omezení tohoto horkého nového řetězce.

Přesunout jazyk

Nemůžete provést analýzu Aptos bez analýzy jazyka Move. Ve skutečnosti odtud pravděpodobně pochází většina potenciálu Aptosu. Move byl původně vyvinut týmem Meta's Libra Team (nyní pojmenovaný Diem), aby poskytoval paradigmaticky odlišný programovací model smart contract ve srovnání s jinými smart contract jazyky; Namísto transakčního přístupu využívá Move k definování modelů inteligentních kontraktů přístup založený na zdrojích [3].

Takže co to všechno znamená? Počínaje bitcoinem si drtivá většina významných blockchainů osvojila přístup „nejprve transakce“, kde každý záznam v bloku blockchainu je transakcí (řekněme mezi Alicí a Bobem). Transakce je relativní objekt; aby došlo k transakci, musí existovat adresa Alice a Bob. Abychom se ujistili, že Alice „neutrácí dvakrát“ coin v rámci transakčního přístupu, musíme zkontrolovat, zda nedochází ke konfliktu se všemi ostatními transakcemi, což je problém, který nevyhnutelně transakce zpomaluje.

Na druhou stranu přístup Move „založený na zdrojích“ je dramaticky odlišný. Místo zaznamenávání řádků transakcí A až B zaznamenává Move objekt (nebo zdroj) měnící majitele a pouze podle toho aktualizuje atributy. Důležité je, že zdroje jsou atomické entity – existující zdroj X nezávisí na žádném jiném existujícím zdroji, na rozdíl od případu transakcí, kde transakce T závisí na dvou předchozích agentech, existenci A a B. Přístup založený na zdrojích tedy umožňuje mnohem atomičtější, nezávislou strukturu optimalizovanou pro paralelní provádění.

„Zdroje“ v Move jsou v podstatě objekty, které mají určité atributy. V technickém žargonu jsou to implementované struktury (tj. datová struktura kontejneru) [4]. V tuto chvíli si lidé s programováním Ethereum mohou položit otázku: Solidity má také struktury, stejně jako další datové struktury. Čím jsou struktury v Move zvláštní? Domnívám se, že nejdůležitější rozdíl je v tom, že zatímco struktury v Solidity mají relativně okrajovou část jazyka (většinou se používají kvůli přehlednosti), struktury jsou základem všeho v Move. Struktury Move mají navíc různé „schopnosti“, včetně „kopírovat“, „upustit“, „uložit“ a „klíč“, které definují, zda je objekt duplikovatelný, skladovatelný, smazatelný atd.[5]. Tento druh zápisu struktur je zcela odlišný od Solidity nebo vlastně u velké většiny běžných programovacích jazyků (např. C/C++). Tyto různé „schopnosti“ jsou však hluboce intuitivní. Některé věci můžete „kopírovat“, jako je mince nebo žeton. Některé věci můžete „zahodit“ nebo vyhodit. Jiné věci, například jedinečné digitální aktivum, nemusí být možné zkopírovat. Nyní zvažte následující oficiální definici „zdroje“ v pohybu:

"Často označujeme hodnoty struct jako zdroje, pokud je nelze zkopírovat a nelze je zahodit." — Struktury a zdroje, Přesunout jazykovou dokumentaci [4]

Takže „zdroje“ jsou v podstatě jedinečné „struktury“, které tu pro vás budou vždy. Jak romantické.

Úplná redefinice „struktury“ společnosti Move umožňuje používat jednu datovou strukturu ke stručné definici tokenů, NFT, inteligentních smluv a dalších digitálních aktiv v čistém, modulárním přístupu[6]. To je něco, co Ethereum’s EVM prostě nemůže srovnávat; každý, kdo má nějaké zkušenosti s vývojem pomocí EVM, ví, jak frustrující je zabývat se strukturami (a vnořenými strukturami) v Solidity.

Zásadní je, že přístup společnosti Move založený na zdrojích zaručuje záruky bezpečnosti. Jak uvádí whitepaper Move, v mnoha programech existuje nepřímá reprezentace aktiv, což znamená, že nedostatek a řízení přístupu není škálovatelné. Například, zatímco nedostatek Etheru je pevně zakódován a chráněn EVM, jiné tokeny ERC-20 „nedědí tyto ochrany, musí si dávat pozor, aby nezavedly chyby, které umožňují duplikaci, opětovné použití nebo ztrátu aktiv“ [4]. Zvažte klasický reentrancy útok. To je něco, co již dlouho sužuje projekty EVM a často způsobuje, že přicházejí o miliony a miliony dolarů [7]. Kvůli přístupu Move založeného na zdrojích je útok reentrancy na Move nemožný. Překážka vstupního kódování Move je tedy pravděpodobně mnohem dostupnější než EVM – zásadní faktor pro masové přijetí.

Aptos — Technické principy

Pravděpodobně největším úspěchem Aptosu je prostě uvedení Move jako jazyka na trh. ****Ve skutečnosti je velká část designu Aptosu převzata přímo z blockchainu Diem (Libra) vyvinutého společností Meta. Připomeňme, že Aptos je řetězec, který klade důraz na škálovatelnost a bezpečnost. K dosažení tohoto cíle se používají dvě hlavní technické implementace. První je v jeho konsenzuální vrstvě, konkrétně v mechanismu konsenzu AptosBFT. Druhým je jeho prováděcí vrstva neboli prováděcí engine Block-STM. Pojďme je prozkoumat v pořadí.

Za prvé, AptosBFT je byzantský konsenzuální mechanismus odolný proti chybám, což v podstatě znamená, že může i nadále zaručovat bezpečnost, pokud ne více než 1/3 uzlů v síti jsou zákeřní aktéři [8]. Toto je standardní postup: Bitcoin’s Proof of Work, Ethereum’s Proof-of-Stake atd. jsou všechny byzantské chyby odolné. Jak tedy AptosBFT skutečně implementuje svůj konsensusní mechanismus? Stejně jako všechny ostatní řetězce Proof-of-Stake spoléhá Aptos na „vsazené“ uzly validátoru. Implementuje variantu konsenzuálního algoritmu HotStuff, moderního algoritmu PoS, který nabízí mnohem čistší komunikační protokol mezi uzly ve srovnání s dřívějšími modely (např. pBFT), protože uzly komunikují s „rotujícím vůdcem“ spíše než s každým jiným uzlem [9 ]. Zatímco AptosBFT zavádí několik optimalizací nad HotStuff, zejména „mechanismus rotace klíčů“ (pro zvýšení bezpečnosti) a snížení režie (pro zlepšení škálovatelnosti), nedošlo k žádné zásadní strukturální změně v návrhu HotStuff PoS [10].

Na druhou stranu je modul paralelního provádění Block-STM mnohem originálnějším designem a pravděpodobně hlavním technickým průlomem projektu [11]. Připomeňme, že zdroje jsou atomické – změna rukou určitého zdroje X nezávisí na žádném jiném zdroji. Seskupením transakcí do bloků (jako jsou kousky lega) můžeme využít masivní paralelismus při provádění transakcí zdrojů a získat 20x vyšší rychlost výpočtu ve srovnání s Ethereem[11].

Ale jak je to ve srovnání se Solanou a dalšími paralelními exekučními stroji? Primární inovací společnosti Solana bylo napevno zakódovat všechny její závislosti na inteligentních smlouvách, aby mohla provádět paralelní provádění. Se všemi předem známými závislostmi může prováděcí engine Solana uzamknout potřebné závislosti před spuštěním. Na druhou stranu Aptos spravuje závislosti za chodu, nejprve spouští všechny transakce „optimisticky“ a v případě selhání znovu spustí ty konkrétní transakce, které selhaly [12].

K vysvětlení výše uvedeného použijeme jednoduchou analogii. Ethereum je jednoproudá silnice, kde všechna auta musí jet v jedné řadě za sebou, zatímco Solana i Aptos jsou čtyřproudé rychlostní silnice. To vše evidentně urychluje. Otázkou ale je, jak jezdí auta po rychlostní komunikaci? V případě Solana má každé auto v podstatě přidělen konkrétní jízdní pruh a bude vždy jezdit po pruhu. To je v nejlepším případě velmi rychlé a efektivní, ale pokud se proces přiřazení pokazí, máte velmi špatný nejhorší scénář. Na druhou stranu v případě Aptosu jsou autům nejprve přiděleny nějaké pruhy, ale pokud to nefunguje, pak mohou auta zajet do jiných pruhů, aby se předešlo nehodám. Proto, i když Aptos nemusí v nejlepším případě běžet tak rychle jako Solana, je spolehlivější než Solana a má lepší scénář v horším případě[13].

Hodnocení — Potenciál a omezení

Aptos je v současné době první a jediný hlavní řetězec L1 založený na Move, který spustil mainnet. Jako takové je vydání Aptosu na mainnetu neuvěřitelně symbolickou událostí; peníze a pozornost médií, které Aptos přilákal, nemusí nutně odpovídat jeho vlastní technické inovaci.

Jak bylo zmíněno výše, primární technickou inovací, kterou samotný Aptos provedl, je jeho paralelní prováděcí engine Block-STM. Většina ostatních technických aspektů, včetně mechanismu konsensu a použití jazyka Move, jsou okrajově vylepšené starší produkty zděděné z Meta [14]. Pokud jde o modul paralelního provádění Block-STM, není jasné, zda to způsobí kvalitativní rozdíl mezi uživatelskou zkušeností na Aptos a uživatelskou zkušeností na Solana; pokud je uživatelská zkušenost stejná, bude uživateli jedno, jak je implementována na technické úrovni.

Stejně jako u každého infrastrukturního projektu závisí dlouhodobý úspěch Aptosu na tom, jaké projekty se na něm rozhodnou stavět. V současné době projekty v jeho ekosystému, jako je Liquidswap DEX, Topaz NFT marketplace a doménová služba Aptos Names, i když jsou nezbytné produkty v jakémkoli blockchainovém ekosystému, nejsou dostatečně jedinečné pro návrh společnosti Aptos [15]. Tyto projekty jsou jako obchod s potravinami, škola a nemocnice v malé vesnici. I když jsou pro fungování vesnice nezbytné, nedávají obci žádný jedinečný charakter, který se nenachází v žádné jiné vesnici.

Když se podíváme zpět v čase, část úspěchu Solany lze připsat projektům, jako je StepN, které skutečně dokázaly využít Solanovu výhodu paralelismu. Tyto projekty GameFi a SocialFi často zahrnují velké množství paralelních dat, která jsou relativně izolovaná. Tyto aplikace jsou tedy jedinečně vhodné pro paralelní exekuční stroje, jako jsou Aptos a Solana, a zároveň jsou schopny přinést velkou spotřebitelskou základnu a vysoký objem transakcí. Ve skutečnosti v jednu chvíli představovalo pouze StepN přibližně ~20 % platících uživatelů Solana [16].

Aby tedy Aptos uspěl jako infrastrukturní projekt, musí existovat jedinečná řada projektů, které výrazně využívají paralelní spouštěcí motor Aptosu, projekty, které nelze provést na Ethereu nebo dokonce na Solaně. Díky novému designu Block-STM společnosti Aptos by se mohly potenciálně zformovat ve formě nové třídy projektů SocialFi, kde uživatelé komunikují v malých klikách (jako jsou skupinové chaty). Protože tyto skupiny mohou být plynulé a dynamické, i když jsou na sobě do jisté míry nezávislé, jsou mnohem vhodnější pro paralelní prováděcí engine Aptos než Solana nebo Ethereum. Ale to je samozřejmě jen abstraktní spekulace.

Nicméně spuštění mainnetu Aptosu je stále neuvěřitelně důležitou a symbolickou událostí v kryptosvětě. Představuje vyvrcholení mnohaletého úsilí inženýrů Meta při uvádění do života kvalitativně odlišného paradigmatu pro řešení úzkého hrdla škálovatelnosti Etherea. Jedinečné jazykové funkce Move znamenají, že nevyhnutelně budou existovat DApps, které je mnohem lepší implementovat na Move než na Solidity nebo jiných chytrých smluvních jazycích. Budou však tyto projekty nutně implementovány v ekosystému Aptos? Nikdo neví. Aptos se může těšit z některých výhod prvního tahu v podobě schopnosti uvést Move do produkce a spojit své jméno s jazykem Move. Ale zároveň může trpět osudem podobným MySpace, že se stane prvním hráčem.

Alespoň jedna věc je jistá: Aptos může být prvním experimentem na trhu s Move, ale rozhodně to nebude poslední [17].

🐦 @0xfishylosopher

📅 22. října 2022

Prohlášení: Tento výzkum slouží pouze pro informační účely. Nepředstavuje investiční poradenství ani doporučení k nákupu nebo prodeji jakékoli investice a nemělo by se používat při hodnocení přínosů jakéhokoli investičního rozhodnutí.

Reference

[1] Podívejte se na hlavní stránku Aptos Labs: https://aptoslabs.com/

[2] Úvod do Solana: https://www.forbes.com/advisor/investing/cryptocurrency/what-is-solana/

[3] Dokument o jazyce Move: https://diem-developers-components.netlify.app/papers/diem-move-a-language-with-programmable-resources/2020-05-26.pdf

[4] Dokumentace Move Developer pro struktury a zdroje: https://github.com/move-language/move/blob/main/language/documentation/book/src/structs-and-resources.md

[5] Podrobnosti o strukturovaných schopnostech: https://move-language.github.io/move/abilities.html

[6] Viz výukový program Move Language: https://101blockchains.com/move-programming-language-tutorial/

[7] https://blog.chain.link/reentrancy-attacks-and-the-dao-hack/

[8] Podrobnosti o byzantské toleranci chyb: https://decrypt.co/resources/byzantine-fault-tolerance-what-is-it-explained

[9] HotStuff Consensus Model: https://hackernoon.com/hotstuff-the-consensus-protocol-behind-safetake-and-facebooks-librabft

[10] AptosBFT Consensus: https://blog.pontem.network/aptosbft-all-you-need-to-know-about-the-bft-consensus-in-aptos-ff4cf22c7a80

[11] Viz technický dokument Block-STM: https://arxiv.org/abs/2203.06871

[12] Porovnání Aptos vs Solana Execution Engine: https://www.gofyeo.com/post/aptos-vs-solana-a-technical-comparison-part-1

[13] Analýza nejhoršího případu Aptos jako O(n²), Solana jako O(n⁴). Podrobnosti: https://antiape.substack.com/p/cf40447d-d674-4454-9e09-f003517de6de?s=r

[14] Viz Whitepaper Aptos: https://aptos.dev/assets/files/Aptos-Whitepaper-47099b4b907b432f81fc0effd34f3b6a.pdf

[15] Aptos Ecosystem: https://coinmarketcap.com/alexandria/article/what-is-aptos-the-ultimate-guide-to-the-aptos-ecosystem

[16] Z Twitteru Messari Crypto: https://twitter.com/MessariCrypto/status/1567880625218019333

[17] Viz Sui, další jazyk založený na Move: https://sui.io/