【行业研究报告】信息技术-区块链行业专题研究:Web3底层语言:Move弥补了Solidity哪些不足?

类型: 行业专题

机构: 国盛证券

发表时间: 2022-12-01 00:00:00

更新时间: 2022-12-01 17:10:52

是“第一等公民”(first-classresource),其关键特性是自定义资
源类型: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)通过识别独立交易并同时执行,这极大提升了区