USDC:50万美元的血泪教训:一个简单的签名如何导致资产被盗?

作者:/img/2022103205524/0.jpg">

加密钱包开发商Demox Labs完成450万美元融资:6月2日消息,加密钱包开发商Demox Labs完成450万美元融资,HackVC领投。资金将用于支持面向隐私的Aleo区块链的各种产品的开发。

据悉,Demox Labs是一家专注于隐私保护的实验室,旨在可编程隐私网络Aleo上构建保护隐私的ZK基础设施,目前已推出Aleo区块链上的隐私保护钱包Leo Wallet。[2023/6/2 11:53:33]

在讲述今天的故事之前,我需要先向大家解释一些术语。USDC 是以太坊上的一个具有多种功能的合约,规定了我们可以如何使用 USDC。

在众多功能当中,我们需要特别关注下面两项功能:

转账(transfer)

代转(transferFrom)

Web3平台Ecosapiens完成350万美元种子轮融资:金色财经报道,Web3平台Ecosapiens完成350万美元种子轮融资,Collab+Currency领投, Celo的首席财务官Alex Witt、Moonbirds的前首席运营官Ryan Carson、Boost VC、Slow Ventures、Menlo Ventures和Alumni Ventures Blockchain Fund等参投。[2023/4/5 13:44:54]

当你需要在钱包之间转移 USDC,或其他 ERC20s 时,就需要用到转账功能。它可以将 Token 从调用者(调用该功能的地址)转移到其他地址。如果有人能以你的名义恶意使用该功能,那么他一定得先掌握了你钱包的全部权限才行。

衍生品交易协议ZKX获得450万美元融资,StarkWare领投:金色财经报道,衍生品交易协议ZKX周四宣布,它已从包括StarkWare、AlamedaResearch和火币在内的投资者那里筹集了450万美元的种子资金。据一份新闻稿称,AmberGroup和Crypto.com也加入了这一轮融资。其他个人投资者包括Polygon的联合创始人Sandeep Nailwal和DragonFly Capital的普通合伙人Ashwin Ramachandran。最新一轮资金将用于进一步开发ZKX的主要产品,包括其开源协议、DAO资金及其生态系统的发展。[2022/7/14 2:13:59]

当你与合约产生互动时,它们会通过代转功能来转移你的 Token,具体金额由你提前预设好的比例决定。因此,如果你允许一项合约转移无限量的 USDC,那么理论上它就可以拿走你所有的 USDC。

Poolz宣布为DeFi游戏项目推出50万美元的资助计划:9月26日消息,Poolz宣布为DeFi游戏项目推出50万美元的资助计划,通过资助计划,Poolz旨在为DeFi游戏项目提供资金帮助,并利用Poolz及其团队的资源引擎,为游戏项目团队提供营销、法律和技术方面的建议和帮助。Poolz 是一个建立在Web 3.0基础设施之上的去中心化跨链IDO平台。[2021/9/27 17:08:43]

现在让我们回到 Joe 的故事当中,转走他全部 USDC 的确实就是 transferFrom 功能。然而,只有当 Joe 批准合约使用他的 USDC 时,transferFrom 才能发挥作用。但事实上,Joe 坚信自己没有批准任何事项。

可是,DeBank 的交易记录清楚地显示,在漏洞发生前 10 分钟,该恶意合约可以无限使用账户中的 USDC。那么问题就在于,如果不是 Joe 本人的话,究竟是谁给了该合约这一项批准呢?我只能说,Joe 确实批准了这一操作,但却是在他不知情的情况下完成的。

Etherscan 上的信息显示,Joe 本人确实没有调用该功能,真正批准了这一额度的是其他地址,这才让恶意合约得以花光 Joe 全部的 USDC。

我们不禁疑问,别人怎么能代替我给予合约许可呢?

许可功能的引入原本是为了改善以太坊的用户体验,它只需一个签名就可以让用户在不提交交易的情况下修改批准金额。也就是说,只要有了你的签名,任何人都可以调用许可功能,并更新你对合约的批准额度。

当你使用 1inch dApp 时,你就可以体验到这一功能。如果你想在上面出售 USDC,那你并不需要事先批准,只需要签上你的名字就够了。有了这个签名,1inch 便获取了你全部 USDC 的使用权限。虽然 1inch 不会无缘无故花光你所有的 USDC,但这却给了恶意合约机会。

Joe 一定是不小心在一个恶意网站上签署了这样的信息。不幸的是,那一次他用的是热钱包,签名只是随手点击一下就完成了。如果他用的是硬件钱包的话,就需要在外部设备上签署信息,那么还会有一个思考的时间。

有了 Joe 的签名,其他地址便可以提交一个带有许可功能的交易,这样恶意合约就获取了 Joe 钱包全部 USDC 的使用权限。然后,只要它调用 transferFrom 功能,就可以转走全部这些资金了。

所以说,一个看似小小的签名却可以引来巨大的灾难。在某些情况下,Metamask 会在你准备签名是对你发出警告,告知你其中的危险性。签署一个信息可能是危险的。但一些技术层面上的批准签名却不会收到预警,但这些一旦滥用往往会造成巨额的损失。

如何避免今后遇到类似的问题?

1. 不要在 Metamask 中签署一切内容;

2. 花点时间了解你所签署的内容;

3. 对传统的批准事项要格外小心。

区块律动BlockBeats

媒体专栏

阅读更多

金色早8点

Bress

链捕手

财经法学

PANews

成都链安

Odaily星球日报

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

金星链

MEXCOIN:汪峰首张Web3全新数字音乐专辑开售

大!事!件!汪峰空降Wom音乐,全球首张原创乐卡新专辑发行在即!Wom音乐携手汪峰,揭幕跨时代的音乐世界! 借贷协议Kokomo Finance对cBTC合约中剩余资金进行Rug Pull.

[0:15ms0-0:955ms