NBS:「不授权」到底安全吗:Move背后的设计思想

最近关于用户和 Move 智能合约交互,不需要授权 (Approve) 是更安全还是更不安全的争论很多,这里尝试用通俗的方式来解释一下二者背后的区别以及 Move 这样设计背后的思想。  

我们先理解一下用户和智能合约交互的方式。当我们签了一个交易,去调用一个链上的智能合约,就好比从物理世界进入了一个智能合约的数字世界,我们在这个数字世界有一个分身,而这个分身做什么,是智能合约定义的。  

在 EVM 中,每个合约都相当于一个独立的小世界,分身进入这个世界后,只能操作用户在当前合约世界中的状态(资产)。  

比如进入 swap 世界,想用自己的 usdt 交换其他资产,而 usdt 存在定义 usdt 的那个合约世界,没办法直接在 swap 中以自己的身份从 usdt 合约里提取资产。于是用户只能先去 usdt 的合约世界执行 approve,告诉 usdt 的合约,swap 可以代自己提取自己的资产,然后再进入 swap 世界进行操作。  

Cosmos生态流动性质押协议Stride将转向ATOM驱动的安全模型:7月19日消息,基于Cosmos的流动性质押协议Stride计划从现有的STRD代币模型过渡到Cosmos的链间安全(ICS)系统,该系统由ATOM代币驱动。Stride的贡献者Ian Unsworth表示:“过渡可能发生在周三17:00至21:30(UTC时间)之间,区块高度为4616678。”Unsworth补充道:“虽然Stride TVL达3500多万美元,但通过绑定网络代币,它只有1900万美元的经济安全。在ICS过渡之后,区块产出/安全性将传递给ATOM验证器集,这将使网络的经济安全性增加大约11,935.2%。”

根据官方博客,向ICS的过渡将使Stride的经济安全从大约2500万美元提高到23亿美元,使该协议更能抵御黑客攻击。[2023/7/19 11:04:31]

操作完成之后,再去 usdt 那边取消授权(revoke)。但这里的 approve 和 revoke 操作都需要独立的交易,用户往往为了节省 gas 费用,不进行 revoke,结果如果 swap 合约出安全问题,用户的资产就可能在不知情的情况下被盗取。  

三星正在探索一种适用于Galaxy手机的离线数字货币:金色财经报道,三星周一表示,已与韩国央行签署谅解备忘录,对数字货币进行技术研究。这种 CBDC 指的是央行发行的数字货币,可以离线工作,并且可以在其Galaxy智能手机和智能手表的用户之间发送,这要归功于设备中的安全芯片。还可以通过使用近场通信技术在设备之间进行支付,该技术内置于智能手机中以实现非接触式支付。

三星补充道,去年开发了一种将 NFC 技术应用于 CBDC 的解决方案,这使用户即使在没有互联网连接的情况下也可以进行支付。[2023/5/16 15:06:34]

而在 Move 中,所有的合约都在一个大的数字世界运行。用户的数字分身可以自由的在合约间移动,执行任何操作,同时用户的状态(资产)存在用户自己的存储空间。  

加密交易所比特币期货4月交易量达6307.8亿美元:金色财经报道,数据显示,加密货币交易所的比特币期货交易量(以美元计算)已连续第5个月上涨,截止目前,4月已累计交易量达6307.8亿美元,3月份期货交易量累计达1.31万亿美元。

值得注意的是,加密货币交易所的比特币期货交易量在2021年5月创出新高,达到2.69万亿美元,随后便不断下跌,即使BTC在6个月后创出历史高位,达69000美元时,交易所的比特币期货交易量最也并未创出新高,只有1.59万亿美元。[2023/4/23 14:22:17]

用户从 swap 入口进入,从自己的余额提取 usdt,交换,存储可以在同一个交易里原子化完成。这种模式给合约带来更自由的组合模式,可以玩出很多 EVM 上很难实现的组合玩法,这也是 EVM 上的账户抽象方案想实现的模式。当然,这也带来了新的安全挑战。  

Pocket Network:已支持加密通用基本收入项目GoodDollar:9月1日消息,据Web3基础设施项目Pocket Network官方社交媒体,Pocket Network已完成加密通用基本收入项目GoodDollar集成,GoodDollar 是一个在全球范围内解决不平等问题的加密项目,其通用基本收入(UBI)已吸引了超过50万人加入,目前已经完成Pocket Network协议整合,Pocket Network的中间件提供远程过程调用(RPC)端点可以确保GoodDollar的UBI平台可以处理大量数据中继,确保服务不会终端,据悉Pocket Network每天将为GoodDollar提供近2000万个数据中继服务。[2022/9/1 13:02:19]

那 EVM 中能否直接增加一个特性,让合约间的调用可以把用户身份直接带过去?这个技术上是可以实现的,但 EVM 中支持动态调用,可以调用任意地址的合约,让这种操作的风险变的很难度量,同时 EVM 的状态变更对用户和钱包都不友好,钱包很难通过状态变化对用户进行提示。  

而 Move 中解决这个安全挑战有两个方法: 

1. 在预执行合约的时候把合约执行后的状态变更提示给用户,让用户可以知道这个交易操作了自己的哪些重要资产,以及执行后的结果。这个方法 StarMask 中已经实现,参看链接以及附图 https://starcoin.medium.com/starmask-v4-6-

2. 可能有部分合约可以通过设置条件,让一部分用户预执行的时候无法发现状态变更。@0xmetazen 的分析 https://twitter.com/0xmetazen/status/1582581013972414465 ,但 Move 中没有动态调用,合约在部署时,它的执行逻辑就是确定的。可以通过静态分析字节码,得到合约所有可能路径上操作的状态,在区块浏览器或钱包里提示给用户。  

EVM 和 Move 的两种方案,带来的安全风险是不一样的。Approve 方案的安全风险是把一个即时的授权变为长期授权,它的风险不是立刻发生的,比如合约漏洞未被发现或者恶意合约放长线钓大鱼。而一旦发生,用户往往很被动,很多用户可能都忘记授权过哪些合约了。 

而 Move 的方案给了合约更大的自由权,遇到恶意合约会有较大风险,但这种风险是即刻发生的,是可以通过技术手段来检测的。最坏的情况,至少前面冲的快到人趟坑了,可以给后面的人警示,恶意合约会快速暴露出来。

最后,世上没有银弹,不可能靠用了某种技术就解决了所有安全问题,需要链,工具,用户一起努力。 

对 Move 用户的安全建议: 

1. 选用状态变更提示更完备的钱包,并尝试理解钱包的提示。 

2. 不要随意和来源未知或未开源的 DApp 交互。 

3. 如果做不到上面两点,可以等别人先趟一下坑。

Move 在安全方面的挑战以及改进方案不仅仅是这些,我会在《为什么是 Move》系列的安全篇里详述,想了解的朋友可以关注一下。  

区块律动BlockBeats

媒体专栏

阅读更多

金色早8点

金色财经

1435Crypto

吴说区块链

blockin

比推 Bitpush News

Block unicorn

Foresight News

Odaily星球日报

Bankless

DeFi之道

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

地球链

TRXWEB:Web3 可信中立

文章作者:Luca Prosperi文章编译:Block unicorn传统上讲,罗马皇帝提图斯·弗拉维乌斯·韦斯帕西亚努斯,当被他的儿子问到关于罗马令人恶心的一大笔税收收入时.

[0:0ms0-1:1ms