区块链文库报道:
Permit2 签名无需转账即可暴露代币风险
Permit2 签名是一种链下消息,它授予另一个地址从钱包中转移特定代币的权利。在签署的那一刻,没有任何资产离开钱包,且所有者账本中也不会显示任何交易记录。然而,危害往往发生在后续阶段:当该签名的持有者提交签名并从其他账户支付 Gas 费执行操作时,风险便转化为实际损失。这就是为什么签名看似无害,却可能导致代币暴露的原因。最安全的习惯是在签署任何内容之前,仔细阅读请求实际授予的权限。
什么是 Permit2?
Permit2 是一个共享授权合约,许多应用通过它使用户无需为每个新应用单独批准每种代币。根据官方概述,它通过单一合约处理代币权限,采用基于签名的授权机制。其核心优势在于便利性:用户只需一次性批准代币,随后通过签名消息授予有限的权利。
Permit2 签名的工作原理
这里涉及两个层面,混淆这两者是导致大多数错误的根源。
第一层是普通的代币授权。钱包允许 Permit2 合约移动指定的代币,通常有效期较长。仅凭这一层本身并不危险,因为 Permit2 仅在收到指令时才会行动。
第二层由 Permit2 签名控制。一个签名消息(或存储的授权)规定了哪些支出方可以使用第一层的权限、金额是多少以及有效期至何时。持有有效条款的支出方或中继者可以在这些限制内转移代币。
存在两种机制:
- 授权转账(Allowance Transfer):描述带有金额和到期时间的存储授权,这些信息在链上可见。
- 签名转账(Signature Transfer):描述覆盖单次转账的签名许可,直到过期、被消耗或非空值(nonce)失效前一直可用。
为何无需转账即可暴露代币?
签署步骤是一条链下消息。此类结构化签名的标准在 EIP-712 规范中有详细描述。签署此类消息不一定需要创建区块链交易,因此所有者可能在钱包的活动列表中看不到任何痕迹。
随后,攻击者可以提交已签名的授权书,并从单独的账户支付费用。这种时间差正是人们容易中招的原因。受害者在签署后检查自己的 outgoing 交易时,可能会发现没有问题,因为资产的移动发生在之后,且是由他人触发的。关于钱包盗刷的报告描述了完全相同的模式:虚假网站要求用户进行签名,伪装成常规的登录或领取操作。
关于 Permit2 签名的证据与声明状态
声明内容状态Permit2 使用签名消息来授予代币权限官方(协议文档)存在两层结构:对 Permit2 的代币授权以及对支出方的签名授权官方(协议文档)签署本身不一定产生区块链交易已报告第三方可以稍后提交签名并支付 Gas 费已报告虚假网站利用签名请求盗取钱包资产已报告断开网站连接并不能撤销这些权限已报告(安全分析报告)有多少用户因此损失资金未核实 盗刷工具如何滥用 Permit2 签名?
盗刷工具包通常遵循简单的脚本流程。假冒的铸造页面、空投领取界面或支持聊天窗口会要求用户连接钱包。随后,页面会请求一个被描述为“免费”或“无害”的签名。该签名消息将攻击者的地址指定为支出方,通常设定大额度和遥远的到期时间。然后,攻击者提交该签名,并扫荡第一层授权涵盖的所有代币。
钓鱼链接通常通过直接消息、广告或仿冒域名传播。警惕紧急感、免费奖励和未经请求的链接。骗子也喜欢利用市场热度,因此在炒作氛围旁边出现的华丽赠品应格外谨慎。
用户应如何审查签名请求?
在签署之前,仔细的用户应检查钱包中显示的键入数据:
- 支出方(Spender):该地址是否与正在使用的应用匹配?
- 代币和金额:是否仅涵盖操作所需的代币和金额?
- 到期时间或截止日期:遥远的未来日期或无实质意义的限制值得怀疑。
- 域名:网站地址是否为真实地址,且通过书签访问?
- 钱包警告:现代钱包会对高风险请求发出标记,必须认真对待这些警告。
- 目的:要求授予代币权限的“领取”或“验证”请求是一个危险信号。
如果有任何不清楚的地方,正确的做法是拒绝请求,并在项目的官方渠道中咨询。
如何检查和撤销权限暴露?
断开网站连接仅结束会话,并不会取消授权或签名。要关闭访问权限,需关注两个层面:
- 使用理解 Permit2 的权限管理器(如代币授权检查器)审查存储的授权,并确认其支持基于签名的权限。
- 在 Permit2 中取消支出方的授权,或使相关非空值(nonce)失效,以防止未使用的签名被接受。
- 如果暴露情况严重,降低对 Permit2 的代币第一层授权。这是一种更广泛的制动措施,但可能会中断合法应用的使用。
- 如果怀疑遭到入侵,将剩余资金转移到新的钱包。
- 在确认两个层面的权限均已关闭之前,避免存入更多受影响代币。
撤销权限不会逆转已经确认的转账。希望阅读底层代码的开发者可以在官方仓库中找到相关代码。
有哪些更安全的习惯?
- 使用单独的钱包进行实验,并将主要资产存放在别处。
- 定期减少授权额度。
- 警惕紧急感、免费奖励和未经请求的链接。
- 依赖合约审计的人应学习如何验证智能合约审计,尽管审计并不能阻止用户签署恶意请求。
结语
Permit2 签名既是有用的工具,也是一把锋利的双刃剑。它让应用运行顺畅,但也让陌生人能够在所有者从未发送转账的情况下操作钱包。防御的关键不在于恐惧签名,而在于养成每次审查支出方、代币、金额和到期时间的习惯,并知道在出现异常时如何取消访问权限。
免责声明:以上内容(如有图片或视频亦包括在内)均为平台用户上传并发布,本平台仅提供信息存储服务,对本页面内容所引致的错误、不确或遗漏,概不负任何法律责任,相关信息仅供参考。
本站尊重他人的知识产权、名誉权等法律法规所规定的合法权益!如网页中刊载的文章或图片涉及侵权,请提供相关的权利证明和身份证明发送邮件到qklwk88@163.com,本站相关工作人员将会进行核查处理回复

