作為 Move 語言第一個起跑者,Aptos 公鏈在性能和共識機制設計上確實和以太坊(Ethereum)和Solana 有明顯區隔,但細部檢視,評價又是如何呢。本文源自研究者 0xFishy 所著《On the Move — A Critical Analysis of Aptos》,由白澤研究室編譯整理。
(前情提要: Aptos單日再飆漲30%!APT衝破10美元;主網交易逾920萬筆)
(背景補充:Aptos 進場高性能公鏈競賽,成就「Solana殺手」時刻將至? )
隨著Aptos 最近主網的發布以及它在Binance 和其他加密貨幣交易平台的代幣發布,現在正是對這個久負盛名的項目進行理性分析的最佳時機。作為Meta(原Facebook)嘗試創建加密貨幣項目Libra 的「遺孤」,Aptos 繼承了Libra 的願景,即成為未來數百萬加密用戶使用的區塊鏈。
Aptos 的首要重點是提供可擴展、安全和可靠的區塊鏈。為此,Aptos 依賴於一種新的智能合約語言Move,它表面上是一種比當前以太坊的「黃金標準」Solidity 更「安全」的語言。當然,Aptos 並不是第一個將自己標榜為「可擴展、安全和可靠」的L1 區塊鏈。其他L1,尤其是Solana,過去也曾嘗試將其作為他們的口號,也取得了不同程度的成功。
在本文中,我將努力從Move 語言的基本屬性入手,在其他類似項目的背景下分析Aptos 的技術基礎,並對這個熱門新鏈的潛力和局限性進行評估。
Move 語言
如果不分析Move 語言,就無法分析Aptos。事實上,這可以說是Aptos 大部分潛力的來源。
Move 最初由Meta 的Libra 團隊(現名為Diem)開發,旨在提供與其他智能合約語言相比在範式上不同的智能合約編程模型;Move 沒有採用基於交易的方法,而是採用基於資源的方法來定義智能合約模型。
那麼這一切意味著什麼呢?從比特幣開始,絕大多數的區塊鏈都採用了「交易優先」的方法,區塊中的每個條目都是一筆交易(比如Alice 和Bob 之間的交易)。交易是相對的對象。要進行交易,需要存在Alice 和Bob 地址。為了確保Alice 不會「雙重花費」代幣,我們需要檢查這筆交易與所有其他交易沒有衝突,這不可避免地會減慢交易速度。
然而,Move「基於資源」的方法卻截然不同。Move 不記錄A 到B 的交易,而是記錄對象(或資源)的易手情況,並相應地更新屬性。重要的是,資源是原子實體——資源X 的存在不依賴於任何其他現有的資源。因此,使用基於資源的方法支援針對並行執行的更加獨立的結構。
Move 中的「資源」本質上是具有某些屬性的對象。用技術術語來說,它們是容器數據結構。此時,有以太坊編程背景的人可能會提出一個問題:Solidity 也有結構體,還有其他數據結構體。是什麼讓Move 的結構特別?我認為最重要的區別在於,雖然Solidity 中的結構在語言中具有相對外圍的部分(主要用於清晰起見),但結構是Move 中一切的基礎。此外,Move 的結構具有不同的「功能」,包括「複製」、「刪除」、「儲存」,它們定義了對像是否可複制、可儲存、可刪除等。這種結構與Solidity 或絕大多數常見編程語言(例如C/C++)完全不同。然而,這些不同的「能力」是非常直觀的。有些東西你可以「複製」,比如代幣。有些東西你可以「丟掉」。
現在思考一下Move 上「資源」的官方定義:
「如果結構值無法複製且無法刪除,我們通常將其稱為資源。」
— 結構和資源,Move 語言文檔
因此,「資源」本質上是獨一無二的「結構」,將永遠存在於你身邊。
Move 對「結構」的完全重新定義允許它使用一種數據結構簡潔地定義代幣、NFT、智能合約和其他數位資產。這是以太坊的EVM 根本無法比擬的;任何有EVM 開發經驗的人都知道Solidity 中的處理結構(和嵌套結構)是多麼令人沮喪。
至關重要的是,Move 的基於資源的方法為其安全性提供了保障。正如Move 的白皮書所提到的,在許多程式中存在資產的間接表示,這意味著稀缺性和訪問、控制是不可擴展的。例如,雖然ETH 代幣的稀缺性被EVM 硬編碼和保護,但其他ERC-20 代幣「不繼承這些保護,它們必須小心不要引入允許複製、重用或資產丟失的錯誤」,例如經典的重入攻擊。這是長期困擾EVM 項目的問題,經常導致它們損失數百萬美元。由於Move 的基於資源的方法,重入攻擊是不可行的。因此,Move 編碼的入門門檻可以說比EVM 更容易獲得——這是大規模採用的一個關鍵因素。
延伸閱讀:資深開發團隊:為何 Move 語言將超越 Solidity,成為區塊鏈圈主流?
Aptos 的技術原理
可以說,Aptos 最大的成就是將Move 作為一種語言推向市場。事實上,Aptos 的大部分設計都直接取自Meta 開發的Diem (Libra) 區塊鏈。回想一下,Aptos 是一個強調可擴展性和安全性的區塊鏈。有兩種主要的技術用於實現這一點。首先是在它的共識層,即AptosBFT 共識機制。第二個是它的執行層,即Block-STM 執行引擎。
首先,AptosBFT 是一種拜占庭容錯共識機制,這本質上意味著只要網路上不超過1/3 的節點是惡意行為者,它就可以繼續保證安全性。這是一種標準做法:比特幣的工作量證明、以太坊的權益證明等都是拜占庭容錯的。那麼 AptosBFT 究竟是如何實現其共識機制的呢?與所有其他權益證明鏈一樣,Aptos 依賴於「質押」節點。它實現了HotStuff 共識算法的變體,HotStuff 是一種PoS 算法,與早期模型(例如pBFT)相比,它通過讓節點與「輪換領導者」通信,而不是與所有其他節點進行通信,從而在節點之間提供更簡潔的通信協議。雖然AptosBFT 在HotStuff 之上引入了多項優化,最顯著的優化是「密鑰輪換機制」(以增強安全性)和減少開銷(以增強可擴展性),但HotStuff 的PoS 設計[10]沒有重大的結構變化。
另一方面,Block-STM 並行執行引擎是一個更具原創性的設計,可以說是該項目的主要技術突破點。回想一下,資源是原子的——某個資源 X 的易手不依賴於任何其他資源。通過將交易分組(就像樂高積木),我們可以在執行資源交易時利用大規模並行性,與以太坊相比,計算速度提高了20 倍。
但這與Solana 和其他並行執行引擎相比如何?Solana 的主要創新是對其所有智能合約依賴項進行硬編碼,以使其能夠並行執行。有了預先知道的所有依賴項,Solana 執行引擎就可以在運行前鎖定必要的依賴項。但Aptos 是動態管理依賴關係,首先「樂觀地」運行所有事務,然後在失敗的情況下重新運行那些失敗的特定事務。
讓我們用一個簡單的類比來解釋上面的內容:
以太坊是一條單車道的道路,所有的汽車都必須排成一條線。而Solana 和Aptos 都是四車道的高速公路,這顯然加快了速度。但問題是,汽車如何在高速公路上漲駛?在Solana 的情況下,每輛車基本上都被分配了一個特定的車道,並且總是沿著車道行駛。在最好的情況下,這是非常快速和有效的,但是如果分配過程出錯,那麼你就會遇到非常糟糕的最壞情況。在Aptos 的情況下,首先為汽車分配一些車道,但如果這不起作用,則允許汽車轉向其他車道以防止發生事故。因此,即使Aptos 在最佳情況下運行速度可能不如Solana,但它比Solana 更可靠,並且具有面對最壞情況時的應對方法。
延伸閱讀:Aptos鏈上的GAS花費如何計算?讀懂MOVE語言首個GAS設計
評估——潛力和局限
Aptos 是目前第一個也是唯一一個推出主網的基於Move 的L1 鏈。因此,Aptos 的主網發布是一個非常具有像徵意義的事件。Aptos 所吸引的資金和媒體關注不一定與其內在的技術創新相匹配。
如上所述,Aptos 自身的主要技術創新在於其Block-STM 並行執行引擎。大多數其他技術方面,包括其共識機制和Move 語言的使用,都是從Meta 繼承的略微改進的遺留產品。關於Block-STM 並行執行引擎,目前尚不清楚這是否會導致Aptos 上的用戶體驗與Solana 上的用戶體驗之間存在本質上的差異,但如果用戶體驗是相同的,那麼用戶不會關心它在技術層面是如何實現的。
與任何L1 一樣,Aptos 的長期成功將取決於在其之上構建的項目。目前,其生態系統中的項目,如Liquidswap DEX、Topaz NFT 市場和Aptos 域名服務,雖然是任何區塊鏈生態系統中的必要產品,但對於Aptos 的設計來說還不夠獨特。這些項目就像一個小村莊的雜貨店、學校和醫院,雖然對村莊的運作是必要的,但它們並沒有賦予村莊任何其他村莊所沒有的獨特特徵。
回顧過去,Solana 的部分成功可能要歸功於StepN 等項目,這些項目實際上利用了Solana 的並行優勢。這些GameFi 和SocialFi 項目往往涉及大量相對孤立的並行數據。因此,這些應用程式特別適合併行執行引擎,例如Aptos 和Solana,同時還能夠帶來龐大的用戶、消費者基礎和高交易量。事實上,在某一時刻,僅StepN 就佔Solana 付費用戶的約20%。
因此,要讓Aptos 作為L1 取得成功,需要有一系列獨特的項目來充分利用Aptos 的並行執行引擎,而這些項目無法在以太坊甚至Solana 上完成。借助Aptos 新穎的Block-STM 設計,這些項目可能會以一種新的SocialFi 的形式形成,用戶在這些項目中以小圈子的形式進行交互(如群聊),因為這些群組可以是流動的和動態的,同時也有點相互獨立,所以相比Solana 或以太坊,Aptos 的並行執行引擎更適合它們。但當然,這只是一個推測。
儘管如此,Aptos 的主網發布仍然是加密世界中非常重要和具有像徵意義的事件。它代表了Meta 工程師多年來為解決以太坊的可擴展性瓶頸而努力的結晶。Move 獨特的語言特性意味著一定會有許多dApp 轉而在Move 上實現,而不是繼續在Solidity 或其他智能合約語言上實現。但是這些項目一定會在Aptos 生態系統中實施嗎?沒人知道。Aptos 可能會享有一些先發優勢,即能夠將Move 投入使用,並將其與Move 語言聯繫起來。但與此同時,它很可能會遭遇類似MySpace 先發製人卻逐漸隕落的命運。
至少有一件事是肯定的:Aptos 可能是市場上第一個使用Move 語言的實驗,但肯定不會是最後一個。
📍相關報導📍
Aptos 進場高性能公鏈競賽,成就「Solana殺手」時刻將至?