MOVE語言與新公鏈的崛起

22-08-06 16:23
閱讀本文需 25 分鐘
总结 AI 總結
看總結 收起
原文標題:《Solidity 最強對手:MOVE 語言及新公鏈崛起》
原文作者:Jason|@Jason_chen998|BuidlerDAO研究員
Frank|@MonolithMatrix|BuidlerDAO研究員
Move小王子|知乎:手把手寫Move智能合約


新一輪公鏈敘事中有兩個亮眼趨勢:一是以 Move 編程語言爲核心的高性能新公鏈,二是以 Celestia 爲代表的模塊化區塊鏈。藉助本文,我們簡單聊一聊最新崛起的 Move 語言系公鏈三巨頭,以及從技術視角出發,他們背後的 Move 語言究竟好在哪裏。


文章速覽:


01/ Move 語言系公鏈三巨頭的崛起

02/ 當前賽道霸主:Aptos

03/ Resource 特性:Move 真正實現了數字資產化 

04/ 技術差異總結:Solidity v.s. Move05/ Move 未來展望與課程學習  


一. Move 語言系公鏈三巨頭的崛起  


·2019 年,Meta(原 Facebook)全球流通的超主權數字貨幣項目 Libra 問世,誰料想出道即巔峯,隨後因監管限制被迫轉型 Diem 無疾而終。今年 1 月底,Diem 以約 1.82 億美元的價格被 Meta 出售。Libra 與 Diem 團隊在這一過程中,留下了寶貴的遺產——彌補了 Solidity 及 EVM 缺陷的 Move 語言以及衍生出的公鏈團隊,比如最具代表性的 Aptos、Sui 和 Linera。


· 2021 年 12 月,起步最早的 Sui 公佈了 3600 萬美金的 A 輪融資,資方包括 a16z 與 NFX、Scribble Ventures、Redpoint、Lightspeed、Electric Capital、Samsung NEXT、Slow Ventures、Standard Crypto、Coinbase Ventures 等。


· 2022 年 3 月,Aptos 完成 2 億美元融資,同樣由 a16z 領投。


· 2022 年 6 月,Linera 宣佈完成 600 萬美元種子輪融資,本輪融資的領投機構還是 a16z,參投機構包括 Cygni Capital、Kima Ventures 和 Tribe Capital 等。


· 2022 年 7 月,Aptos 完成 1.5 億美元融資,FTX Ventures 和 Jump Crypto 領投,a16z、Multicoin Capital 和 Circle Ventures 等參投;同時 Sui 爆出正在尋求 2 億美元 B 輪融資,估值已經達到 20 億美元。


· 2022 年 8 月,Aptos 宣佈將於 8 月 30 日啓動激勵測試網 3(AIT3),項目方宣佈 AIT2 非常成功,有超過 225 個社區節點參與測試,分佈於全球 44 個國家和 110 個城市。按照項目路線圖,主網將於該測試網結束後上線。


不難發現,a16z 刻意押注「Move 語言系公鏈賽道」,希望三條公鏈跑出下個週期龍頭。Move 語言的三足鼎立態勢也在形成。


三條公鏈當中,開發和生態進展最快的無疑是 Aptos。截至目前,它有着相比較更強大的社區、更活躍的開發人員和更健全的 dApp 生態系統,我們在本文第三部分詳細拆解。


排在第二位的 Sui 已經發布了自己的 Tokenomics($SUI)白皮書。其經濟模型有一個獨特特點:計算費(computation fees)與存儲費(storage fees)分開支付。當用戶提交鏈上數據時,他們會同時支付存儲費與計算費(俗稱 GAS)。計算費會進入 Stake rewards 完成分配,部分轉移至 Storage Fund;存儲費直接轉入 Storage Fund,隨着網絡的增長和成熟,該基金用於補貼未來存儲成本的增加。這一設計將鏈上數據的存儲權迴歸用戶,用戶可以選擇刪除鏈上的數據來取消存儲費。此外,Sui 的開發工具包(SDK)嘗試連接其他生態系統和非加密應用,包括 Gaming APIs、SuiEcho、Handshake 等有特色的 SDKs。但其生態應用佈局與 Aptos 相比非常寒酸,公開報道中僅有數個錢包相關的生態項目。



相較於 Aptos 與 Sui,Linera 顯得起步較晚且更加低調,在今年 6 月 18 日發佈的官方推特中僅展示了官網鏈接及使命。參考蜂巢 Tech《新生代公鏈再攻不可能三角》中的研究:Linera 致力於能將這兩個支付系統的速率引入到應用型的區塊鏈網絡中,使鏈上用戶的操作在幾分之一秒內就能得到確認。在網絡性能方面,Linera 提出了「線性擴展」的概念——通過增加機器數量來使系統容量加倍。目前,區塊鏈優先考慮「順序」執行的模型允許賬戶和智能合約在一系列交易中進行交互(如閃電貸),但阻止了線性擴展。在 Linera 的線性擴展模型中,不同用戶帳戶的操作可在不同的執行線程中同時運行。


二. 當前賽道霸主:Aptos


根據蜂巢 Tech 的報道,今年 3 月 Aptos 啓動了開發者測試網,5 月 Aptos 啓動激勵測試網註冊,並將激勵測試網分爲 4 輪:「去中心化啓動」、「質押」、「治理和升級」以及「動態驗證器拓撲」。當前其測試網絡已經達到了 2 萬多個節點,使其成爲當今最大的已知權益證明節點社區。Aptos 直言,社區的發展遠遠超出了他們此前最瘋狂的預期。而根據計劃,Aptos 激勵測試網的剩餘兩個階段預計會在接下來兩個月間完成,到了 9 月底,Aptos 就將啓動主網。


雖然長期來看,新公鏈最後贏家尚不明確;但是短期來看 Aptos 無疑佔據着「Move 語言系公鏈賽道」王者地位,這由其開發速率和生態建構共同奠定。


Aptos 的明星團隊讓其在創立初期就收到衆多明星資本加持。根據 ForesightNews 報道,其聯合創始人兼首席技術官 Avery Ching 曾在 Facebook 擔任首席軟件工程師超過 10 年,並且是原 Meta 旗下加密平臺 Novi 團隊的技術負責人;Alden Hu、David Wolinsky 等大部分開發團隊都參與了 Diem、Novi 的開發。其設計重點是絕對安全、可擴展性和可信的中立性,最終目標是能夠在一秒鐘內處理 10 萬甚至 16 萬筆交易。在這樣的強技術團隊下,Aptos 也充分展現了自己研發戰鬥力,打造瞭如下突出的邊際優勢:


1. Aptos 團隊對其共識機制-拜占庭容錯(BFT,理解此概念的可參考 CSDN 這篇文章:https://blog.csdn.net/qq_40713201/article/details/124618644)進行了四次迭代,以實現高事務吞吐量、低延遲與高穩定性,在三分之一的驗證節點故障時,仍能保證穩定運行。


2. 有望比老牌公鏈有更快的交易處理速度,根據 Aptos 測試網數據,當前該網絡每秒可處理 1 萬筆以上的交易,理想狀態下,Aptos 主網每秒可處理 16 萬筆交易。公開資料表明,近期有機構對各大公鏈的速度進行了測試,Aptos Max TPS 遠超包括 Solana 在內的老牌公鏈。



3. Aptos 在 7 月正式公佈 30 餘個生態項目,雖然衆多處於測試網和開發階段,可交互的只有錢包和 DEX,但是相比較於其他 Move 語言生態公鏈遙遙領先。如今公佈的生態項目類型包括錢包(Hive)、DEX(Pontem Network)、流動性協議(NjordFinance)、NFT(Topaz.so)、瀏覽器(Aptosscan)及數據分析工具(Dapptos View)等主流 dApp 賽道。



4. 充分利用 Move 開發語言與當前主流公鏈 Solidity 語言差異化競爭。我們接下來從技術視角詳細解讀 Move 語言關鍵優勢。


三. Resource 特性:Move 真正實現了數字資產化


Move 語言被譽爲最適合編寫區塊鏈智能合約的語言之一,並且多次被拿來與目前主流的 Solidity 進行比較併力壓其一頭,主要原因是 Move 對於區塊鏈最核心的 Token 資產進行了更爲貼合的處理,彌補了 Solidity 在直觀性和安全性的缺陷,這裏我們單獨將其最具有特色的 Resource 類型進行重點講解。


因資產上鍊使得安全問題成爲了區塊鏈核心要解決的問題。在 Web2 中如果產品 Bug 或者數據泄露,難以導致用戶資產損失,最多引發產品崩壞或個人信息泄漏、黑市販賣,但是因爲資產上鍊使得智能合約一旦出現了 Bug 就會直接導致背後無數的用戶資產外流或者被鎖死。我們也可以經常從新聞看到黑客對某些交易平臺或跨鏈橋進行攻擊產生了數以億計的資產損失,BuidlerDAO 之前也產出過大量的研報對這些事件進行研究,大部分都是因爲合約出現了比較低級的問題被黑客盯上所導致的。這引發了一個需要讀者注意的關鍵屬性:Solidity 是面向區塊鏈智能合約的編程語言,但不是面向區塊鏈鏈上資產的編程語言。


爲什麼這樣說呢?舉個例子,Solidity 和絕大多數編程語言一樣將 Token 作爲數值變量處理,就是將 Token 的轉移過程是進行加減法操作的,即張三要給李四轉 10 塊錢,於是則先將張三的餘額-10,再將李四的餘額+10。


所以在 Solidity 中資產就是一個可以被加減的數字,那麼這裏面就需要合約代碼非常嚴謹,比如在進行加減法操作時出現了一些問題,給張三-10,李四+20,或者張三-0,李四+10 呢?因爲這個過程就是通過很多代碼邏輯去來回在若干個錢包中進行加減操作,很難保證不會出現一些問題。


究其原因是資產在 Solidity 中沒有被特殊定義,只是將其看作和年齡、電話等一樣的變量。而資產的定義本就應該是獨一無二的,就像是在物理世界中,我手裏有一塊金條,我要將它給某個人,不論給予中間的過程是怎麼樣的,這個金條不會從 1 根變成 2 根。所以我們常說的數字資產,在 Solidity 中只可稱之爲可以被加減的數字,而談不上資產。


Move 的可編程 Resource 是其變得安全且強大的核心,實現了真正意義上的數字資產化。Resource 是一種數據類型。數據類型即定義一種數據結構的方式:


字符:比如姓名、住址,是 String 類型;

數字:比如年齡、電話,可以是 Int 類型;

是否、對錯:一些對立,則可以用 Boolean 的 Ture 和 False 來表示。


Move 認爲 Token 資產是一種很特殊且重要的數據,不應該用普通的數值類型來定義和表示,所以單獨創建了 Resource 來定義鏈上資產。這種方式呈現出三個特性:


1. Resource 在 Move 中依然是以一個數值的形式存在,可以作爲數據結構被儲存,也可以作爲參數被傳遞和返回。


2. Resource 可以安全的表示數字資產,它的特殊在於不能被複制,丟棄或重用,但是它卻可以被安全地存儲和轉移,並且 Resource 類型的值只能由定義該類型的模塊創建和銷燬,所以其實現了資產的含義而非數字。


3. Resource 適配了區塊鏈應用特性,如與賬戶進行綁定。Resource 數據必須要存儲在賬戶下面,所以只有分配了賬戶後纔會存在對應的 Resource 資產,以及 Resource 只要取出後就必須被「使用」,用內置的 Move_form 方法將資產從賬戶中取出後,要麼將其作爲返回值傳遞即必須要流向一個地方,要麼直接將其銷燬,這意味着資產取多少就用多少。還記得 Solidity 是如何操作的嗎?它將一個地址的餘額減少,再去另外一個地址增加,然後通過代碼使得減少和增加的數字是一致的,所以在 Solidity 是完全靠代碼邏輯強硬的實現了資產使用,但是 Resource 則是在底層將資產的概念進行了封裝而非加減法,避免了資產憑空產生和隨意訪問,極大的提高了安全性,可以將 Move 的 Token 移動看作是搬磚,從一個地方搬到另一處,而 Solidity 則是加減法,一處減了,另一處加上。


綜上所述,Move 是一種更加原生且貼合的專用於發行數字資產的編程語言,它實現了程序與數字資產的直接集成。


四. 技術差異總結:Solidity v.s. Move


從 Bitcoin 的 Script 過渡到 Ethereum 的 Solidity,經歷了 DeFi 的洗禮,Solidity 無疑是成功的。但是分析最近半年那些歷歷在目的安全漏洞,例如 PolyNetwork、Horizon、Nomad、Solana 等等,讓人不寒而慄。對比不可能三角,如何保障鏈上資產的安全,已經成了整個行業急需面對的主要問題,a16z 正是看中了這一潛在的剛需,一口氣領投了 Move 的三大公鏈。


未來擁抱 Web3 時代,在這些漏洞的背後,VM 也在不斷的查缺補漏,例如修復原來的溢出問題,但是底層設計上的缺陷很難有質的改進。不同於以往的開發經驗,DeFi 應用本質上是開源、透明的金融系統,對於安全性有極高的要求。所以針對金融場景,設計更安全可靠、低門檻的智能合約語言也許不失於更好的選擇。這裏我們深入對比一下 Solidity 和 Move:



從上面可以看出,Move 在 Solidity 的基礎上,增加了很多的特性,具備極好的安全性和工程能力。Move 從 Solidity 真實的安全漏洞中吸取寶貴的經驗教訓,在底層的安全設計上有重大的創新,在保證語言表達能力和靈活性的同時,也讓開源系統更加安全可靠。


舉個栗子,假設有 100 個 Token,在 Solidity 中,黑客能夠輕易的將 100 個 Token 複製成更多的 Token(參考無限增發的漏洞)。但是在 Move 中,只要將 Token 定義成 Resource 類型,從虛擬機層面保證 Token 是不可以複製和修改的,黑客絕對不能通過複製來盜取 Token。


對 Move 來說,類似的優點很多:


面向資源編程


Move 專門針對金融場景進行了增強,引入了面向資源編程。對於 FT 和 NFT 等常用場景,Move 將數據定義成資源,能夠從虛擬機層面保障了數據的安全。


純靜態語言


動態調用是 Solidity 的基石,所有的跨合約調用都要通過動態調用來實現,例如 DelegateCall,但是也是大部分安全漏洞的入口,例如 TheDAO 攻擊、PolyNetwork 跨鏈攻擊等等。鑑於 Solidity 的真實經驗,Move 採用了完全純靜態的實現,更好的保障鏈上資產安全。


形式化驗證


形式化驗證是 FV(formal verification) 是指使用數學工具分析設計可能行爲的空間,而不是計算特定值的結果。也就是說,通過數學的手段證明程序的安全性。Move 自帶形式化驗證的工具,我們可以使用數學的手段來測試和證明合約的可靠性,這是 Solidity 不可比擬的優勢。


分散存儲


Web3 時代,用戶掌握數據是所有權。Solidity 是通過 Map 的形式,集中存儲合約數據,在合約出現漏洞的時候,例如獲取到了合約 Owner 權限,所有用戶數據都將遭受攻擊。Move 巧用 Resource,能夠將數據分散的存儲到每個用戶自己的 Account 下,既保證了數據的安全,又真正的做到了數據的所有權歸用戶所有,合約的 Owner 沒有修改數據的權限。


面向泛型編程


出於安全的考慮,Move 設計成了純靜態語言,但是靈活性並沒有因此而減少,Move 通過面向泛型編程,保障了合約的擴展性,增加了代碼的複用能力。


五. Move 未來展望與課程學習


從 Script 到 Solidity 是合約表達能力的變革,從 Solidity 到 Move 是合約安全能力的變革。


Move 是對開發者友好的。Move 語言的宗旨就是,降低開發者的安全門檻。合約開發者可以專注於業務邏輯,無需在代碼安全上面花費很多的心思。只有讓合約開發者在無感的情況下寫出高安全性的代碼,遠離那些低級 Bug 導致的安全漏洞,才能讓 DeFi 更安全,才能讓用戶更放心。Move 還有很多優良特性(例如工程能力)我們未在本文展開說明,但是非常值得探索的方向。


在研究新公鏈這一火熱話題中,我們研究員不約而同發現理解本輪新公鏈敘事,必須懂得 Move 技術細節與公鏈技術創新。


因此 Buidler DAO 聯合 3NJOY Lab 團隊 Move 語言資深佈道師(Move 小王子),打造一款純公益技術系列課。我們希望藉助新公鏈這一趨勢,繼續爲業內紮實 Buidl,向行業提供一款全新課程——從 Move 語法開始,由淺入深,逐步深入到 Move 的高級特性,手把手教學,適合各種學習 Move 的朋友,敬請期待。


參考文章:


- Mysten Labs & Sui: vs. Aptos, other L1s . State Io

https://medium.com/@state_xyz/mysten-labs-sui-vs-aptos-other-l1s-d046b598a914

- 新生代公鏈再攻「不可能三角」. 蜂巢 Tech

https://mp.weixin.qq.com/s/yS3heq0qbdcPwX3WVYMnKw

-「新新公鏈」戰火再起?搶先盤點Aptos 生態 . ForesightNews

https://foresightnews.pro/article/h5Detail/8874

- 30 條新公鏈 . 嗶嗶 News

https://mp.weixin.qq.com/s/e1cyqDKsYfcQ3DZJ238D9w

- 爲什麼我認爲 Move 終將超越 Solidity . 3NJOY Lab

https://www.odaily.news/post/5180762


原文鏈接



欢迎加入律动 BlockBeats 官方社群:

Telegram 订阅群:https://t.me/theblockbeats

Telegram 交流群:https://t.me/BlockBeats_App

Twitter 官方账号:https://twitter.com/BlockBeatsAsia

選擇文庫
新增文庫
取消
完成
新增文庫
僅自己可見
公開
保存
糾錯/舉報
提交