一句好听的话,一次致命的签名
以太坊在 2025 年的 Pectra 升级中激活了 EIP-7702。它允许普通账户(EOA)临时挂上一段合约代码,从而获得批量操作、代付手续费等能力。这本是一个改善体验的正当功能:钱包可以用它做组合操作,新手不必先攒一笔 ETH 才能交互。但功能本身没有立场,同一套机制也能被包装成「你只管点确认,Gas 我们来付」的钓鱼话术。理解代付交易的真实结构,是识破它的前提。
代付交易的真实结构:谁在签名,签的是什么
EIP-7702 定义了一种「设置代码交易」:交易可以由别人广播、别人出 Gas,但其中包含一份授权列表,列表里的每一项都需要你用自己的密钥签名,声明「允许某个地址的代码在我的账户上下文中执行」。这里藏着两个关键事实。第一,授权是有状态的:一旦签名生效,你的账户就带着这段委托代码运行,直到你主动清除或再次改绑,它不会因为「这次操作结束」而自动消失。第二,签名内容里的链 ID、账户当前 nonce 和委托地址共同决定这次授权的范围与时效;钱包弹窗里那行你几乎不会细看的「授权」字样,改变的是你账户的长期行为模式,而不是完成一次转账。
攻击者的剧本因此非常短:做一个漂亮的批量领取或空投页面,把「领取」按钮接到一次 7702 授权签名上,用「免 Gas」吸引你点确认。你付的确实不是 Gas,你付的是账户的控制模型——之后的每一笔交易都可能被委托的那个地址解释和执行。
识别信号与处置顺序
信号一:任何操作被描述为「不用你出手续费」,却要求你签署带「授权」「委托」「delegation」字样的消息或交易。信号二:弹窗里的目标地址你在项目官方文档、区块浏览器上查不到对应说明。信号三:批量操作页面催促你「一次签名、永久方便」。
处置顺序:先核对手里的签名请求类型——普通转账、代币授权、还是设置代码授权;对第三类一律暂停。若已签过,去区块浏览器查看自己地址的代码字段是否出现了以 ef0100 开头的委托指示符;确认存在且来源可疑时,通过钱包或官方工具发起清除委托的交易(授权列表中把委托地址填为零地址是规范定义的清除方式,正规钱包会替你构造),把资金先行转移到干净的钱包是更快的一步。
批量操作不是原罪,代付也不是骗局同义词。判断标准只有一条:这次签名之后,你的账户行为由谁定义。
把风险关进小圈子的日常做法
即使你确实想用批量操作或代付功能,也有办法把爆炸半径压小。把钱包按用途分层:日常交互用一个只放少量资金的热钱包,大额资产待在没有委托代码、也不连任何 dApp 的地址上。任何新出现的「实验性功能」——包括刚上线的账户功能、刚推出的批量工具——先在小钱包上跑一遍完整流程,确认弹窗行为与文档描述一致,再考虑是否升级到主地址使用。这个「先试后升」的习惯在 7702 这类改变账户结构的特性上尤其值得执行,因为它的影响是持续性的,一次误签不会随页面关闭而结束。
还有一条容易被忽略的边界:委托代码的执行发生在你账户的上下文中,意味着它读写你余额的方式可以非常灵活。给任何委托地址「方便」之前,问自己一个具体到名字的问题——如果这个地址背后的人明天消失、密钥被盗,我的账户会变成什么样?答不上来,就不签。正规钱包和正规批处理工具会正面回答这个问题,钓鱼页只会催你快点。
一次真实场景的完整推演
设想一个常见场景:某个新协议上线批量领取功能,宣传语是「一次签名领完所有空投,Gas 由协议补贴」。页面流程看起来无懈可击:连接钱包、点击领取、弹窗确认、领币到账。拆解一下这一路发生了什么:连接钱包只是暴露地址,风险有限;点击领取时,如果页面构造的是普通多笔转账,你确实只需为每笔付费或等补贴到账后广播——这种情况下弹窗应该是几笔清晰的转账或一次批量调用。但如果弹窗里出现「授权设置代码」类字段,或者要求你先签一条「资格验证」消息再点第二次,链路性质就完全变了:前者把你的账户永久挂到他们的执行逻辑上,后者可能是一张延时生效的提款许可。
分辨它们的实操办法只有一个:把弹窗展开看完。主流钱包对 7702 类交易会明确标注「设置代码」或「委托」,并显示目标地址;对消息签名会显示协议名与域名。看不懂字段不要紧,把目标地址复制进区块浏览器,看它此前被哪些交易使用过、是否有大量不同地址对它做同样的授权——「很多人在签」在钓鱼场景里恰恰是危险信号而不是安全信号,因为仿冒活动的目标本来就是制造从众。正规批量功能的使用记录则集中在协议官方合约附近,且每一笔都能在协议文档里找到解释。这个核验花不了两分钟,却处在整条骗局的必经之路上:无论页面做得多真、话术多贴心,最后的签名弹窗必须经过你的手。
本指南只提供防御与处置建议,不构成任何投资建议。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。