原文作者:asmp
原文作者:asmp
2019 年,Meta(原Facebook)推出了加密貨幣項目Libra,吸引了整個金融市場的關注, 但隨後Libra 因監管限制被迫轉型Diem。今年1 月底,Diem 以約1.82 億美元的價格被Meta 出售。 Meta 的Libra 和Diem 計劃看起來是無疾而終,但卻給加密行業留下了寶貴的遺產——彌補了Solidity 及EVM 缺陷的Move 編程語言以及衍生出的公鏈團隊,比如最具代表性的Aptos、 Sui 和Linera。
Move 編程語言從最開始被推出以來,便被不少開發者譽為是最適合區塊鏈的語言。隨著最近Aptos 和Sui 等超新公鏈的強勢出場, Move 語言也被大家廣泛的議論,並不斷被與Solidity 和Rust 做對比。本篇文章我們將Move 語言的金融屬性,智能合約的安全性,靈活性,可組合性,以及Move 語言和Solidity, Rust 的聯繫和比較進行探討,並追踪建立在Move 語言上的新公鏈們的進展。
一、Move 的兩大優勢
目前最主流的智能合約語言是Solidity,和它相比Move 最大的特點是安全,Move 從語言、虛擬機、合約調用、合約運行等層面為智能合約提供了全方位安全保障,此外在可組合性方面,Move 也提供了更優解決方案。下面將分別介紹Move 這兩個最大優勢。
1、從底層確保智能合約的安全性
根據慢霧此前的報告,2021 年區塊鏈安全事件導致損失超98 億美元。作為新興的編程語言,Move 語言在安全性上也做了不同層面的突破和創新。
圖片描述
圖片描述
圖片描述
Move 代碼示例
先字節驗證,後執行合約
與Solidity 採用編譯器不同,作為一種可執行的字節碼語言,Move 具有內置的安全算法和字節碼驗證器(Bytecode verifier),可以防止許多常見錯誤。 Move 合約代碼要能被執行,必須先被驗證,這使得合約可以免受編譯器的潛在故障和可能遭遇到的攻擊。
圖片描述
圖片描述
圖片描述
圖片描述
圖片描述
Move 通過編程語言內部的安全性對智能合約的狀態進行隔離
靜態調用減少合約調用漏洞
合約的調用方式可以分為靜態調用和動態調用。若程序調用必須在運行時才能確定被調用的目標,則稱該調用為動態調用;反之,在運行前即可確定被調用目標,且在運行時無法變更該目標,則稱該調用為靜態調用。
動態調用允許程序裡面可以寫很多的函數、過程或者子程序,是一個靈活的語言機制。但靈活也意味著更容易出問題,動態調用不利於程序的推理,更不利於形式化驗證(Formal verification),也更容易出安全問題,例如惡意用戶通過循環調用製造惡意合約,造成多方的損失。
Move 語言採用靜態調用,所有的合約執行路徑都能在編譯的時候確定,然後可以進行非常充分的分析、驗證。開發者將問題暴露在合約編譯的階段,而非運行階段,降低運行時出現宕機的概率。與以太坊EVM 平台相比,Move 模塊系統不支持循環調用,完美解決合約重入漏洞。
2、基於模塊的可組合性:效率更高、更靈活
智能合約的可組合性是構建編程語言生態的另一重要特性。 Solidity 等語言生態的智能合約的組合基本是基於Interface 間通過消息傳遞進行的組合。而在Move 是基於Module(模塊) 間的組合,通過資源(Resources)的傳遞進行交互。
以太坊上,當我們想擴展一些新的行為或者做一些實現上的優化,那我們需要重新定義過往的接口,同時也會影響舊的方法。
而在Move 中,合約的組合只需要對Module 進行升級和優化,所有使用過這個Module 的其他合約都會自動使用最新的版本。 Move 的Module 功能類似於以太坊中的合約,但更類似於使用面向對象編程的銀行。 Module相當於給智能合約提供了統一的兼容空間,智能合約就像樂高玩具的各個部分,通過任意組合產生新的產品。
按照3NJOY Lab 創始人Flex 的解釋,如果以建造一個汽車工廠為例,Solidity 的做法是定義了這個工廠的生產標準以及流程,每一個想來造汽車的人都需要先造一個符合生產標準及流程的工廠,然後才能創造汽車。而Move 的方式是工廠就只有一個,想要造汽車的人使用這一個工廠就能造出來大家都認可的汽車。
Move 通過Module 間的組合,一方面,節省了合約佔用的區塊空間,一方面,讓升級變得更加容易。同時,由於Module 系統沿用了線性邏輯,可以很好地將數字資產的概念打包封裝,並非常明確的將資源的定義和資源相關的行為進行拆分,這種面向資源的編程帶來的表現力與可擴展性是其他語言無法帶來的。
二、Move 和Solidity,Rust 的聯繫和比較
相較於早在2014 年就發布的Solidity,Move 在區塊鏈開發領域還是一種非常年輕的開發語言,需要更多的時間來證明它是一種足夠安全並且不容易報錯的區塊鏈開發技術選項。
Move 和Solidity 的主要區別
1、在金融屬性上,Move 將資產作為一種Resource, 對區塊鏈最核心的Token 資產進行了更為原生,底層的處理。
2、在合約的靈活性上,Move 可以創建一次性指令。
圖片描述
圖片描述
圖片描述
Move 的Module 屬性
4、在性能上,Move 作為一種解釋性語言,它的每行代碼都需要在運行中單獨進行評估。
由於Move 代碼需要在運行中進行評估,Move 的性能表現可能不如Solidity 以及其他編譯語言。不過,這也避免了Solidity 中常見的bug,是出於安全性考慮的一種折衷策略。目前,完全基於Move 所構建的區塊鏈生態還十分有限,並且用Move 所創建的智能合約暫時也無法移植到現有的其他區塊鏈。儘管如此,開發者可以通過在EVM 中運行大多數應用程序,並在Move 中做出對應的必要修改來替換舊程序。
Move 和Rust 之間的聯繫
另外,在我們比較Move 和Solidity 的同時,也需要提及與Move 十分接近的Rust,或者更準確的說,Move 是建立在Rust 的基礎上,但又不同於Rust 的一種新語言。 Rust 首次發佈於2011 年,比Solidity 更早,並且不同於經常出現安全性問題的Solidity,Rust 的誕生同時兼顧了安全性和運行性能,從代碼語法上來看,Rust 接近於傳統編程語言C++,所以具有高效的運行性能,但又為內存提供了安全保障。 Rust 是Solana 生態開發者的必學語言。在開發過程中,Rust 環境中的bug 可以在程序彙編時被發現並消除,這一點與使用Move 開發時,在運行中逐行評估代碼、避免產生bug,異曲同工。而且,Move 中的模塊與resource 也和Rust 環境下內置的依賴項管理器Cargo 有著相似之處。正因為Move 與Rust 的緊密聯繫,很多Solana 生態中熟練使用Rust 語言的開發者都開始往像Aptos 和Sui 這樣基於Move 的新興區塊鏈生態進行遷移。
三、MOVE 生態下的新公鏈建設
Aptos
Move 生態下已有Aptos, Sui, Linera, Starcoin 等公鏈部署,它們都在Move 語言的基礎上做了自身的拓展。本章節將對Aptos, Sui, Starcoin 進行介紹。
項目簡介
開發進展
開發進展
開發進展
開發進展
今年3 月Aptos 啟動了開發者測試網,5 月Aptos 啟動激勵測試網註冊,並將激勵測試網分為4 輪:「去中心化啟動」、「質押」、「治理和升級」以及「動態驗證器拓撲」。當前其測試網絡已經達到了2 萬多個節點,使其成為當今最大的已知權益證明節點社區。
Aptos 第三輪激勵測試網活動AIT-3 將8 月30 日正式啟動,9 月9 日測試結束,Aptos 主網將於今年秋季上線。
生態發展
Sui
今年6 月底,Aptos 推出了2 億美元的生態系統資助計劃,吸引了超過100 個項目在Aptos 構建。從生態佈局來看,Aptos 仍以基礎設施建設為主,部署應用的場景多是錢包、DEX 和借貸協議等產品,值得關注的有超並行CLOB 協議Econia、移動多簽錢包hive、可集成應用程序的加密錢包Martian、借貸協議NjordFinance、交易聚合器Hippo Labs、AMM 交易應用Pontem Network 等。
項目簡介
Sui是由前Meta工程師創立的Mysten Labs 建立,引入了不可變狀態,試圖在Move 中實現類似UTXO 的編程模型。 Sui專注於高TPS和低延遲, 沒有設置TPS上限,具有良好的擴容能力,降低用戶的交易成本。在今年3月的測試當中,Sui的TPS達到12萬。 Sui 正在以20億美元估值完成至少2億美元的B輪融資。
項目特性
鏈上存儲及其擴展性。 Sui Move 中沒有全局存儲,存儲只發生在Sui 存儲內,而不是Move 存儲中。 Sui 的存儲低成本且可水平擴展,使開發人員能夠定義具有豐富屬性的複雜資產。
高性能& 高擴展性:Sui 橫向擴展以滿足應用程序的需求。 Mysten Labs 表示,Sui authorities(節點)理論上可以有效地無限擴展網絡吞吐量,以滿足建設者和創造者的需求。截至2022 年3 月19 日,在8 核M1 Macbook Pro 上運行的未優化單一worker(single-worker) Sui authorities 可以每秒執行和提交12 萬個代幣傳輸事務(TPS)。
開發進展
開發進展
開發進展
開發進展
Sui 於5月上線Devnet,允許開發者使用Sui 網絡,截至7月已有超5000個節點在Devnet 上運行。
本月,Sui 將啟動激勵測試網,目前已啟動激勵測試網註冊。測試網將分為:網絡、質押、升級等不同階段。
生態進展
Starcoin
開發進展
開發進展
開發進展
開發進展
Starcoin 於2021年5月上線主網,Starcoin 主網目前已穩定運行一年多時間。 Starcoin Layer2 將於今年9月提供測試網絡。
生態發展
Starcoin 生態包括錢包、CEX、DEX、礦池、穩定幣、NFT、鏈遊等七類,主要圍繞STC 挖礦,交易等展開。
一級標題
結語
結語
原文鏈接
原文鏈接
