作者:@jolestar
来源:《「不授权」到底安全吗:Move背后的设计思想》
最近关于用户和Move智能合约交互,不需要授权(Approve)是更安全还是更不安全的争论很多,这里尝试用通俗的方式来解释一下二者背后的区别以及Move这样设计背后的思想。
我们先理解一下用户和智能合约交互的方式。当我们签了一个交易,去调用一个链上的智能合约,就好比从物理世界进入了一个智能合约的数字世界,我们在这个数字世界有一个分身,而这个分身做什么,是智能合约定义的。
在EVM中,每个合约都相当于一个独立的小世界,分身进入这个世界后,只能操作用户在当前合约世界中的状态。
72,999,970枚USDT从未知钱包转移到Binance:金色财经报道,据Whale Alert监测显示,北京时间14:52,有72,999,970枚USDT(73,102,169美元)从未知钱包转移到Binance。[2023/7/26 15:59:39]
比如进入swap世界,想用自己的usdt交换其他资产,而usdt存在定义usdt的那个合约世界,没办法直接在swap中以自己的身份从usdt合约里提取资产。于是用户只能先去usdt的合约世界执行approve,告诉usdt的合约,swap可以代自己提取自己的资产,然后再进入swap世界进行操作。
Memeland发布Captainz NFT更新并推出Bug赏金计划:金色财经报道,NFT项目Memeland在社交媒体宣布对Captainz NFT进行更新,用户取消NFT质押后Captainz NFT外观将会被重置为原始“婴儿”外观,此项变化不会影响NFT特征,而是为了解决图像缓存系统导致视觉效果更新滞后问题,为了解决这个问题并保持交易的完整性,Memeland 正在主动重置未质押 NFT 的视觉效果,避免用户错误购买,该过程将在系统内自动执行,并敦促用户在进行任何交易之前在官方网站上检查确认。此外,Memeland还推出了Bug赏金计划,鼓励用户报告任何故障或差异。[2023/7/5 22:19:39]
操作完成之后,再去usdt那边取消授权。但这里的approve和revoke操作都需要独立的交易,用户往往为了节省gas费用,不进行revoke,结果如果swap合约出安全问题,用户的资产就可能在不知情的情况下被盗取。
Binance将推出ARB U本位永续合约,最高杠杆倍数50倍:3月22日消息,Binance 公告称,Binance 合约将在 Arbiturm(ARB)现货交易在 Binance 上开启约 15 分钟后推出最高 50 倍杠杆的 U 本位 ARB 永续合约。ARB 现货交易拟于北京时间 3 月 24 日 01:00 开启。[2023/3/22 13:19:45]
而在Move中,所有的合约都在一个大的数字世界运行。用户的数字分身可以自由的在合约间移动,执行任何操作,同时用户的状态存在用户自己的存储空间。
用户从swap入口进入,从自己的余额提取usdt,交换,存储可以在同一个交易里原子化完成。这种模式给合约带来更自由的组合模式,可以玩出很多EVM上很难实现的组合玩法,这也是EVM上的账户抽象方案想实现的模式。当然,这也带来了新的安全挑战。
Moonbeam推出兼容Solidity智能合约的Foundry文档:金色财经消息,Moonbeam宣布,现已支持Foundry的文档,这是一种以太坊开发环境,可帮助开发人员从命令行编译项目、部署合同并与区块链交互。Foundry是用Rust代码编写的,可直接与Moonbeam的EthereumAPI交互,并用于将Solidity智能合约部署到Moonbeam。[2022/8/23 12:42:13]
那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》系列的安全篇里详述,想了解的朋友可以关注一下。
还记得当初刚进加密行业那会,公链这个词是个很高大上的东西。因为人们一提公链,往往首先想到的ETH这种“通用智能合约型”,或者说平台型公链,而非类似BTC,LTC这种“一币一公链”的公链,这些,我.
1900/1/1 0:00:00元宇宙被视为下一个十年「最具张力的风口」,海内外叫得上名的互联网巨头则是最强劲的追风者,雄心勃勃的Facebook在2021年直接更名为Meta,百度在年底造出了希壤.
1900/1/1 0:00:00金色财经推出《金色Web3.0日报》,为用户提供每日DeFi、NFT等行业新闻。DeFi数据1、DeFi代币总市值:414.5亿美元 DeFi总市值及前十代币数据来源:coingecko2、过去.
1900/1/1 0:00:00头条▌狗狗币市值重返150亿美元上方金色财经报道,据Coingecko最新数据显示,狗狗币市值已反弹至150亿美元上方,本文撰写时达到15,735,458,539美元.
1900/1/1 0:00:00加密货币在2021年实现了巨大的飞跃,而到了今年,由Terra事件引发的大崩盘延续至今,也许大家对这个领域一直反反复复的"夏去冬来"并不感到陌生了.
1900/1/1 0:00:00原文作者:Joseph|原文翻译:Diamond本文来自TheSeeDAO。 今年早些时候,Vitalik通过他的“Soulbound”文章开创了NFT的新时代.
1900/1/1 0:00:00