最近 Aptos 、 Sui 的新熱潮帶火了Move 相關的生態概念。我們團隊從事Move 相關的工作一年多,算是全球最經驗最多、踩坑最多的開發者團隊之一,藉此分享一下對Move 的看法與理解。本文源自於 3NJOY Lab 創辦人 Flex 的文章《为什么我认为Move终将超越Solidity》,由 PAnews 整理、轉稿。
(前情提要:全面解讀》黑馬明星公鏈Aptos :先發優勢下的機遇與挑戰)
(背景補充:盤點新崛起的公鏈 Sui、Aptos 和 Linera:被頂級創投押注的 Diem「繼承者們」)
最近Aptos 、 Sui 的新熱潮帶火了 Move 相關的生態概念。我們團隊從事 Move 相關的工作一年多,算是全球最經驗最多、踩坑最多的開發者團隊之一,藉此分享一下對 Move 的看法與理解。
我們團隊過往在 Ethereum 、 Solana 生態上都開發過項目,而自從我接觸了 Move 之後一直保持著一個觀點: Move 是目前最先進的智能合約語言,未來是一定會超越 Solidity 生態系統的,這也正是我們團隊堅持在 Move 領域持續開發的源動力。
為資產安全而生
現今數字資產概念在不斷擴展,「數字」的屬性不斷被弱化, 「資產」的屬性不斷被強化。幾乎每一個加密項目都會有加密資產,並且加密資產的不斷增值往往成為項目發展的動力,但資產的增值與項目的發展離不開資產安全。
資產安全似乎是所有平台應該給予的基本保障,但事實卻令人沮喪,我們已經看到了一次又一次的被盜事件。
這讓我意識到 Move 的優越性。 Move 編程語言通過資源定義與控制權限分離、靜態類型、泛型、模塊系統、形式化驗證等特性使得智能合約語言更適合其面向資產的場景,從智能合約層面保障數字資產的安全。而通過資源定義與權限控制分離,不僅明確了資源屬性,也讓用戶可以靈活地管理和轉移資產,同時提供安全和保護措施,防止這些資產受到攻擊,這讓 Move 語言有相比 Solidity 更高的安全性。
面向資源程式撰寫
除了安全之外,最吸引我的還是 Move 更具有表現力的面向資源程式撰寫的理念,當然,這種理念也是它是讓它更安全的的特性之一。
在 Move 裡,資源( Resource )是一等公民,在編寫程式的時候是必須被首先考慮的被編寫對象。
Resource 可以對應到我們物理世界中的實物,創造出來是需要有一定的權限或者消耗其他 Resource 的,而創造出來之後不能被複製也不能憑空消失。就像是一杯咖啡,只能選擇喝掉或者倒掉( drop ),不能複製( copy)。
當我們在編寫合約的時候最重要的事情就是思考如何定義 Resource 的屬性, Move 語言抽象了資源的四個屬性,可複製( copy )、可索引( key )、可毀滅( drop )、可儲存( store ),通過這四個屬性的不同組合,用戶可以方便的定義出任何類型的資源。這種針對 Resource 的設計天然就保證了一些常見的安全問題比如複製增發不會在出現。
Move 通過對資源操作權限的抽象,用戶可以明確定義資源可被操作的行為,從而將自己的注意力轉移至其他更應該被關注的地方,編寫正確的業務邏輯,實現正確的訪問控制策略等等。
提高可組合性
過去我們一直在講智能合約的可組合性,而在 Solidity 生態的智能合約的可組合性更像是基於 Interface 間通過消息傳遞進行的組合。而在 Move 是基於 Module 間的組合,通過資源的傳遞進行交互。
怎麼理解他們之間的不同呢?以建造一個汽車工廠為例,Solidity 的做法是定義了這個工廠的生產標準以及流程,每一個想來造汽車的人都需要先造一個符合生產標準及流程的工廠,然後才能創造汽車。而Move 的方式是工廠就只有一個,想要造汽車的人使用這一個工廠就能造出來大家都認可的汽車。
這樣帶來的好處一方面是節省了合約佔用的區塊空間,我們不需要重複創造工廠了,另一方面的好處是優化升級變得容易,不會自縛手腳了。
比如在以太坊上,當我們想擴展一些新的行為或者做一些實現上的優化,那我們需要重新定義過往的接口,同時也會影響舊的方法,像 ERC-721 和 ERC-721A, ERC-4907 這些優化和新的定義,是沒有辦法直接讓過去所有使用了 ERC-721 的合約直接進行升級迭代的。
而 Move 基於 Module 間的組合只需要對 Module 進行升級和優化,所有使用過這個 Module 的其他合約都會自動使用最新的版本。
這種合約層面的可組合性和麵向資源的程式編寫帶來的表現力與可擴展性是其他語言無法帶來的。同時針對資源的定義也更貼近現實世界中各種資源的組合方式,比如樂高, 組裝電腦的主機的各種配件。
Move 這些特點帶來的一個關鍵性的好處就是可以非常明確的將資源的定義和資源相關的行為進行拆分。
就像一個物品,物品的本身定義只是決定了他以什麼形態展示,具有那些屬性,能夠以什麼方式被銷毀。而他的所有權,是否可以進行轉讓等等相關的行為,完全有物品的所有人或者使用方來決定。
這跟現實世界是高度相似的,當一個商品擺在貨架上的時候,是可以被任何人購買的。而當商品放在保險櫃裡,就收到了其他規則的限制。
延伸閱讀:Aptos|激勵測試網2完成測試,合條件者將發代幣獎勵;主網今年秋季上線
總結
資產安全、資源抽象、可組合這些都是 Move 在語言層面上的特性,綜合來說,我認為它是最適配鏈上應用開發的語言,它的特性與 DeFi、 NFT 等產品的需求高度契合,並且 Aptos、Sui、Starcoin 等新公鏈存在市場空白,NFT、DeFi 等業態尚未成熟,我認為以 Aptos 為代表的新公鏈崛起將是所有掌握 Move 語言團隊的巨大機會。
這也是為什麼 3NJOY Lab 下的兩款產品 Souffl3 和 Wav3 會在第一時間 all in Move 生態從事NFT 領域的基礎設施方向的工作。
隨著 Aptos 和Sui 的測試網上線與開發者社區的不斷壯大, Move 走入了更多人的視野,我們團隊也期待看到,越來越多的人可以利用這些語言上的特性和優勢,搭建更多有意思的應用場景。
當網絡從 3G 升級到 4G 的時候,大多數人不知道更快的移動頻寬有什麼用,但網絡提速催生了移動網路的大爆發。
當 Move 和 Aptos 這些公鏈出現,大多數人不知道更低 GAS 、更高 TPS 的區塊鏈和這門新的合約語言組合在一起會有什麼用——我們也不知道,但我們相信,技術進步將會推動產品創新——正如歷史已經顯現過的經驗一樣。
在2022 年,我們可以期待 Aptos 和其它使用 Move 作為合約語言的公鏈上將會有豐富的應用雨後春筍般湧現出來,就像轟隆作響的蒸汽火車頭,將帶著加密網路向下一個去中心、可組合、安全的未來駛去。