Web3.com Ventures 原創研究分析

0xFishylosopher

介紹

隨着 Aptos 最近主網啓動以及其代幣在幣安和其他主要中心化交易所的發行,現在是對這個期待已久的項目進行探索性分析的最佳時機。作爲 Meta 創建 Libra 加密貨幣的孤兒,Aptos 秉承了 Libra 的理想,即成爲吸引下一個百萬加密用戶的區塊鏈。

Aptos 的首要目標是提供一個可擴展、安全且可靠的區塊鏈 [1]。爲此,Aptos 依賴於一種新的智能合約語言 Move,表面上看,它是一種比以太坊 Solidity 的當前“黃金標準”更“安全”的語言。當然,Aptos 並不是第一個以“可擴展、安全且可靠”爲標杆的 L1 區塊鏈。其他鏈,尤其是 Solana,也曾嘗試將此作爲他們的口號,但成功與否參半 [2]。在本文中,我將嘗試從 Move 語言的基本屬性出發,在其他類似項目的背景下分析 Aptos 的技術基礎,並對這個熱門新鏈的潛力和侷限性進行批判性評估。

移動語言

如果不分析 Move 語言,就無法分析 Aptos。事實上,這可以說是 Aptos 的大部分潛力所在。Move 最初由 Meta 的 Libra 團隊(現名爲 Diem)開發,旨在提供一種與其他智能合約語言截然不同的智能合約編程模型;Move 不是採用基於交易的方法,而是採用基於資源的方法來定義智能合約模型 [3]。

那麼這一切意味着什麼呢?從比特幣開始,絕大多數著名的區塊鏈都採用了“交易優先”的方法,其中區塊鏈區塊中的每個條目都是一筆交易(比如 Alice 和 Bob 之間的交易)。交易是一個相對對象;要進行交易,就需要存在 Alice 和 Bob 的地址。爲了確保 Alice 不會在交易優先的方法中“雙重支付”硬幣,我們需要檢查它是否與所有其他交易沒有衝突,這種麻煩不可避免地會減慢交易速度。

另一方面,Move 的“基於資源”的方法則截然不同。Move 不是記錄 A 到 B 交易的行,而是記錄對象(或資源)的易手,並僅相應地更新屬性。重要的是,資源是原子實體——資源 X 的存在不依賴於任何其他資源的存在,這與交易的情況不同,在交易中,交易 T 依賴於兩個先前的代理 A 和 B 的存在。因此,採用基於資源的方法可以實現更加原子化、獨立的結構,並針對並行執行進行優化。

Move 中的“資源”本質上是具有某些屬性的對象。用技術術語來說,它們被實現爲結構體(即容器數據結構)[4]。此時,有以太坊編程背景的人可能會提出一個問題:Solidity 也有結構體,以及其他數據結構。Move 中的結構體有什麼特別之處?我認爲最重要的區別是,雖然 Solidity 中的結構體在語言中處於相對邊緣的地位(主要是爲了清晰起見),但結構體是 Move 中一切的基礎。此外,Move 的結構體具有不同的“能力”,包括“複製”、“刪除”、“存儲”和“鍵”,它們定義對象是否可複製、可存儲、可刪除等 [5]。這種結構體表示法與 Solidity 完全不同,實際上與絕大多數常見的編程語言(例如 C/C++)也不同。然而,這些不同的“能力”是非常直觀的。有些東西你可以“複製”,比如硬幣或代幣。有些東西你可以“丟棄”或扔掉。其他東西,比如獨特的數字資產,可能無法複製。現在考慮 Move 上“資源”的以下官方定義:

“如果結構體值無法被複制也無法被刪除,我們通常將其稱爲資源。”——《結構體與資源》,Move 語言文檔 [4]

所以“資源”本質上是一種獨特的“結構”,它將永遠爲你服務。多麼浪漫啊。

Move 對“結構體”的完全重新定義,使其能夠使用一種數據結構以乾淨、模塊化的方式簡潔地定義代幣、NFT、智能合約和其他數字資產 [6]。這是以太坊的 EVM 根本無法比擬的;任何有使用 EVM 進行開發經驗的人都知道在 Solidity 中處理結構體(和嵌套結構體)是多麼令人沮喪。

至關重要的是,Move 基於資源的方法保證了其安全。正如 Move 的白皮書中提到的,在許多程序中都有資產的間接表示,這意味着稀缺性和訪問控制是不可擴展的。例如,雖然 Ether 的稀缺性是硬編碼的並受到 EVM 的保護,但其他 ERC-20 代幣“不會繼承這些保護,它們必須小心不要引入允許複製、重用或丟失資產的錯誤”[4]。考慮經典的重入攻擊。這是長期困擾 EVM 項目的問題,經常導致他們損失數百萬美元[7]。由於 Move 採用了基於資源的方法,因此重入攻擊在 Move 上是不可能的。因此,進入 Move 編碼的門檻可以說比 EVM 更容易接近——這是大規模採用的關鍵因素。

Aptos — 技術原理

可以說,Aptos 最大的成就就是將 Move 作爲一種語言推向市場。****事實上,Aptos 的大部分設計直接取自 Meta 開發的 Diem(Libra)區塊鏈。回想一下,Aptos 是一個注重可擴展性和安全性的鏈。實現這一點主要有兩種技術實現。第一個是在其共識層,即 AptosBFT 共識機制。第二個是它的執行層,或者說 Block-STM 執行引擎。讓我們按順序檢查一下。

首先,AptosBFT 是一種拜占庭容錯共識機制,這本質上意味着只要網絡上不超過 1/3 的節點是惡意行爲者,它就可以繼續保證安全 [8]。這是一種標準做法:比特幣的工作量證明、以太坊的權益證明等都是拜占庭容錯的。那麼 AptosBFT 實際上是如何實現其共識機制的呢?與所有其他權益證明鏈一樣,Aptos 依賴於“質押”驗證者節點。它實現了 HotStuff 共識算法的一種變體,這是一種現代 PoS 算法,與早期模型(例如 pBFT)相比,它通過讓節點與“輪換領導者”而不是其他每個節點進行通信,提供了更清晰的節點間通信協議 [9]。雖然 AptosBFT 在 HotStuff 的基礎上引入了多項優化,最顯著的是“密鑰輪換機制”(以增強安全性)和減少開銷(以增強可擴展性),但 HotStuff 的 PoS 設計並沒有發生重大的結構變化 [10]。

另一方面,Block-STM 並行執行引擎的設計更爲新穎,可以說是該項目的主要技術突破 [11]。回想一下,資源是原子的——某種資源 X 的易手不依賴於任何其他資源。通過將交易分組到塊中(就像樂高積木一樣),我們可以利用大量並行性來執行資源交易,與以太坊相比,計算速度提高了 20 倍 [11]。

但與 Solana 和其他並行執行引擎相比,Aptos 又如何呢?Solana 的主要創新是硬編碼其所有智能合約依賴項,以允許其進行並行執行。在提前知道所有依賴項的情況下,Solana 執行引擎可以在運行時鎖定必要的依賴項。另一方面,Aptos 可以動態管理依賴項,首先“樂觀地”運行所有交易,如果發生故障,則重新運行那些失敗的特定交易 [12]。

讓我們用一個簡單的類比來解釋上述內容。以太坊是一條單車道公路,所有汽車必須在另一輛後面排成一線行駛,而 Solana 和 Aptos 都是四車道高速公路。這顯然加快了速度。但問題是,汽車如何在高速公路上行駛?在 Solana 的情況下,每輛車基本上都被分配了一條特定的車道,並且將始終沿着該車道行駛。在最佳情況下,這非常快速和高效,但如果分配過程出錯,就會出現非常糟糕的最壞情況。另一方面,在 Aptos 的情況下,汽車首先被分配一些車道,但如果這不起作用,那麼汽車可以轉向其他車道以防止發生事故。因此,即使在最佳情況下 Aptos 可能沒有 Solana 跑得快,但它比 Solana 更可靠,並且具有更好的最壞情況[13]。

評估——潛力與侷限性

Aptos 是目前第一個也是唯一一個發佈主網的基於 Move 的 L1 主鏈。因此,Aptos 的主網發佈是一個極具象徵意義的事件;Aptos 所吸引的資金和媒體關注並不一定與其內在的技術創新相稱。

如上文所述,Aptos 本身最主要的技術創新在於其 Block-STM 並行執行引擎。其他大部分技術方面,包括其共識機制和 Move 語言的使用,都是從 Meta [14] 繼承而來並略微改進的遺留產品。關於 Block-STM 並行執行引擎,目前尚不清楚這是否會導致 Aptos 上的用戶體驗與 Solana 上的用戶體驗之間產生質的差異;如果用戶體驗相同,用戶不會關心它在技術層面上是如何實現的。

與任何基礎設施項目一樣,Aptos 的長期成功取決於選擇在其基礎上構建的項目。目前,其生態系統中的項目,例如 Liquidswap DEX、Topaz NFT 市場和 Aptos Names 域名服務,雖然是任何區塊鏈生態系統中必不可少的產品,但對於 Aptos 的設計而言並不夠獨特 [15]。這些項目就像一個小村莊裏的雜貨店、學校和醫院。雖然它們對村莊的運轉必不可少,但它們並沒有賦予村莊任何其他村莊所沒有的獨特特色。

回顧過去,Solana 的成功部分歸功於 StepN 等項目,這些項目實際上能夠利用 Solana 的並行優勢。這些 GameFi 和 SocialFi 項目通常涉及大量相對孤立的並行數據。因此,這些應用程序特別適合並行執行引擎,例如 Aptos 和 Solana,同時還能夠帶來龐大的消費者羣和高交易量。事實上,在某一時刻,僅 StepN 就佔了 Solana 付費用戶的約 20% [16]。

因此,要使 Aptos 作爲一個基礎設施項目取得成功,需要有一系列獨特的項目,這些項目可以充分利用 Aptos 的並行執行引擎,這些項目無法在以太坊甚至 Solana 上完成。藉助 Aptos 新穎的 Block-STM 設計,這些項目可能會以新一類 SocialFi 項目的形式出現,用戶可在小圈子(如羣聊)中互動。由於這些團體可以是流動的和動態的,同時也彼此獨立,因此它們比 Solana 或以太坊更適合 Aptos 的並行執行引擎。但當然,這只是一個抽象的推測。

儘管如此,Aptos 主網啓動仍然是加密世界中極其重要和具有象徵意義的事件。它代表了 Meta 工程師多年努力的結果,他們爲解決以太坊的可擴展性瓶頸而提出了一個完全不同的範式。Move 獨特的語言特性意味着,必然會有一些 DApp 在 Move 上實現比在 Solidity 或其他智能合約語言上實現得更好。但這些項目一定會在 Aptos 生態系統中實現嗎?沒有人知道。Aptos 可能會享受一些先發優勢,能夠將 Move 投入生產並將其名稱與 Move 語言聯繫起來。但與此同時,它很可能會遭遇像 MySpace 那樣的先發命運。

至少有一件事是肯定的:Aptos 可能是市場上第一次嘗試 Move,但肯定不會是最後一次 [17]。

🐦@0xfishylosopher

📅 2022 年 10 月 22 日

免責聲明:本研究僅供參考。它不構成投資建議或買賣任何投資的建議,也不應用於評估任何投資決策的優點。

參考

[1] 查看 Aptos Labs 主頁:https://aptoslabs.com/

[2] Solana 簡介:https://www.forbes.com/advisor/investing/cryptocurrency/what-is-solana/

[3] Move 語言白皮書:https://diem-developers-components.netlify.app/papers/diem-move-a-language-with-programmable-resources/2020-05-26.pdf

[4] Move 結構體和資源開發者文檔:https://github.com/move-language/move/blob/main/language/documentation/book/src/structs-and-resources.md

[5] Struct Abilities 詳細信息:https://move-language.github.io/move/abilities.html

[6] 請參閱 Move 語言教程:https://101blockchains.com/move-programming-language-tutorial/

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

[8] 拜占庭容錯的詳細信息:https://decrypt.co/resources/byzantine-fault-tolerance-what-is-it-explained

[9] HotStuff 共識模型:https://hackernoon.com/hotstuff-the-consensus-protocol-behind-safestake-and-facebooks-librabft

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

[11]參見Block-STM技術論文:https://arxiv.org/abs/2203.06871

[12] Aptos 與 Solana 執行引擎比較:https://www.gofyeo.com/post/aptos-vs-solana-a-technical-comparison-part-1

[13] Aptos 最壞情況分析爲 O(n²),Solana 爲 O(n⁴)。詳細信息:https://antiape.substack.com/p/cf40447d-d674-4454-9e09-f003517de6de?s=r

[14] 參見 Aptos 白皮書:https://aptos.dev/assets/files/Aptos-Whitepaper-47099b4b907b432f81fc0effd34f3b6a.pdf

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

[16] 來自 Messari Crypto 的推特:https://twitter.com/MessariCrypto/status/1567880625218019333

[17] 請參閱 Sui,另一種基於 Move 的語言:https://sui.io/