以太坊交易所 以太坊交易所
Ctrl+D 以太坊交易所
ads
首頁 > 幣安幣 > Info

Web3.0 底層語言:Move 彌補了 Solidity 哪些不足?_SOL:SOLID

Author:

Time:1900/1/1 0:00:00

作者:宋嘉吉任鶴義,國盛證券研究所

為什么基于Solidity語言的以太坊生態如此龐大,市場依然對新公鏈有著新期待?Move出自大廠,被行業普遍看好,前期一些基于Move語言開發的公鏈得到了市場的青睞和資本的追捧。面向Web3更為豐富的應用,底層語言的進化是基礎,Move有哪些優勢,彌補了Solidity哪些不足?基于這些特點,Move生態有可能誕生新模式和新應用。

針對已有的編程語言如Solidity,Move語言在很多細節設計考慮的比較周到,如將庫與應用邏輯分離開來;但最為突出的特點是資源類型方面,即面向資源的編程。在Dapp應用支持方面,吸收了比特幣script和以太坊的smartcontract的優點,因此行業普遍對該編程語言比較看好。而針對Solidity被外界詬病的安全問題,move也在嘗試解決。

Move是面向資源(resources)的編程語言,資源在Move的世界里是“第一等公民”,其關鍵特性是自定義資源類型:resources永遠不能被復制或隱式丟棄,只能在程序存儲位置之間移動。Solidity并不是面向資源的,用戶的賬戶擁有某個Token資產,只是該Token合約分配給用戶的一個數值。

而Move創建的Token賬戶資產是獨一無二的資源類型,比如賬戶A中的資產是保存在A賬戶中的,雖然也是數值,但不能復制、丟棄或重用,可以被安全地存儲和轉移。同時,賬戶資產只能由定義該資源的模塊進行創建和銷毀,這使得同質化的數值類型的資產可能產生的重入、類似雙花或者賬戶余額出現不平衡的狀況得以避免。在這一點上,Move賬戶資產有些類似比特幣的UTXO機制,Token不再是簡單的同質化數值,而是可區分的。

為了可以實現更靈活的業務,Move另外定義了4種權限屬性:可復制(copy)、可丟棄(drop)、可存儲(store)、可檢索(key)。這4種屬性可以任意組合,來定義資源的屬性,方便用戶靈活操作。如drop+store+key的組合,定義的資源是不可以復制的,可以避免復制引發的代幣增發以及雙花的問題,這一點類似NFT以及比特幣的UTXO機制。

耐克的Web3社區平臺.SWOOSH與Fortnite達成合作:金色財經報道,耐克Web3平臺.SWOOSH與著名在線多人游戲《堡壘之夜》(Fortnite)合作,提供虛擬體驗,獎勵玩家數字運動鞋。這吸引了大量受眾,僅在過去30天內就有超過2.4億用戶登錄了Fortnite 。

此外,從即日起至6月27日,耐克、堡壘之夜背后團隊Epic Games和品牌游戲開發商Beyond Creative合作推出的“Airphoria”將在堡壘之夜開放,所有游玩10分鐘或更長時間的堡壘之夜玩家都將獲得Air Max 1 '86 Back Bling數字運動鞋。

耐克還與Fortnite合作開發了其他幾款數字產品,包括Airie和Maxxed Out Max服裝,可通過Fortnite Item Shop購買。[2023/6/21 21:50:35]

對于模塊化和合約組合性方面,Moe使用了模塊和腳本設計,通過傳遞資源實現合約交互。Solidity上面的Contract合約通過library進行消息的傳遞,從而實現Contract合約之間的調用、交互。而Move語言使用了模塊(module)和腳本(script)的設計,前者類似于Contract合約,Move語言的合約組合性則是模塊之間的組合,通過傳遞資源。關于組合性方面,Solidity和Move的區別非常明顯。

在交易執行方面,Move的并行處理相交Solidity帶來區塊鏈性能的極大提升。并行執行通過識別獨立交易并同時執行,這極大提升了區塊鏈的擴展性。Solidity并不支持并行處理,如以太坊上的交易按順序執行,其他交易置于暫停狀態——因此產生了mempool和MEV市場。如基于Move的公鏈Aptos,利用Block-STM引擎實現并行處理,帶來性能的明顯提升。

一:核心觀點

BNB Chain Web3 Stars加速器計劃在越南啟動:8月12日消息,BNB Chain宣布在越南推出了其首個BNB Chain Web3 Stars加速器。 該計劃旨在發掘該地區的創新Web3項目,幫助越南開發人員構建可擴展的Web3 dApp,并獲得對高活躍度的BNB Chain社區的訪問權限。

孵化階段選定的十個Web3 Stars項目將獲得BNB Chain的營銷和社區支持的獨家訪問權,以及在項目孵化結束后瓜分50,000美元贈款的機會。

據悉,報名將于8月20日截止,前10名獲獎者將于8月25日公布,最終獲獎者將于10月1日公布。[2022/8/12 12:21:00]

Move出自大廠,被行業普遍看好,期間一些基于Move語言開發的公鏈得到了市場的青睞和資本的追捧。為什么基于Solidity語言的以太坊生態如此龐大,市場依然對新公鏈有著新期待?Move所擁有的優勢,彌補了Solidity哪些不足?基于這些特點,Move生態有可能誕生新模式和新應用。

本文對比Solidity和EVM存在的不足,分析了Move的優勢與特點。

二:為什么發明Move:彌補Solidity的哪些問題?

Move是Meta公司為其Diem項目開發的一種安全可靠的智能合約語言,Aptos、Sui等新公鏈使用的正是move編程語言,這些公鏈正是看中了Move的優勢及其并行處理特性,可拓展單片鏈的局限。Move是基于Rust的編程語言,但是Move專門針對智能合約進行開發優化,主要用于操作資源,因此入門門檻是低于rust的。

因為主要針對智能合約,因此砍掉了許多Rust多余的操作,更加簡潔。為了彌補Solidity和EVM出現的一些不足,Move做了一些優化,使得基于Move的Dapp應用有著更多靈活玩法。

Polygon聯合創始人:盡管加密貨幣低迷,仍然看好Web 3:金色財經報道,比特幣和加密貨幣市場的近期的低迷讓行業專家預計加密寒冬會延長,但Polygon聯合創始人 Sandeep Nailwal 認為 Web 3 的總體前景仍然看漲。這位高管斷言,此次修正更多地與“宏觀”有關,而不是 Web 3 領域的任何根本弱點。在最新的 Twitter 帖子中,Nailwal表示:“長期來看,Web3 仍然非常看好,所以新手要不斷學習,而開發者要不斷開發!”

Polygon 聯合創始人預測,當美聯儲加息時,通脹在 3-6 個月內達到峰值后,市場最終將觸底。(cryptopotato)[2022/6/16 4:30:44]

針對已有的編程語言如Solidity,Move語言在很多細節設計考慮的比較周到,如將庫與應用邏輯分離開來;但最為突出的特點是資源類型方面,即面向資源的編程。在Dapp應用支持方面,吸收了比特幣script和以太坊的smartcontract的優點,因此行業普遍對該編程語言比較看好。而針對Solidity被外界詬病的安全問題,move也在嘗試解決。

2.1.一等資源與數字資產

與其出現的背景相匹配,Move是面向資源(resources)的編程語言,資源在Move的世界里是“第一等公民”,其關鍵特性是自定義資源類型:resources永遠不能被復制或隱式丟棄,只能在程序存儲位置之間移動。它可以像傳統的類型一樣,可以存儲在數據結構中,也可以作為參數傳遞。

簡單的說,他就是傳統編程語言中一個不可隨意銷毀的新數據類型。對比Solidity定義的資產,如以太坊上的某種Token賬戶,資產只是一個數值,兩個賬戶之間發生轉賬后,賬戶資產數值相應的發生變化,不同賬戶資產的區別就是數值余額,并無本質區別。

z0Miner挖礦木馬利用Weblogic最新漏洞入侵5000臺服務器:11月3日消息,騰訊主機安全(云鏡)于2020.11.02日捕獲到挖礦木馬團伙z0Miner利用Weblogic未授權命令執行漏洞(CVE-2020-14882/14883)的攻擊行動。該團伙通過批量掃描云服務器發現具有Weblogic漏洞的機器,發送精心構造的數據包進行攻擊。之后執行遠程命令下載shell腳本z0.txt運行,再利用該shell腳本植入門羅幣挖礦木馬、挖礦任務本地持久化,以及通過爆破SSH橫向移動。根據該團伙控制的算力推算,已有大約5000臺服務器受害。由于Weblogic未授權命令執行漏洞(CVE-2020-14882/14883)10月21日才被官方公布,有許多企業未來得及修復,同時該漏洞的補丁存在被繞過的風險。因此該挖礦木馬可能對云主機造成較大威脅。(騰訊安全威脅情報中心)[2020/11/3 11:33:44]

同時需要注意,例如以太坊上ERC20代幣TokenA,其是一個獨立的合約賬戶,這個合約為用戶分配一個數值,代表用戶擁有的TokenA的數量。從這一點可以看出,Solidity并不是面向資源的,用戶的賬戶擁有某個Token資產,只是該Token合約分配給用戶的一個數值。

而Move創建的Token賬戶資產是獨一無二的資源類型,比如賬戶A中的資產是保存在A賬戶中的,雖然也是數值,但不能復制、丟棄或重用,可以被安全地存儲和轉移,用并不完全準確的比喻,可以認為A賬戶中的資產與其他賬戶資產在某種意義上是不完全同質的。

同時,賬戶資產只能由定義該資源的模塊進行創建和銷毀,這使得同質化的數值類型的資產可能產生的重入、類似雙花或者賬戶余額出現不平衡的狀況得以避免。在這一點上,Move賬戶資產有些類似比特幣的UTXO機制,Token不再是簡單的同質化數值,而是可區分的。

Web3基金會:DOT目前還不存在,需警惕欺詐銷售行為:Web3基金會發推,\"DOT目前還不存在,波卡的原生代幣DOT的分配目前在技術和法律上都是不可以轉讓的,所以任何公開銷售的DOT都不會受到Web3基金會的認可,并且可能存在欺詐行為。有關DOT的任何正式銷售的信息都會在Web3基金會的網站上宣布,時間在5月上線波卡主網和網絡全面去中心化之后,這個時候DOT持有者也將決定代幣的發行和轉賬。\"[2020/4/29]

為了可以實現更靈活的業務,Move另外定義了4種權限屬性:可復制(copy)、可丟棄(drop)、可存儲(store)、可檢索(key)。這4種屬性可以任意組合,來定義資源的屬性,方便用戶靈活操作。如drop+store+key的組合,定義的資源是不可以復制的,可以避免復制引發的代幣增發以及雙花的問題,這一點類似NFT以及比特幣的UTXO機制。

可以這樣理解,以太坊的資產是由相應的合約控制,如果把TokenA合約比喻為保險箱,保險箱會給所有用戶分配一個數值余額,來表達用戶所有擁有的TokenA資產數量,但資產本身還是放在TokenA合約的保險箱內。而Move用戶賬戶本身就是一個單獨的大保險箱,由用戶自己控制,所有的Token資產都放在這個保險箱內。且這些Token并不是以數字的形式存在,而是不可復制的、權限受用戶控制的資源。

Move語言中的資源定義與權限是分離的,資源的權限屬于用戶。Solidity中賬戶資源權限歸屬于合約,比如以太坊上某個erc20Token屬于相應的合約,如用戶在DEX如Uniswap合約進行TokenA兌換為TokendB交易時,無法在Uniswap合約里直接提取自己的A資產換為B資產——因為Uniswap里資產的權限屬于其合約。

實際的流程至少三步交易操作:i)首先對Uniswap合約進行授權,授權Uniswap合約代用戶提取A合約的資產;ii)進入Uniswap合約進行兌換,提取A后將B存入賬戶;iii)取消授權。但用戶一般不會在完成兌換后立刻取消授權,一旦Uniswap合約受到攻擊或者出現漏洞,就為用的AToken賬戶帶來風險。需要注意的是,授權/取消授權都需要在以太坊上執行合約操作,從而產生gas費。

從這里我們可以清晰看到,TokenA、TokenB、Uniswap里的LP資產權限分屬于各自的合約,用戶無法通過一個賬戶在三個合約之間自由切換。而Move的資產大賬戶則不需要跨合約授權,權限是屬于用戶的,用戶直接在DEX里提取A、兌換為B存儲到賬戶里,這個過程可以在一個交易操作里完成,無需授權/取消授權操作,一定程度上提高了安全性。

2.2.Move語言的模塊化和靈活組合性

此前我們的深度報告《Web3.0時代:開放、隱私、共建》中提出了Web3.0與Web2.0很大的區別在于開放性、可組合性。那么這種開放調用從底層上是如何實現的呢?Move語言又將提供哪些便利?

對于模塊化和合約組合性方面,Solidity上面的Contract合約通過library進行消息的傳遞,從而實現Contract合約之間的調用、交互。而Move語言使用了模塊(module)和腳本(script)的設計,前者類似于Contract合約,Move語言的合約組合性則是模塊之間的組合,通過傳遞資源。關于組合性方面,Solidity和Move的區別非常明顯。

以部署Token合約為例,Solidity的Token作為一種服務存在,可以查詢余額,而Move的Token則是一種資源,也就是上文提到的“永遠不能被復制或隱式丟棄,只能在程序存儲位置之間移動”。而這兩者之間的區別,可以這樣比喻:基于Solidiy的合約之間調用是通過消息服務,如各類接口的調用,Solidity上面的合約交互就好比是兩個原始部落之間的貿易交流,為了方便兩個部落之間的往來,需要統一生產工具和制作方法等標準信息——即兩合約之間的狀態同步,實現交互。

A部落發明了石斧頭,于是將這個石斧頭的用材標準、制作方法等信息告知B部落,由B部落自行生產。注意這里為了安全,合約要保持隔離狀態,只能傳遞消息服務,但消息服務顯然是可以復制或被丟棄。

如果一個合約出現升級,如以太坊NFT接口標準ERC721、ERC721A和ERC4907等系列優化升級,就好比A部落發明了鐵器,因此需要通過消息服務告知對方部落更新生產配置。一個合約的升級,需要調用過該合約的其他合約進行狀態同步,跟隨升級。這個工作流程無疑會增加復雜性,以太坊合約的升級迭代也是同樣復雜的,且會帶來EVM的字節代碼膨脹。

Move的世界,合約交互則更具備靈活組合性。還是上面的喻例,作為Move的模塊(module)之間交互是通過傳遞資源來實現的,這種優化相當于科技升級,A部落并不是告知B部落生產工具的配置信息,而是根據需求,將生產工具封裝在一輛型號合適的標準運輸車中,對方不必需升級生產配置,而是每次只需要接收車輛開走就行。

換句話說,Move的模塊之間交互傳遞的不是消息,而是干脆傳遞了運輸車輛。無疑這種模式更具有靈活組合性,接收方收到車輛可以存儲,也可以轉移給其他方,甚至可以將車輛貨物卸下來后分裝在不同的車輛里。也就是說,一個Move模塊的升級,其他使用過該模塊的合約自動會升級到最新狀態。

2.3.對Web3安全性的改進

Move語言帶來的安全改進是多方面的。

Move語言的資源有四個屬性:可復制、可索引、可丟棄、可存儲,通過這四個屬性的不同組合,用戶可以方便的定義出任何類型的資源。Solidity的資產是由代幣合約賦予用戶賬戶的數值余額,相比較,Move無疑增加了資產的安全性。

Solidity的資產是由相應的Token合約賦予用戶的數值。而Move規定資源會存儲在由所有者的帳戶控制的模塊里,資源的所有者具有最高決定權,只有所有者能夠決定資源的存儲和轉移。操作權限分離,使得不同場景可以定義不同的權限,這也是安全的一面。

Move資源的設計讓數字資產轉移不是賬戶間余額數值的簡單加減,而是存儲位置間的移動,避免重入和雙花攻擊。重入指的是黑客抓住代碼漏洞,制造惡意合約,在用戶轉賬的同時再次調用轉賬函數,在不改變賬戶余額的情況下不斷提走資金。對于Solidity語言Token合約的賦值方案,重入攻擊和雙花的風險都很大。

另外,Move的模塊工作模式也大大降低了系統風險——如前文所述,Solidity合約升級需要其他合約作出相應的升級,否則將帶來安全隱患,而Move的合約升級非常簡單,只需相應合約自身升級,并不需要其他合約作出更新,這在一定程度上規避了合約升級不及時帶來的安全風險。

2.4.Move的并行處理帶來更高的擴展性

在交易執行方面,Move的并行處理相交Solidity帶來區塊鏈擴展性的極大提升。并行執行通過識別獨立交易并同時執行,這極大提升了區塊鏈的擴展性。Solidity并不支持并行處理,如以太坊上的交易按順序執行,其他交易置于暫停狀態——因此產生了mempool和MEV市場。對于兩個不關聯的交易,如果能夠并行處理,則高效且可擴展。

如基于Move的公鏈Aptos,利用Block-STM引擎實現并行處理,帶來性能的明顯提升。其工作理念類似以太坊二層網絡的OptimisticRollup,交易在區塊內是預先排序的,先假設交易之間是沒有依賴關系,樂觀底執行并行交易。

執行后驗證所有交易結果,如果發現一個交易訪問了由先前交易修改的內存位置,則該交易無效——因為很明顯兩個交易是相關的。刷新交易的結果,然后重新執行交易。重復該過程,直到區塊中的所有交易都被執行。Block-STM的特點是支持比較復雜的事物,適合多種應用負載工況。

如下圖,將Block-STM與區塊按交易順序執行進行了比較。每個區塊包含一萬筆交易,賬戶數量決定了區塊處理的交易的競爭復雜程度。在低競爭和高競爭情況下,Block-STM比順序執行的方案實現了8-16倍的加速。當交易任務是順序的情況下,Block-STM的消耗也更小。由此可見,Move帶來的并發性能是非常突出的。

由此可見,在L2之前,主鏈的并行處理能力亦是公鏈擴容積極考慮的方案。這為Move生態帶來更多的可能性。

風險提示

區塊鏈商業模式落地不及預期:區塊鏈、密碼學等相關技術和項目處于發展初期,存在商業模式落地不及預期的風險。

監管政策的不確定性:區塊鏈項目實際運行過程中涉及到多項金融、網絡及其他監管政策,目前各國監管政策還處于研究和探索階段,并沒有一個成熟的監管模式,所以行業面臨監管政策不確定性的風險。

Tags:MOVEMOVSOLSOLIDLimoversemovr幣有前景嗎solana幣下半年Solidblock

幣安幣
Arthur Hayes 博文:世界正在分裂為西方與歐亞大陸_ART:比特幣總市值

作者:ArthurHayes編譯:GaryMa吳說區塊鏈注:SBF回應這篇文章,表示:“我顯然強烈反對這里的許多與FTX相關的特定表達,但是我在很大程度上同意你更高層次的觀點.

1900/1/1 0:00:00
推出離岸人民幣穩定幣 TCNH,TrueUSD 和波場 TRON 的“快手式突圍”_USD:tcnh幣總量

撰文:Nancy,PANews美元穩定幣一統穩定幣天下的局面正在出現一些新的動向。近期,波場TRON創始人、火必Huobi全球顧問委員會成員孫宇晨打出了一張流量空白區的牌.

1900/1/1 0:00:00
以太坊上海升級會帶來什么機會?_LAYER:ETH

作者:FalaBlock在12月8日舉行的以太坊核心開發者會議151中,以太坊核心開發團隊宣布,2023年3月將是以太坊網絡上海硬分叉的最后期限.

1900/1/1 0:00:00
一文梳理 2023 最值得關注的空投項目_PAR:SNFT價格

原文來源:Biteye 我們梳理了2023年值得關注的空投項目,并且按照不同賽道進行了梳理。? 公鏈&L2 1.Arbitrum 尚未發放代幣的L2之一,也是目前L2中TVL最高的鏈.

1900/1/1 0:00:00
Web3 社交服務 Nametag 完成 200 萬美元種子輪融資,GSRV 和 OKX Ventures 共同領投_WEB3:ERA

Web3社交服務Nametag近期宣布完成由GSRV和OKXVentures共同領投的200萬美元種子輪融資.

1900/1/1 0:00:00
MetaDock:一款 Web3 工具百寶箱_ETA:METAD

作者:MetaDock 穿梭在Web3世界,面對多鏈織就的龐雜數字網絡,我們需要借助工具獲得更高效的信息獲取及分析能力.

1900/1/1 0:00:00
ads