本文简要探讨了Permit功能的双重性质:它在降低高gas费的情况下满足用户需求的同时,也为钓鱼攻击提供了可能。文章将分析Permit2签名钓鱼攻击的发生方式,揭示攻击者如何通过伪造签名获利,并介绍了识别Permit签名的方法和技巧,帮助用户规避潜在风险。
<!--StartFragment-->
假设我想向朋友李雷借500元。按照传统方式,李雷会打电话给银行,授权我提取500元。银行记录后,我才能去银行取钱。这个过程类似于在以太坊上使用Approve进行授权,只有资产拥有者才能直接授权资金的使用。
而使用 Permit 授权就不同了。李雷不需要打电话,而是直接写了一张支票给我。我拿着这张签名的支票去银行,银行确认支票的有效性后,立即让我取钱。这就是Permit的优势,它允许授权通过签名完成,无需资产拥有者主动操作。
在 Ethereum 主网上 gas 价格高涨时,用户往往面临高昂的交易成本。传统的授权流程(Approve)需要两次上链交易,尤其是在执行代币 Swap 时,对小额交易用户而言,交易费用成了一大负担。ERC-2612 引入的 Permit 则通过离线签名简化了这一过程,用户无需在授权时上链,只需在实际转移代币时一起提供签名即可,节省了一次上链交易的 gas 费用。这对于高 gas 价格环境下的用户来说,Permit 是一种高效且节省成本的解决方案。
据 @ScamSniffer 的统计数据: 2023 年钓鱼受害者损失金额为2.95亿美元。 在 2024 的上半年,这一金额就已经超过3.14亿美元之多。 在 2024 的 Q3 尾声,更是来了一票大的:疑似神鱼的钱包地址遭遇 Permit 钓鱼攻击,损失 1.2 万枚 $spWETH,价值2个亿人民币。
与传统的 Approve 方法不同,Permit 依赖于离线签名,这种简化的授权流程容易降低用户的警惕性。由于不需要立即上链,黑客可以通过钓鱼攻击诱导用户签署恶意交易。更糟糕的是,一旦用户签署了恶意 Permit,黑客可以选择任意时机执行交易,用户难以进行补救。这种离线签名的特性让黑客操作更加隐蔽,从而使钓鱼攻击变得更加频繁和致命。
下面我以Uniswap permit2为例,介绍Uniswap permit2签名钓鱼攻击是如何发生的?我们普通用户又该如何识别它们?
Uniswap permit2 允许跨不同应用共享和管理token授权。 用户只需在一次交易中完成授权和交易,减少交易的gas费用,简化交易操作流程。但是,Permit 2 则将用户的操作变为了链下签名,对于用户来说,链下签名是最容易放下防备的环节,而绝大多数人并不会仔细检查签名的内容也并不理解签名的内容。
一个Permit2钓鱼交易链接
<https://etherscan.io/tx/0x1d8fa25f8f16d52cd4c5716e0cefd9b1cdbbbc060901cea223bab9de79b17ea3>
如果我们能够理解、识别并仔细检查签名的具体内容,就可以有效避免permit2钓鱼骗局。
签名格式通常包含 Owner、Spender、value、nonce 和 deadline 这几个关键字段,分别是指:
- Owner: 代表 token 持有者的地址,用于指定希望通过签名授权的地址。
- Spender: 代表被授权使用 token 的地址,用于指定希望授权给的地址。
- value: 代表希望授权的 token 数量,可以指定特定数量的 token 授权给 Spender。
- nonce: 代表 token 持有者的交易计数器,用于确保每个授权交易都具有唯一的标识符。
- deadline: 代表签名的有效截止日期,用于限制签名的有效期。在过期之后,签名将变得无效。
我们建议用户可以根据自己的需求设置特定的value和deadline,而不是选择默认的最大值。
用户在调用Uniswap permit2合约之前,可以模拟相关授权函数,了解授权细节。点击Simulate按钮。
选择approve函数,填写以下参数,模拟用户向permit2合约授权。
此外,我们也可以善用工具,保护资产安全。
- ScamSniffer: 通过浏览器插件,提前识别钓鱼网址,避免误入陷阱。
- Revoke: 使用 Revoke.cash 定期检查钱包中的代币授权记录,及时撤销可疑授权,防止潜在风险。
- 资产隔离与多签: 分散资产,使用冷钱包存储大额资金,日常操作用热钱包,降低整体风险。
针对频发的 Permit 签名钓鱼攻击,Cactus Custody 提供多项安全措施,全面保护机构用户:
- 预解析 Permit 离线签名,签名前精准了解交易详情
- 多层审核,确保交易合法性
- 资金授权白名单,避免与可疑地址交互
<!--EndFragment-->
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!