Web3.0底层语言:Move弥补了Solidity哪些不足?

Sui Testnet Wave 2 回顾:刷新记录,高效改进

今日,Sui Network发文总结Sui Testnet Wave 2,期间,共有7000余个节点连接到41个验证者,处理3650万笔交易,比Wave 1增长1.6倍;共有324万枚NFT,134万枚SUI被质押,已处理735万个质押操作。Testnet W…

摘要

为什么基于Solidity语言的以太坊生态如此庞大,市场依然对新公链有着新期待?Move出自大厂(Meta),被行业普遍看好,前期一些基于Move语言开发的公链得到了市场的青睐和资本的追捧。面向Web3更为丰富的应用,底层语言的进化是基础,Move有哪些优势,弥补了Solidity哪些不足?基于这些特点,Move生态有可能诞生新模式和新应用。

针对已有的编程语言如Solidity,Move语言在很多细节设计考虑的比较周到,如将库与应用逻辑分离开来;但最为突出的特点是资源类型方面,即面向资源的编程。在Dapp应用支持方面,吸收了比特币script和以太坊的smart contract的优点,因此行业普遍对该编程语言比较看好。而针对Solidity被外界诟病的安全问题,move也在尝试解决。

Move是面向资源(resources)的编程语言,资源在Move的世界里是“第一等公民”(first-class resource),其关键特性是自定义资源类型:resources永远不能被复制或隐式丢弃,只能在程序存储位置之间移动。Solidity并不是面向资源的,用户的账户拥有某个Token资产,只是该Token合约分配给用户的一个数值。而Move创建的Token账户资产是独一无二的资源类型,比如账户A中的资产是保存在A账户中的,虽然也是数值,但不能复制、丢弃或重用,可以被安全地存储和转移。同时,账户资产只能由定义该资源的模块进行创建和销毁,这使得同质化的数值类型的资产可能产生的重入、类似双花或者账户余额出现不平衡的状况得以避免。在这一点上,Move账户资产有些类似比特币的UTXO机制,Token不再是简单的同质化数值,而是可区分的。

为了可以实现更灵活的业务,Move另外定义了4种权限属性:可复制(copy)、可丢弃(drop)、可存储(store)、可检索(key)。这4种属性可以任意组合,来定义资源的属性,方便用户灵活操作。如drop+store+key的组合,定义的资源是不可以复制的,可以避免复制引发的代币增发以及双花的问题,这一点类似NFT以及比特币的UTXO机制。

对于模块化和合约组合性方面,Moe使用了模块和脚本设计,通过传递资源实现合约交互。Solidity(如以太坊)上面的Contract合约通过library(相当于静态库)进行消息的传递,从而实现Contract合约之间的调用、交互。而Move语言使用了模块(module)和脚本(script)的设计,前者类似于Contract合约,Move语言的合约组合性则是模块之间的组合,通过传递资源(即前文提到的resources)。关于组合性方面,Solidity和Move的区别非常明显。

在交易执行方面,Move的并行处理相交Solidity带来区块链性能的极大提升。并行执行(PE)通过识别独立交易并同时执行,这极大提升了区块链的扩展性。Solidity并不支持并行处理,如以太坊上的交易按顺序执行,其他交易置于暂停(排序)状态——因此产生了mempool(内存池)和MEV市场。如基于Move的公链Aptos,利用Block-STM(Software Transactional Memory)引擎实现并行处理,带来性能的明显提升。

风险提示:区块链商业模式落地不及预期;监管政策的不确定性。

注:封面图片基于“万兴AI绘画”的AIGC功能生成

Web3.0底层语言:Move弥补了Solidity哪些不足?

1. 核心观点

Move出自大厂(Meta),被行业普遍看好,期间一些基于Move语言开发的公链得到了市场的青睐和资本的追捧。为什么基于Solidity语言的以太坊生态如此庞大,市场依然对新公链有着新期待?Move所拥有的优势,弥补了Solidity哪些不足?基于这些特点,Move生态有可能诞生新模式和新应用。

本文对比Solidity和EVM存在的不足,分析了Move的优势与特点。

2.为什么发明Move:弥补Solidity(以太坊)的哪些问题?

Move是Meta(原Facebook)公司为其Diem项目(最初是全球稳定币项目Libra)开发的一种安全可靠的智能合约语言,Aptos、Sui等新公链使用的正是move编程语言,这些公链正是看中了Move的优势及其并行处理特性,可拓展单片链的局限。Move是基于Rust的编程语言,但是Move专门针对智能合约进行开发优化,主要用于操作资源,因此入门门槛是低于rust的。因为主要针对智能合约,因此砍掉了许多Rust多余的操作,更加简洁。为了弥补Solidity和EVM出现的一些不足,Move做了一些优化,使得基于Move的Dapp应用有着更多灵活玩法。

针对已有的编程语言如Solidity,Move语言在很多细节设计考虑的比较周到,如将库与应用逻辑分离开来;但最为突出的特点是资源类型方面,即面向资源的编程。在Dapp应用支持方面,吸收了比特币script和以太坊的smart contract的优点,因此行业普遍对该编程语言比较看好。而针对Solidity被外界诟病的安全问题,move也在尝试解决。

Web3.0底层语言:Move弥补了Solidity哪些不足?

2.1.一等资源与数字资产(first-class resource)


与其出现的背景相匹配,Move是面向资源(resources)的编程语言,资源在Move的世界里是“第一等公民”(first-class resource),其关键特性是自定义资源类型:resources永远不能被复制或隐式丢弃,只能在程序存储位置之间移动。它可以像传统的类型一样,可以存储在数据结构中,也可以作为参数传递。简单的说,他就是传统编程语言中一个不可随意销毁的新数据类型。对比Solidity定义的资产,如以太坊上的某种Token账户,资产只是一个数值,两个账户之间发生转账后,账户资产数值相应的发生变化,不同账户资产的区别就是数值余额,并无本质区别(也就是说资产是同质的)。同时需要注意,例如以太坊上ERC20代币TokenA,其是一个独立的合约账户,这个合约为用户(账户地址)分配一个数值,代表用户拥有的Token A的数量。从这一点可以看出,Solidity并不是面向资源的,用户的账户拥有某个Token资产,只是该Token合约分配给用户的一个数值。

而Move创建的Token账户资产是独一无二的资源类型,比如账户A中的资产是保存在A账户中的,虽然也是数值,但不能复制、丢弃或重用,可以被安全地存储和转移,用并不完全准确的比喻,可以认为A账户中的资产与其他账户资产在某种意义上是不完全同质的。同时,账户资产只能由定义该资源的模块进行创建和销毁,这使得同质化的数值类型的资产可能产生的重入、类似双花或者账户余额出现不平衡的状况得以避免。在这一点上,Move账户资产有些类似比特币的UTXO机制,Token不再是简单的同质化数值,而是可区分的。为了可以实现更灵活的业务,Move另外定义了4种权限属性:可复制(copy)、可丢弃(drop)、可存储(store)、可检索(key)。这4种属性可以任意组合,来定义资源的属性,方便用户灵活操作。如drop+store+key的组合,定义的资源是不可以复制的,可以避免复制引发的代币增发以及双花的问题,这一点类似NFT以及比特币的UTXO机制。

可以这样理解,以太坊(Solidity)的资产是由相应的合约控制,如果把Token A合约比喻为保险箱,保险箱会给所有用户分配一个数值余额,来表达用户所有拥有的Token A资产数量,但资产本身还是放在Token A合约的保险箱内。而Move用户账户本身就是一个单独的大保险箱,由用户自己控制,所有的Token资产都放在这个保险箱内。且这些Token并不是以数字的形式存在,而是不可复制的、权限受用户控制的资源(类型)。

Move语言中的资源定义与权限是分离的,资源的权限属于用户。Solidity中账户资源权限归属于合约,比如以太坊上某个erc20 Token属于相应的合约,如用户在DEX如Uniswap合约进行Token A(权限属于Token A的合约)兑换为Tokend B(权限属于Token B的合约)交易时,无法在Uniswap合约里直接提取自己的A资产换为B资产——因为Uniswap里资产的权限属于其合约。实际的流程至少三步交易操作:i)首先对Uniswap合约进行授权(approve),授权Uniswap合约代用户提取A合约的资产;ii)进入Uniswap合约进行兑换,提取A后将B存入账户;iii)取消授权(revoke)。但用户一般不会在完成兑换后立刻取消授权(为后续可能还会进行兑换行为节省gas费用),一旦Uniswap合约受到攻击或者出现漏洞,就为用的A Token账户带来风险。需要注意的是,授权/取消授权都需要在以太坊上执行合约操作,从而产生gas费。从这里我们可以清晰看到,Token A、Token B、Uniswap里的LP资产权限分属于各自的合约,用户无法通过一个账户在三个合约之间自由切换。而Move的资产大账户则不需要跨合约授权,权限是属于用户的,用户直接在DEX里提取A、兑换为B存储到账户里,这个过程可以在一个交易操作里完成,无需授权/取消授权操作,一定程度上提高了安全性。

Web3.0底层语言:Move弥补了Solidity哪些不足?

2.2.Move语言的模块化和灵活组合性

此前我们的深度报告《Web3.0时代:开放、隐私、共建》中提出了Web3.0与Web2.0很大的区别在于开放性、可组合性。那么这种开放调用从底层上是如何实现的呢?Move语言又将提供哪些便利?

对于模块化和合约组合性方面,Solidity(如以太坊)上面的Contract合约通过library(相当于静态库)进行消息的传递,从而实现Contract合约之间的调用、交互。而Move语言使用了模块(module)和脚本(script)的设计,前者类似于Contract合约,Move语言的合约组合性则是模块之间的组合,通过传递资源(即前文提到的resources)。关于组合性方面,Solidity和Move的区别非常明显。

以部署Token合约为例,Solidity的Token作为一种服务存在,可以查询余额,而Move的Token则是一种资源,也就是上文提到的“永远不能被复制或隐式丢弃,只能在程序存储位置之间移动”。而这两者之间的区别,可以这样比喻:基于Solidiy的合约之间调用是通过消息服务,如各类接口的调用,Solidity上面的合约交互就好比是两个原始部落之间的贸易交流,为了方便两个部落之间的往来,需要统一生产工具和制作方法等标准信息——即两合约之间的状态同步,实现交互。A部落发明了石斧头,于是将这个石斧头的用材标准、制作方法等信息告知B部落,由B部落自行生产(这就好比Token A和Token B分别由各自的合约控制)。注意这里为了安全,合约要保持隔离状态,只能传递消息服务,但消息服务显然是可以复制或被丢弃(将石刻信息擦除)。如果一个合约出现升级,如以太坊NFT接口标准ERC 721、ERC 721A和ERC4907等系列优化升级,就好比A部落发明了铁器,因此需要通过消息服务告知对方部落更新生产配置。一个合约的升级,需要调用过该合约的其他合约进行状态同步,跟随升级。这个工作流程无疑会增加复杂性,以太坊合约的升级迭代也是同样复杂的,且会带来EVM的字节代码膨胀。

Move的世界,合约交互则更具备灵活组合性。还是上面的喻例,作为Move的模块(module)之间交互(即部落之间的交易)是通过传递资源来实现的,这种优化相当于科技升级,A部落并不是告知B部落生产工具的配置信息,而是根据需求,将生产工具(无论是石斧头还是升级后的铁器工具)封装在一辆型号合适的标准运输车中,对方不必需升级生产配置,而是每次只需要接收车辆开走就行。换句话说,Move的模块之间交互传递的不是消息,而是干脆传递了运输车辆(这是一种资源,永远不能被复制或隐式丢弃,只能在程序存储位置之间移动的资源)。无疑这种模式更具有灵活组合性,接收方收到车辆可以存储,也可以转移给其他方(其他合约),甚至可以将车辆货物卸下来后分装在不同的车辆里。也就是说,一个Move模块的升级,其他使用过该模块的合约自动会升级到最新状态。

2.3.对Web3安全性的改进

Move语言带来的安全改进是多方面的。

Move语言的资源有四个属性:可复制、可索引、可丢弃、可存储,通过这四个属性的不同组合,用户可以方便的定义出任何类型的资源。Solidity的资产是由代币合约赋予用户账户的数值余额,相比较,Move无疑增加了资产的安全性。

Solidity的资产是由相应的Token合约赋予用户的数值。而Move规定资源会存储在由所有者的帐户控制的模块里,资源的所有者具有最高决定权,只有所有者能够决定资源(Resource)的存储和转移。操作权限分离,使得不同场景可以定义不同的权限,这也是安全的一面。

Move资源的设计让数字资产转移不是账户间余额数值的简单加减,而是存储位置间的移动(不可复制、不可丢弃),避免重入和双花攻击。重入指的是黑客抓住代码漏洞,制造恶意合约,在用户转账的同时再次调用转账函数(重入),在不改变账户余额的情况下不断提走资金。对于Solidity语言Token合约的赋值方案,重入攻击和双花的风险都很大。

另外,Move的模块工作模式也大大降低了系统风险——如前文所述,Solidity合约升级需要其他合约作出相应的升级,否则将带来安全隐患,而Move的合约升级非常简单,只需相应合约自身升级,并不需要其他合约作出更新,这在一定程度上规避了合约升级不及时带来的安全风险。

Web3.0底层语言:Move弥补了Solidity哪些不足?

2.4.Move的并行处理带来更高的扩展性

在交易执行方面,Move的并行处理相交Solidity带来区块链扩展性的极大提升。并行执行(PE)通过识别独立交易并同时执行,这极大提升了区块链的扩展性。Solidity并不支持并行处理,如以太坊上的交易按顺序执行,其他交易置于暂停(排序)状态——因此产生了mempool(内存池)和MEV市场。对于两个不关联的交易,如果能够并行处理,则高效且可扩展。

如基于Move的公链Aptos,利用Block-STM(Software Transactional Memory)引擎实现并行处理,带来性能的明显提升。其工作理念类似以太坊二层网络的Optimistic Rollup(乐观汇总),交易在区块内是预先排序的,先假设交易之间是没有依赖关系,乐观底执行并行交易。执行后验证所有交易结果,如果发现一个交易访问了由先前交易修改的内存位置,则该交易无效——因为很明显两个交易是相关的。刷新交易的结果,然后重新执行交易。重复该过程,直到区块中的所有交易都被执行。Block-STM的特点是支持比较复杂的事物,适合多种应用负载工况。

如下图,将Block-STM与区块按交易顺序执行进行了比较。每个区块包含一万笔交易,账户数量决定了区块处理的交易的竞争复杂程度。在低竞争和高竞争情况下,Block-STM比顺序执行的方案实现了8-16倍的加速。当交易任务是顺序的情况下,Block-STM的消耗也更小。由此可见,Move带来的并发性能是非常突出的。

Web3.0底层语言:Move弥补了Solidity哪些不足?

由此可见,在L2(二层网络)之前,主链的并行处理能力亦是公链扩容积极考虑的方案。这为Move生态带来更多的可能性。

风险提示

区块链商业模式落地不及预期:区块链、密码学等相关技术和项目处于发展初期,存在商业模式落地不及预期的风险。

监管政策的不确定性:区块链项目实际运行过程中涉及到多项金融、网络及其他监管政策,目前各国监管政策还处于研究和探索阶段,并没有一个成熟的监管模式,所以行业面临监管政策不确定性的风险。

本文节选自国盛证券研究所已于2022年12月1日发布的报告《国盛区块链 | Web3底层语言:Move弥补了Solidity哪些不足?,具体内容请详见相关报告。

宋嘉吉  S0680519010002   [email protected]

任鹤义  S0680519040002   [email protected]

Web3.0底层语言:Move弥补了Solidity哪些不足?

Web3.0底层语言:Move弥补了Solidity哪些不足?

东港股份

嘉楠科技

公链2020H1
漫画区块链
比特币UTXO
比特币挖矿初探
比特币挖矿产业链
比特币与黄金相关性
DCEP专利分析
DCEP双离线支付
DCEP标的
Libra
区块链+电子发票
区块链+溯源
区块链+供应链金融
区块链标准委标的

Web3.0底层语言:Move弥补了Solidity哪些不足?

佟世天
卞阳-富数科技 徐思彦-腾讯 许超逸
Navigator DCL中国区领航员 谷燕西
孔猛-VeryHash 白硕-上交所前总工
余文波-分布式资本
张元杰-Conflux
吕国宁-Nervos
郑义-Qtum
孟岩-CSDN
陈雷-比特蓝鲸
周沙-区块链早期参与者
俞阳-矿海会

历史报告

【国盛区块链系列之元宇宙】

2021.6.28 国盛区块链独家带你——在“元宇宙”中看元宇宙

2021.7.16  国盛区块链:中国版Roblox上线,元宇宙UGC生态迎来新发展

2021.8.2  国盛区块链:元宇宙之二:算力重构,通向Metaverse的阶梯

2021.8.5  国盛区块链:元宇宙是“方块”搭成的?

2021.8.30 国盛区块链:元宇宙(四):GameFi赛道崛起,元宇宙踏上破圈征程

2021.10.12 国盛区块链:元宇宙(五) : NFT商业落地中的思考

2021.12.21 国盛区块链:虚拟人的“灵魂”是什么?

【国盛区块链系列之数字货币】

2019.9.24 国盛区块链:初探中国央行数字货币:目标、定位、机制与影响

2019.10.9 国盛区块链 | 再探央行数字货币:对电子支付产业有何影响?

2019.11.15 国盛区块链:数字货币的双离线支付是什么?

2020.4.8 国盛区块链专题:三探央行数字货币:透过专利看“超级货币”蓝图

2020.4.17 国盛区块链:一图看懂央行数字货币相关标的

2020.6.24 国盛区块链:四探央行数字货币:第三方支付产业新变量

2020.7.9 国盛区块链:五探数字货币:NFC+SIM卡打造DCEP安全支付环境

2020.9.22 国盛区块链:六探央行数字货币:他山之石,枕戈待旦

2021.3.9  国盛区块链:大行发力DCEP,数字人民币渐行渐近

2021.4.20 盛区块链:数字人民币测试加速,应用场景不断丰富

2021.4.19 盛区块链:数字人民币与加密货币分而治之,公测在即

2021.5.7 盛区块链:不可或缺的数字货币

2021.7.18 盛区块链:数字货币再加速,大国竞争新赛道

2021.9.8 盛区块链:数字人民币产业链初现,亮相服贸会

2021.11.9 国盛区块链:币兑换机亮相进博会,数字人民币国际化提速

2022.1.5  国盛区块链: 数字人民币App上线,新电子支付体系显露真容

【国盛区块链系列之DeFi】

2021.1.25 国盛区块链:DEFI生态、以太坊2.0:锁仓推动eth价格持续新高

2021.2.1 国盛区块链:链上费用Top10 DeFi占八席、以太坊扩容和二层网络值得期待

2021.4.22 国盛区块链·深度:DeFi新金融(一):构筑加密世界开放金融新生态

2021.4.24 国盛区块链·深度:DeFi新金融(二):超额抵押与资产映射

2021.5.12 国盛区块链·深度:DeFi新金融(三):DeFi高收益从何而来?

2021.6.16 国盛区块链·深度:DeFi新金融(四):暴跌下的压力测试,DeFi韧性如何?

2021.8.1 国盛区块链·深度:DeFi新金融(五):稳定币的昨天、今天和明天

2021.9.18 国盛区块链:掉进兔子洞——DeFi的诱人承诺与风险

【国盛区块链系列之NFT】

2021.3.15 国盛区块链|频频“出圈”的NFT:链接真实世界的入口

2021.4.11 国盛区块链·深度:NFT:数字资产化桥梁,进化才刚刚开始

2021.8.31 盛区块链: 互联网巨头入局元宇宙,NFT收藏品市场持续升温

2021.9.7  OpenSea——全球最大NFT交易平台的创新与破圈

2021.9.9 国盛区块链:何为NFT?价值何来?

【国盛区块链系列之上市公司】

2019.3.4 国盛区块链:Facebook计划发行加密货币、新加坡政府投资公司参与Coinbase融资

2019.11.24 国盛通信宋嘉吉:嘉楠科技深度:全球矿机第一股,产业延伸看 AI

2020.2.15 国盛区块链&轻工:东港股份深度:龙头转型,区块链业务锋芒渐露

2020.3.3 国盛区块链&轻工: 东港股份002117:北京试点区块链电子发票,公司步入快车道

2020.4.14 国盛区块链&轻工:东港股份002117:主业平稳,区块链业务驶入快车道

2021.1.11 国盛区块链:矿场股和矿机股有何不同?

2021.2.8 国盛区块链:比特币价格高企,中嘉博创布局算力运营产业链

2021.2.23 国盛区块链·深度:全球比特币挖矿股全景解析

2021.3.16 国盛区块链·深度:Coinbase上市:里程碑与新起点

2021.3.22 国盛区块链:香港首家持牌数字资产交易所上线,Coinbase推迟至下月上市

2021.4.2 国盛区块链:聚光灯下的Coinbase

2021.4.17 国盛区块链:嘉楠科技(CAN):比特币看多期权,业绩有望延后爆发

2021.8.11 国盛区块链:Coinbase月活增速亮眼,以太坊交易量首超比特币

【国盛区块链系列之周观点】

2020.12.21 国盛区块链:数字黄金渐行渐近,比特币会成为全球储备资产吗

2020.12.28 国盛区块链:比特币新高下,挖矿行业怎么看?

2021.1.4 国盛区块链:比特币价格上限在哪里?

2021.1.18 国盛区块链:跨链生态引领币市热点,灰度下架XRP信托产品

2021.2.22 国盛区块链:比特币持续新高,概念股惊艳资本市场

2021.2.16 国盛区块链|特斯拉购入比特币,数字黄金再“出圈”

2021.3.1 国盛区块链:以太坊1559提案:矿工、持币人和社区利益的再平衡

2021.3.8 国盛区块链:火币科技虚拟资产基金登陆香港,行业加速合规化

2021.3.22 国盛区块链:香港首家持牌数字资产交易所上线,Coinbase推迟至下月上市

2021.4.5 国盛区块链:VISA将支持加密货币结算,crypto加速渗透传统金融

2021.4.17 国盛区块链:嘉楠科技(CAN):比特币看多期权,业绩有望延后爆发

2021.4.20 国盛区块链:数字人民币测试加速,应用场景不断丰富

2021.4.21 国盛区块链:Chia新模式催化,硬盘存储设备供不应求

2021.4.26 国盛区块链:Chia下周开启交易,挖矿新模式迎来市场首秀

2021.6.1 国盛区块链:加密货币挖矿监管趋严,BSC安全事件频发

2021.6.15 国盛区块链:中国数据安全法出台,隐私计算推动数据要素市场化

2021.6.29 国盛区块链:密货币监管持续收紧,蚂蚁链NFT迎来首秀

2021.8.10 国盛区块链:太坊1559提案正式实施,代币销毁效果显著

2021.8.31 国盛区块链: 互联网巨头入局元宇宙,NFT收藏品市场持续升温

2021.9.7 国盛区块链:OpenSea——全球最大NFT交易平台的创新与破圈

2021.9.21 国盛区块链:Loot异军突起,虚拟经济的新尝试

2021.10.24 国盛区块链: 从比特币期货ETF获批,看全球区块链产业变迁

2021.10.25 国盛区块链:Facebook计划更名,加速构建元宇宙版图

【国盛区块链系列之其他】

2021.5.1 国盛区块链|2021掘金丰水期——融合、出圈与合规

2021.4.29 国盛区块链·深度:迭代与竞争——以太坊的Layer2扩容之路

2021.4.16 国盛区块链:美联储全景解读DeFi的颠覆力量

2021.1.24 国盛区块链:区块链新基建(四):中欧投资协定背景下,隐私计算开启新蓝海

(向下滑动,查看更多)

本文来源于互联网:Web3.0底层语言:Move弥补了Solidity哪些不足?

注册币安获得返佣: https://accounts.binance.com/en/register?ref=MKOOSEO4

okx获得返佣: https://www.cnouyi.care/join/1871789

TypeScript实现十大排序算法(九) – 桶排序

关注公众号

Click to rate this post!
[Total: 0 Average: 0]

人已赞赏
Dapp开发名家说每日优选

2023/3/2 捕鲸日报 · Crypto行情洞察

2023-3-2 18:56:53

名家说每日优选

现实世界资产:16 万亿市场规模的 DeFi 新叙事

2023-3-2 19:04:29

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
有新消息 消息中心
搜索