撰文:LFG Labs
想象一下,如果任意一個 Solidity 開發者,都可以直接在 Move 上近乎 0 門檻構建/遷移更安全高效的 DApp ,是不是會非常酷?
2019 年,攪動整個科技行業又迅速凋零的 Libra 可能不會想到,在自己折戟沉沙之後,Aptos、Sui、Linera、Movement 會相繼接過衣缽,反而把 Move 系新公鏈推向了一個小高潮。
不過有意思的是,不同於 Aptos、Sui、Linera 都是基於 Move 語言的 L1 公鏈,新生代的 Movement 卻把視線投向 L2——推出了首個基於 Move 語言的以太坊 L2,旨在藉助 Move 底層的執行性能和安全性優勢,再進一步融合 EVM 的生態優勢,從而讓開發者無需編寫 Move 代碼即可在 M2 上啟動 Solidity 項目。
作為 Move 系新公鏈中首個從“以太坊殺手”轉向“加入以太坊”的融合性方案,Movement 這種在 L2 層應用高性能架構、最終狀態安全性基於以太坊主網的機制設計,也在 4 月份斬獲了 3800 萬美元的大額融資。
那 Movement 究竟要做什麼事情,又有著怎樣的魔力來吸引 Polychain Capital、Binance Labs、OKX Ventures、Hack VC 等頂級投資機構紛紛押注?
Movement:將 Move 引入 EVM 生態
由於編程語言映射了一個區塊鏈項目的核心調性,因此在詳細瞭解 Movement 要做的事情之前,我們有必要先溫習一下 Move 語言的內生特點。
眾所周知,Move 作為由 Facebook 開發設計的全新智能合約語言,除了最早應用於 Facebook 的 Libra(Diem)項目之外,目前市場上公開採用 Move 語言的 Web3 產品主要集中在 Aptos、Sui 這樣的新公鏈生態。
從公鏈角度看的話,Move 語言稱得上是專為數字資產而生——與 Solidity 等區塊鏈編程語言相比,Move 在核心邏輯上就專門突出了“資產安全性”和“原生高性能”這兩個關鍵詞:
- 一方面,它以 Rust 為基礎,被設計為一種面向對象的語言,用於編寫具有安全資源管理的智能合約,著重強化了數字資產的地位,使得開發者能夠更靈活、安全地在鏈上定義和管理數字資產;
- 另一方面,基於 Move 語言的源代碼 Move IR 可以通過解耦交易腳本和模塊,拆分交易邏輯和智能合約,這也使得 Move 系公鏈的 TPS 往往能達到上萬甚至 10 萬級別,大幅高於 EVM 系公鏈的性能;
簡言之,基於 Move 搭建的區塊鏈網絡,天然具備優於 Solidity 系公鏈的安全性和高性能優勢,這也為新開發人員構建鏈上應用程序提供了一個更好的切入點。
不過對公鏈來說,技術敘事往往不是競爭的主戰場,能否吸引足夠的用戶和資金入場才是公鏈角逐的關鍵,這也是近些年來鮮少有人提及“以太坊殺手”的核心原因——相比以太坊層出不窮的應用層創新,絕大部分新公鏈飽受“鬼城效應”詬病,大多數網絡的用戶和流動性都十分慘淡。
也正因如此,Movement 選擇另闢蹊徑,致力於將 Move 系智能合約的安全性和高性能優勢,與 EVM 系的流動性和用戶群優勢打通,即藉助“將 Move 引入以太坊”的思路來把二者的各自優勢進行結合。
譬如 Movement 旗下的 M1 和 M2 公鏈架構,就既天然具備高效交易處理的優勢,同時又特別集成了以太坊虛擬機(EVM),允許開發者無需編寫 Move 代碼,即可在 M2 上啟動並引入 EVM 繫上成熟的 DApp。
也就是說 Movement 可自動將 Solidity 腳本轉換為 Move 可以理解的操作碼,使得 Move 能獲得與以太坊及其它 EVM 網絡的互操作性。
所以與其說 Movement 是將 Move 引入 EVM 生態,倒不如說是在將 EVM 的資金和用戶納入 Movement Labs 堆棧和泛 Move 生態,最終虹吸 EVM 生態的流量,構建起一個更安全、更高效的區塊鏈系統。
模塊化開發套件 Movement SDK
而實現“將 Move 引入以太坊”這個核心願景的主要開發工具,就是 Movement SDK。
作為一個模塊化開發套件,它主要包含 MoveVM、Fractal、用於排序器網絡和 DA 服務的自定義適配器(Adaptors)這 3 個核心組件。
MoveVM:安全高效的運行環境
首先,作為 Movement SDK 的核心,MoveVM 主要是為智能合約提供一個安全高效、面向資源的運行環境。
這也使 Movement SDK 具備了執行復雜智能合約和管理數字資產的能力,進而成為 M2 網絡不可或缺的組成部分(詳見下文介紹),因此 MoveVM 也是 M2 網絡實現超高交易吞吐量和極快響應速度的關鍵支撐,其主要特點包括:
- 面向資源的編程:MoveVM 將資產視為有形的、不可複製的資源,從而確保了資產管理的更高程度的安全性和完整性;
嚴格的安全保證:通過採用字節碼驗證過程,MoveVM 確保所有運行的代碼都遵守嚴格的安全協議,最大限度地減少漏洞並增強區塊鏈系統的整體穩健性; - 高效的資產管理:它提供了一個受控的環境,允許精確管理數字資產,確保以最高的保真度和可靠性執行交易。
- 類型安全和形式驗證:MoveVM 強調類型安全,採用嚴格的類型系統在編譯時捕獲錯誤,結合形式化的驗證方法,它確保智能合約遵守指定的屬性和安全標準,降低錯誤和漏洞的風險;
- 隔離和封裝:MoveVM 中的資產和代碼封裝在模塊中,從而實施嚴格的訪問控制和隔離,這種封裝可防止未經授權的訪問和交互,確保每個模塊在其定義的參數範圍內運行,從而增強系統的整體安全性和完整性;
- 字節碼驗證:MoveVM 採用全面的字節碼驗證流程在執行前仔細檢查智能合約,此步驟可確保所有合約都符合平臺的安全性和正確性標準,從而顯著降低執行惡意或有缺陷代碼的風險;
值得注意的是,Movement 的 MoveVM 採用了並行處理技術和模塊化架構,前者通過算法將內存池中的交易順序和優先級進行優化,以並行處理的方式來減少處理事務的擁堵和延遲問題。
後者則能夠將原始 MoveVM 的功能擴展到外部環境(如 EVM),也就是搭建一個多功能虛擬機,旨在囊括更廣泛的互操作性區塊鏈生態系統。
就在前兩天,資深 Move 工程師 @artoriatech 曾公開發推“炮轟”目前 Move 系生態所面臨的破碎化問題,直言“開發人員在從一條 Move 鏈過渡到另一條 Move 鏈時遇到的阻力非常大”:
以 Sui Move 和 Aptos Move 為例,每條鏈都是一個孤立的生態系統,具有其獨特的 VM 和工具包,差異非常大,並且隨著協議發佈新功能而繼續增長,以至於它們幾乎是不同的語言,且沒有項目來嘗試減少這種差異。
而 Movement 的模塊化 MoveVM 作為一款多功能虛擬機,則旨在完全兼容 EVM 和其它 Move 生態——目前這已支持部署 Aptos 和 EVM 代碼,並且很快也將覆蓋 Sui 生態。
這意味著 Aptos、以太坊等 EVM 生態的 DApp,都可以在 10 分鐘內部署——開發者無需額外學習 Move,只需將代碼保留在 Solidity 等原有的語言架構中,即可實現並行化部署。
Fractal:橋接 Solidity 和 MoveVM
Fractal 的本質就是一個編譯器,使 Solidity 智能合約能夠在 MoveVM 環境中執行,從而成為無縫連接 Solidity 和 Move 兩種語言的安全框架,使開發者能夠在 MoveVM 上(M2 網絡)部署他們的 Solidity 合約。
這樣的好處也無需贅言,開發者既享受到了 Solidity 的靈活性,又可以利用 Move 的安全性、高性能優勢來解決 Solidity 上的一些先天性痼疾。
Fractal 的編譯過程則主要分為以下 5 個步驟:
- 分詞和解析。該過程首先將 Solidity 腳本分解為表示腳本基本元素(例如變量、函數和控制結構)的分詞,解析這些分詞涉及分析 Solidity 代碼的語法結構,並將元素組織到抽象語法樹 (AST)中,該樹描述了代碼的邏輯和組織流程;
- 抽象語法樹(AST)。AST 是 Solidity 代碼語法結構的樹表示形式,它詳細介紹了操作的層次結構和不同代碼段之間的相互關係;
- 中間語言(IL)。構建 AST 後,代碼將轉換為中間語言(IL),以彌合了高級 Solidity 代碼和執行所需的低級指令之間的差距;
- MoveVM 操作碼。然後將 IL 編譯為 MoveVM 的操作代碼(操作碼),這些操作碼是虛擬機理解和執行的基本指令,指示 MoveVM 應執行的特定操作;
- MoveVM 字節碼。在最後階段,操作碼將轉換為 MoveVM 字節碼,此字節碼是程序的可執行二進制表示形式,完全基於原始的Solidity腳本進行編譯,並準備在 MoveVM 的安全和麵向資源的環境中運行;
根據官方博客披露,目前 Fractal 仍處於開發階段,正在進行徹底的測試和增強,以將其功能擴展到現有功能之外。
自定義適配器
自定義適配器(Custom Adaptors)則是 Movement SDK 的最後一個核心組件(本質上即為下文的 M1 架構),旨在提供與排序器網絡和數據可用性(DA) 服務的無縫集成:
- 數據可用性服務 (DA)。Movement SDK 與 DA 服務集成,使 DA 服務能夠直接在 L1 上運行,或作為獨立的專用 DA 服務運行,確保對交易數據的可靠訪問;
- 對 Danksharding 的支持。為了匹配以太坊的發展路線圖,Movement SDK 預留了與獨家 DA 服務提供商合作的能力,其中包括 Celestia 和 EigenDA——由它們提供有保證的數據可用性;
- 驗證器節點管理和排序器集成服務。Movement SDK 的自定義適配器還負責驗證器節點的戰略管理和重新配置,同時通過與 Snowman 和 Proof of Stake (PoS) 等共識機制對接,SDK 加強了區塊鏈對女巫攻擊的防禦能力;
- 跨 DA 層的包容性。該自定義適配器還能夠支持各種 DA 層,包括 Ethereum-4844 和幾個主權 DA 解決方案,如 Celestia、EigenDA 和 Avail,確保用戶可以選擇最符合其應用需求的 DA 層;
總的來看,Movement SDK 提供了一套包括部署和測試智能合約的運行環境、編譯器、適配器在內的綜合開發套件,旨在簡化開發過程,使開發者尤其是 Solidity 開發者能夠更容易地構建、測試和優化基於 Move 語言的 DApp。
“M1+M2”的公鏈架構
也正是基於 Movement SDK,目前 Movement Labs 開發了包括 M1 和 M2 在內的公鏈架構。
其中 M1 被設計為一個社區為先的網絡,能夠實現極高的交易吞吐量和即時的最終確定性,以提供去中心化排序器網絡和共識層;而 M2 則是一個基於 M1 和以太坊的 ZK-Rollup L2 解決方案(同時支持 Sui Move 和 Aptos Move),通過集成 EVM 使得與以太坊兼容的 DApp 都可以在 M2 上運行。
M1:去中心化排序器網絡和共識層
M1 官方定義是一個基於 Move 的“社區優先的區塊鏈”,可通過即時最終確定性(instant finality)、模塊化定製等架構來提供儘可能高的 TPS,核心目標是通過 Move 語言的高度安全和可定製性來支持複雜的交易和智能合約功能,同時確保平臺的可靠性和用戶的易用性。
但根據目前的公開信息,它當下正逐步過渡為一個去中心化排序器網絡,即在 Movement Labs 整個生態以及任何區塊鏈網絡中扮演“共享排序器”和“共識層”組件的角色,以便實現 Move 和其他網絡之間的互操作性,支持各種應用和服務。
其中值得注意的是,由於 M1 採用了改進的 Snowman 共識機制,允許節點通過模仿社會交流的方式(即節點之間的“閒聊”)來達成共識,所以天然支持更大規模的節點參與和更快的共識速度,以實現高吞吐量和高效的交易排序。
在此基礎上,M1 充當了 M2 的 PoS 排序器網絡和共識層,一方面通過質押的形式來保障 M2 網絡運行的安全性,另一方面使 M2 擁有一個高效的共識機制——要想成為 M1 網絡中的排序器需要質押 MOVE 代幣,並通過 Slash 機制來防止惡意活動,增強網絡的安全性和可靠性。
同時作為 M2 的 PoS 排序器網絡,M1 藉助數據可用性 (DA) 服務和 Prover Marketplace,確保交易的正確性、可訪問性和驗證性。
M2:基於 M1 和以太坊的 ZK-Rollup L2
M2 則可以視為 Movement 生態的“主網”,它引入了基於 Move 的 ZK-Rollup 架構,由 MoveVM、Fractal 和 M1 組成,負責部署具體的 DApp 應用。
之所以說“基於 Move 的 ZK-Rollup 架構”,是因為 M2 計劃使用零知識證明來增強隱私和安全性(即 zk-Move 技術),這將使 M2 不僅在處理速度和成本效益上具有優勢,還在隱私保護方面具有獨特的優勢。
而 MoveVM、Fractal 使得它既能夠執行標準的 EVM 智能合約,也支持 Move 語言編寫的智能合約(Aptos Move、Sui Move);同時又通過利用 Move 語言和 Sui 並行化模型,可為 EVM 交易提供高吞吐量和低延遲服務。
這就意味著 Solidity 等語言的開發人員可以輕鬆啟動安全、高性能和高吞吐量的 MoveVM Rollup 應用,也就是直接利用 Move 語言的原生優勢。
最後所有 M2 上執行的交易會通過 M1 排序器網絡,將交易數據打包發回給以太坊,通過 Prover Marketplace 的 zk-provers 網絡進行有效性證明的最終性,並將 ZK 證明的結果放到以太坊主網上,並將其交易詳細的數據發佈到 Celestia 中,從而實現兩者的數據狀態同步:
藉助 Blobstream 技術,可將 Celestia 的模塊化數據可用性層傳輸到以太坊,且開發者可以如同開發智能合約一樣通過集成 Blobstream 來創建高吞吐量的以太坊 L2。
說白了,M1 負責共識層和交易排序,M2 負責 Solidity-Move 的轉換和交易執行,Celestia/以太坊則負責最終的數據可用性和狀態安全,這種模塊化的架構無疑最大限度融合了 Move 的高性能、安全性和 EVM 的用戶和流量優勢。
小結
技術敘事之外,能否快速從 0 開始構建一個龐大且繁榮的生態,至關重要。
而目前 Movement Labs 開發的 Movement SDK、消息傳遞基礎設施 Hyperlane 和 Movement 共享排序器(M1)等工具套件,也都是為了向開發人員提供必要的資源,從而使其能夠基於 Move 輕鬆地構建和部署應用程序。
且據官方披露,Movement Labs 運行環境 Move Stack 也將於今夏開始測試,作為一個執行層框架,它計劃與 Optimism、Polygon 和 Arbitrum 等公司的許多 Rollup 框架兼容。
那從這個角度看,接下來 M1、M2 和 Move Stack 等套件的結合,或將催生一個涵蓋 Solidity 生態和 Aptos Move、Sui Move 生態在內的泛 MoveVM 宇宙,從而實現其他非基於 Move 語言的協議對 Move 功能的利用,擴大 Move 語言的影響力。
這樣任何一個開發者都能在去中心化、安全的前提下,滿足未來高性能 DApp 運行的需求,解決資產轉移交換等過程中的擴展性和性能問題,從而達到可商用的級別。
雖然說 Movement 發展尚處於早期,但頂級 VC 機構無疑已經看到了這種 Move-Solidity 融合的潛在機會,並開始搶先佈局,以尋求終結“可擴展性瓶頸”和“高性能鬼城”這兩個對立極端的全新解決方案。
如果一切順利,這一套組合拳也不排除會為新一波的場景用例、新用戶以及最終泛 Move-Solidity 生態的增長奠定基礎,拭目以待。