Solidity最強對手:MOVE語言及新公鏈崛起

新一輪公鏈敘事中有兩個亮眼趨勢:

一是以Move 編程語言為核心的高性能新公鏈,

二是以Celestia 為代表的模塊化區塊鏈。

借助本文,我們簡單聊一聊最新崛起的Move 語言系公鏈三巨頭,以及從技術視角出發,他們背後的Move 語言究竟好在哪裡。

全文5288 字,預計閱讀時間13 分鐘

文章速覽:

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

02/ 當前賽道霸主:Aptos

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

04/ 技術差異總結:Solidity vs Move

05/ Move 未來展望與課程學習

1. 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 的線性擴展模型中,不同用戶帳戶的操作可在不同的執行線程中同時運行。

2. 當前賽道霸主: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 語言關鍵優勢。

3. 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 是一種更加原生且貼合的專用於發行數字資產的編程語言,它實現了程序與數字資產的直接集成。

4. 技術差異總結:Solidity vs 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 通過面向泛型編程,保障了合約的擴展性,增加了代碼的複用能力。

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

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

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

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

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

作者:

Jason |@Jason_chen998|BuidlerDAO研究員

Frank |@MonolithMatrix |BuidlerDAO研究員

Move 小王子|知乎:手把手寫Move 智能合約

來源:Buidler DAO

Total
0
Shares
Related Posts