作者為Web3.com Ventures,0xfishylosopher

本文由DeFi之道編譯

全面解讀Aptos:除了MOVE語言,還有什麼技術創新?

介紹

隨著Aptos 最近主網的發布以及它在主流中心化交易所的上線交易,現在正是對這個備受期待的項目進行探索性分析的最佳時機。作為Meta 嘗試創建Libra 加密貨幣的遺產,Aptos 繼承了Libra 的理想,即成為未來數百萬加密用戶的區塊鏈。

Aptos 的首要重點是提供可擴展、安全和可靠的區塊鏈[1]。為此,Aptos 依賴於一種新的智能合約語言Move,它表面上是一種比當前以太坊Solidity 的“黃金標準”更“安全”的語言。當然,Aptos 並不是第一個將自己標榜為“可擴展、安全和可靠”的L1 區塊鏈。其他區塊鏈,尤其是Solana,過去也曾嘗試將此作為他們的口號,並取得了不同程度的成功[2]。在這篇文章中,我將努力從Move 語言的基本屬性入手,在其他類似項目的背景下分析Aptos 的技術基礎,並對這個熱門新鏈的潛力和局限性進行批判性評估。

Move 語言

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

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

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

全面解讀Aptos:除了MOVE語言,還有什麼技術創新?

基於事務與基於資源的方法的粗略草圖。

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

“如果結構值無法複製且無法刪除,我們通常將其稱為資源。” — 結構和資源,Move 語言文檔[4]

因此,“資源”本質上是獨一無二的“結構”,將永遠存在於你身邊。多麼浪漫。

Move 對“結構”的完全

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

至關重要的是,Move 的基於資源的方法為其安全保證提供了保障。正如Move 的白皮書所提到的,在許多程序中存在資產的間接表示,這意味著稀缺性和訪問控制是不可擴展的。例如,雖然以太幣的稀缺性被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] 沒有重大的結構變化。

全面解讀Aptos:除了MOVE語言,還有什麼技術創新?

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

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

但這與Solana 和其他並行執行引擎相比如何? Solana 的主要創新是對其所有智能合約依賴項進行硬編碼,以使其能夠進行並行執行。有了預先知道的所有依賴項,Solana 執行引擎就可以在運行前鎖定必要的依賴項。另一方面,Aptos 動態管理依賴關係,首先“樂觀地”運行所有事務,然後在失敗的情況下重新運行那些失敗的特定事務[12]。

全面解讀Aptos:除了MOVE語言,還有什麼技術創新?

以太坊、Solana 和Aptos 的執行引擎比較。

讓我們用一個簡單的類比來解釋上面的內容。以太坊是一條單車道的道路,所有的汽車都必須排成一條線,而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 域名服務,雖然是任何區塊鏈生態系統中的必要產品,但對於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]。

參考資料:

[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] Details on 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 vs Solana 執行引擎對比:https://www.gofyeo.com/post/aptos-vs-solana-a-technical-comparison-part-1

[13] Aptos worst-case analysis as O(n²), Solana as O(n⁴). Details: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] From Messari Crypto's Twitter:https://twitter.com/MessariCrypto/status/1567880625218019333

[17] Sui Network 官網:https://sui.io/