Oryginalna analiza badań Web3.com Ventures
0xFishylosopher

Wstęp
Biorąc pod uwagę niedawne uruchomienie sieci głównej Aptos i wprowadzenie tokena na Binance i innych głównych scentralizowanych giełdach, nie ma lepszego czasu na napisanie eksploracyjnej analizy tego długo oczekiwanego projektu. Aptos, osierocone dziecko prób stworzenia kryptowaluty Libra przez Metę, kontynuuje ideał Libry jako blockchain, który wprowadzi na rynek kolejny milion użytkowników kryptowalut.
Nadrzędnym celem Aptos jest dostarczanie skalowalnego, bezpiecznego i niezawodnego blockchainu [1]. Aby to zrobić, Aptos opiera się na nowym języku inteligentnych kontraktów, Move, rzekomo „bezpieczniejszym” języku niż obecny „złoty standard” Solidity Ethereum. Oczywiście Aptos nie jest pierwszym blockchainem L1, który reklamuje się jako „skalowalny, bezpieczny i niezawodny”. Inne sieci, zwłaszcza Solana, również próbowały w przeszłości używać tego hasła jako swojego hasła, z różnym skutkiem [2]. W tym eseju postaram się zacząć od podstawowych atrybutów języka Move, przeanalizować podstawy techniczne Aptos w kontekście innych podobnych projektów i przedstawić krytyczną ocenę potencjału i ograniczeń tej nowej, gorącej sieci.
Przesuń język
Nie można przeprowadzić analizy Aptos bez analizy języka Move. Rzeczywiście, prawdopodobnie z tego pochodzi większość potencjału Aptos. Rozwiązanie Move zostało pierwotnie opracowane przez zespół Libra Team firmy Meta (obecnie Diem) w celu zapewnienia paradygmatycznie innego modelu programowania inteligentnych kontraktów w porównaniu z innymi językami inteligentnych kontraktów; zamiast przyjmować podejście oparte na transakcjach, Move przyjmuje podejście oparte na zasobach do definiowania modeli inteligentnych kontraktów [3].
Co to wszystko oznacza? Począwszy od Bitcoina, zdecydowana większość znanych łańcuchów bloków przyjęła podejście „najpierw transakcja”, w którym każdy wpis w bloku łańcucha bloków jest transakcją (powiedzmy między Alicją i Bobem). Transakcja jest obiektem względnym; aby doszło do transakcji, musi istnieć adres Alicji i Boba. Aby mieć pewność, że Alicja nie „podwójnie wyda” monety, stosując podejście oparte na transakcji, musimy sprawdzić, czy nie ma konfliktu z wszystkimi innymi transakcjami, co jest kłopotem, który nieuchronnie spowalnia transakcje.
Z drugiej strony podejście Move „oparte na zasobach” jest diametralnie inne. Zamiast rejestrować wiersze transakcji od A do B, Move rejestruje zmianę właściciela obiektu (lub zasobu) i jedynie odpowiednio aktualizuje atrybuty. Co ważne, zasoby są bytami atomowymi — istnienie zasobu X nie zależy od żadnego innego istniejącego zasobu, w przeciwieństwie do transakcji, gdzie transakcja T zależy od dwóch wcześniejszych agentów, A i B. Zatem podejście oparte na zasobach pozwala na znacznie bardziej atomową, niezależną strukturę zoptymalizowaną pod kątem wykonywania równoległego.

„Zasoby” w Move to zasadniczo obiekty posiadające określone atrybuty. W żargonie technicznym są to implementowane struktury (tj. struktura danych kontenera) [4]. W tym momencie osoby mające doświadczenie w programowaniu Ethereum mogą zadać pytanie: Solidity ma również struktury, a także inne struktury danych. Co sprawia, że struktury w Move są wyjątkowe? Uważam, że najważniejszą różnicą jest to, że chociaż struktury w Solidity mają stosunkowo peryferyjną część języka (używaną głównie dla przejrzystości), struktury są podstawą wszystkiego w Move. Co więcej, struktury Move mają różne „możliwości”, w tym „kopiowanie”, „upuszczanie”, „zapisywanie” i „klucz”, które definiują, czy obiekt można powielić, przechowywać, usuwać itp. [5]. Ten rodzaj notacji strukturalnej jest zupełnie inny niż w Solidity, czy też w zdecydowanej większości popularnych języków programowania (np. C/C++). Jednakże te różne „zdolności” są głęboko intuicyjne. Niektóre rzeczy można „skopiować”, na przykład monetę lub żeton. Niektóre rzeczy możesz „upuścić” lub wyrzucić. Kopiowanie innych rzeczy, np. unikalnych zasobów cyfrowych, może nie być możliwe. Rozważmy teraz następującą oficjalną definicję „zasobu” w aplikacji Move:
„Często nazywamy wartości struktury zasobami, jeśli nie można ich skopiować ani usunąć”. — Struktury i zasoby, Dokumentacja języka Move [4]
Zatem „zasoby” to zasadniczo unikalne „struktury”, które zawsze będą dla Ciebie dostępne. Jak romantycznie.
Całkowita redefinicja „struktury” w programie Move pozwala na użycie jednej struktury danych do zwięzłego definiowania tokenów, transakcji NFT, inteligentnych kontraktów i innych zasobów cyfrowych w czystym, modułowym podejściu [6]. Jest to coś, czego EVM Ethereum po prostu nie może porównać; każdy, kto ma pewne doświadczenie w programowaniu przy użyciu EVM, wie, jak frustrujące jest radzenie sobie ze strukturami (i strukturami zagnieżdżonymi) w Solidity.
Co najważniejsze, podejście Move oparte na zasobach gwarantuje gwarancje bezpieczeństwa. Jak wspomniano w białej księdze Move, w wielu programach występuje pośrednia reprezentacja zasobów, co oznacza, że niedobory i kontrola dostępu nie są skalowalne. Na przykład, podczas gdy niedobór Etheru jest zakodowany na stałe i chroniony przez EVM, inne tokeny ERC-20 „nie dziedziczą tych zabezpieczeń, muszą uważać, aby nie wprowadzić błędów, które umożliwiają powielanie, ponowne wykorzystanie lub utratę zasobów” [4]. Rozważmy klasyczny atak ponownego wejścia. Jest to coś, co od dawna nęka projekty EVM, często powodując wielomilionowe straty [7]. Ze względu na podejście Move oparte na zasobach atak ponownego wejścia jest niemożliwy w Move. Zatem bariera wejścia na rynek kodowania Move jest prawdopodobnie o wiele bardziej dostępna niż EVM — kluczowy czynnik masowej adopcji.
Aptos — zasady techniczne
Prawdopodobnie największym osiągnięciem Aptos jest po prostu wprowadzenie Move na rynek. ****W rzeczywistości znaczna część projektu Aptos została zaczerpnięta bezpośrednio z blockchainu Diem (Libra) opracowanego przez Meta. Przypomnijmy, że Aptos to sieć, która kładzie nacisk na skalowalność i bezpieczeństwo. Aby to osiągnąć, stosuje się dwie główne implementacje techniczne. Pierwsza dotyczy warstwy konsensusu, a mianowicie mechanizmu konsensusu AptosBFT. Druga to warstwa wykonawcza, czyli silnik wykonawczy Block-STM. Przeanalizujmy je w kolejności.
Po pierwsze, AptosBFT jest bizantyjskim mechanizmem konsensusu odpornym na awarie, co zasadniczo oznacza, że może w dalszym ciągu gwarantować bezpieczeństwo, dopóki nie więcej niż 1/3 węzłów w sieci to złośliwi aktorzy [8]. Jest to standardowa praktyka: dowód pracy Bitcoina, dowód stawki Ethereum itp. są bizantyjskie i odporne na błędy. Jak zatem AptosBFT faktycznie wdraża swój mechanizm konsensusu? Podobnie jak wszystkie inne łańcuchy Proof-of-Stake, Aptos opiera się na „stawkowanych” węzłach walidacyjnych. Implementuje wariant algorytmu konsensusu HotStuff, nowoczesny algorytm PoS, który oferuje znacznie czystszy protokół komunikacji między węzłami w porównaniu do wcześniejszych modeli (np. pBFT), dzięki temu, że węzły komunikują się z „rotującym liderem”, a nie z każdym innym węzłem [9 ] Chociaż AptosBFT wprowadza kilka optymalizacji oprócz HotStuff, w szczególności „mechanizm rotacji kluczy” (w celu zwiększenia bezpieczeństwa) i zmniejszenie kosztów ogólnych (w celu zwiększenia skalowalności), nie ma większych zmian strukturalnych w projekcie PoS HotStuff [10].

Z drugiej strony silnik wykonywania równoległego Block-STM jest znacznie bardziej oryginalnym projektem i prawdopodobnie głównym przełomem technicznym w projekcie [11]. Przypomnijmy, że zasoby są atomowe — zmiana właściciela pewnego zasobu X nie zależy od żadnego innego zasobu. Grupując transakcje w bloki (jak klocki lego), możemy wykorzystać ogromną równoległość w wykonywaniu transakcji dotyczących zasobów, uzyskując 20-krotny wzrost szybkości obliczeń w porównaniu z Ethereum [11].
Ale jak to się ma do Solany i innych równoległych silników wykonawczych? Podstawową innowacją firmy Solana było zakodowanie na stałe wszystkich zależności inteligentnych kontraktów, aby umożliwić jej równoległe wykonywanie. Mając znane z góry wszystkie zależności, silnik wykonawczy Solana może następnie zablokować niezbędne zależności przed uruchomieniem. Z drugiej strony Aptos zarządza zależnościami na bieżąco, najpierw uruchamiając wszystkie transakcje „optymistycznie”, a w przypadku niepowodzenia, ponownie uruchamiając te konkretne transakcje, które się nie powiodły [12].

Aby wyjaśnić powyższe, użyjmy prostej analogii. Ethereum to droga jednopasmowa, na której wszystkie samochody muszą jechać w jednej linii za sobą, podczas gdy zarówno Solana, jak i Aptos to czteropasmowe drogi ekspresowe. To wyraźnie przyspiesza sprawę. Pytanie jednak brzmi, jak samochody poruszają się po autostradzie? W przypadku Solany każdemu samochodowi przypisany jest zasadniczo określony pas ruchu i zawsze będzie jechał wzdłuż tego pasa. W najlepszym przypadku jest to bardzo szybkie i skuteczne, ale jeśli proces przydziału zakończy się niepowodzeniem, w najgorszym przypadku mamy bardzo zły scenariusz. Natomiast w przypadku Aptosu samochodom przydzielane są najpierw niektóre pasy, a jeśli to nie pomoże, samochody mogą zjechać na inne pasy, aby zapobiec wypadkom. Dlatego nawet jeśli w najlepszym przypadku Aptos może nie działać tak szybko jak Solana, jest bardziej niezawodny niż Solana i ma lepszy w gorszym przypadku [13].
Ocena — potencjał i ograniczenia
Aptos jest obecnie pierwszą i jedyną dużą siecią L1 opartą na technologii Move, która uruchomiła sieć główną. W związku z tym wydanie Aptos w sieci głównej jest niezwykle symbolicznym wydarzeniem; pieniądze i uwaga mediów, jakie przyciągnęła Aptos, niekoniecznie są współmierne do nieodłącznych innowacji technicznych.
Jak wspomniano powyżej, podstawową innowacją techniczną, którą wprowadził sam Aptos, jest silnik wykonywania równoległego Block-STM. Większość pozostałych aspektów technicznych, w tym mechanizm konsensusu i użycie języka Move, to nieznacznie ulepszone starsze produkty odziedziczone od Meta [14]. Jeśli chodzi o silnik wykonywania równoległego Block-STM, nie jest jasne, czy spowoduje to jakościową różnicę między doświadczeniem użytkownika na Aptos a doświadczeniem użytkownika na Solanie; jeśli doświadczenie użytkownika jest takie samo, użytkownika nie będzie obchodziło, jak jest to zaimplementowane na poziomie technicznym.
Jak w przypadku każdego projektu infrastrukturalnego, długoterminowy sukces Aptos zależy od tego, jakie projekty na nim zostaną oparte. Obecnie projekty w jego ekosystemie, takie jak Liquidswap DEX, rynek Topaz NFT i usługa domenowa Aptos Names, choć produkty niezbędne w każdym ekosystemie blockchain, nie są wystarczająco unikalne dla projektu Aptos [15]. Te projekty są jak sklep spożywczy, szkoła i szpital w małej wiosce. Choć są niezbędne do funkcjonowania wsi, nie nadają jej wyjątkowego charakteru, jakiego nie ma w żadnej innej wiosce.
Patrząc wstecz, część sukcesu Solany można przypisać projektom takim jak StepN, które faktycznie były w stanie wykorzystać przewagę Solany w postaci równoległości. Te projekty GameFi i SocialFi często obejmują duże ilości równoległych danych, które są stosunkowo izolowane. Dlatego aplikacje te są wyjątkowo dostosowane do silników wykonywania równoległego, takich jak Aptos i Solana, a jednocześnie są w stanie zapewnić dużą bazę klientów i wysoki wolumen transakcji. Rzeczywiście, w pewnym momencie sam StepN stanowił około ~20% płatnych użytkowników Solany [16].
Zatem, aby Aptos odniósł sukces jako projekt infrastrukturalny, musi istnieć unikalna gama projektów, które w znacznym stopniu wykorzystują silnik wykonywania równoległego Aptos, czyli projekty, których nie można wykonać na Ethereum ani nawet na Solanie. Dzięki nowatorskiemu projektowi Block-STM opracowanemu przez Aptos mogą one potencjalnie przybrać formę nowej klasy projektów SocialFi, w których użytkownicy wchodzą w interakcje w małych klikach (takich jak czaty grupowe). Ponieważ grupy te mogą być płynne i dynamiczne, a jednocześnie w pewnym stopniu niezależne od siebie, znacznie lepiej pasują do silnika wykonywania równoległego Aptos niż Solana czy Ethereum. Ale to oczywiście tylko abstrakcyjne spekulacje.
Niemniej jednak uruchomienie sieci głównej Aptos jest nadal niezwykle ważnym i symbolicznym wydarzeniem w świecie kryptowalut. Stanowi kulminację wieloletnich wysiłków inżynierów Meta mających na celu wprowadzenie w życie jakościowo innego paradygmatu rozwiązywania wąskiego gardła skalowalności Ethereum. Unikalne funkcje językowe Move oznaczają, że nieuchronnie pojawią się aplikacje DApp, które znacznie lepiej będzie wdrożyć w Move niż w Solidity lub innych inteligentnych językach kontraktowych. Tylko czy te projekty koniecznie zostaną wdrożone w ekosystemie Aptos? Nikt nie wie. Aptos może cieszyć się korzyściami z bycia pierwszym na rynku, takimi jak możliwość wprowadzenia Move do produkcji i powiązania swojej nazwy z językiem Move. Ale jednocześnie może spotkać go los podobny do MySpace i bycia pierwszym na rynku.
Przynajmniej jedno jest pewne: Aptos może być pierwszym na rynku eksperymentem z Move, ale z pewnością nie ostatnim [17].
🐦 @0xfishylosopher
📅 22 października 2022
Zastrzeżenie: Niniejsze badanie ma wyłącznie charakter informacyjny. Nie stanowi ona porady inwestycyjnej ani rekomendacji zakupu lub sprzedaży jakiejkolwiek inwestycji i nie powinna być wykorzystywana do oceny zasadności podjęcia jakiejkolwiek decyzji inwestycyjnej.
Bibliografia
[1] Zobacz stronę główną Aptos Labs: https://aptoslabs.com/
[2] Wprowadzenie do Solany: https://www.forbes.com/advisor/investing/cryptocurrency/what-is-solana/
[3] Oficjalny dokument dotyczący przenoszenia języka: https://diem-developers-components.netlify.app/papers/diem-move-a-language-with-programmable-resources/2020-05-26.pdf
[4] Przenieś dokumentację programisty dotyczącą struktur i zasobów: https://github.com/move-language/move/blob/main/language/documentation/book/src/structs-and-resources.md
[5] Szczegóły dotyczące umiejętności struktur: https://move-language.github.io/move/abilities.html
[6] Zobacz samouczek dotyczący przenoszenia języka: https://101blockchains.com/move-programming-language-tutorial/
[7] https://blog.chain.link/reentrancy-atttacks-and-the-dao-hack/
[8] Szczegóły dotyczące tolerancji błędów bizantyjskich: https://decrypt.co/resources/byzantine-fault-tolerance-what-is-it-explained
[9] Model konsensusu HotStuff: https://hackernoon.com/hotstuff-the-consensus-protocol-behind-safestake-and-facebooks-librabft
[10] Konsensus AptosBFT: https://blog.pontem.network/aptosbft-all-you-need-to-know-about-the-bft-consensus-in-aptos-ff4cf22c7a80
[11] Zobacz dokument techniczny Block-STM: https://arxiv.org/abs/2203.06871
[12] Porównanie silnika wykonawczego Aptos i Solana: https://www.gofyeo.com/post/aptos-vs-solana-a-technical-comparison-part-1
[13] Analiza najgorszego przypadku Aptos jako O(n²), Solana jako O(n⁴). Szczegóły: https://antiape.substack.com/p/cf40447d-d674-4454-9e09-f003517de6de?s=r
[14] Zobacz oficjalny dokument Aptos: https://aptos.dev/assets/files/Aptos-Whitepaper-47099b4b907b432f81fc0effd34f3b6a.pdf
[15] Ekosystem Aptos: https://coinmarketcap.com/alexandria/article/what-is-aptos-the-ultimate-guide-to-the-aptos-ecosystem
[16] Z Twittera Messari Crypto: https://twitter.com/MessariCrypto/status/1567880625218019333
[17] Zobacz Sui, kolejny język oparty na ruchu: https://sui.io/