6月21日,以太坊上知名的三明治套利机器人Jaredfromsubway.eth遭到攻击,地址内的WETH、USDC等资产被转走,初步统计损失超过750万美元。值得注意的是,这次攻击既不是私钥泄露,也没有利用传统意义上的智能合约漏洞,而是一场精心设计的“定制版”陷阱。

攻击者提前部署了大量虚假代币、流动性池和辅助合约,将其包装成可能存在套利空间的交易路径,诱导Jaredfromsubway.eth在自动化执行过程中向恶意合约授予了ERC-20的Approval。由于授权是链上合法操作,攻击者得以“合法”转走该MEV机器人的资产。截至发文时,Jaredfromsubway.eth已通过链上消息向攻击者公开喊话,表示若在48小时内归还2150枚以太坊,愿意支付五成白帽赏金,否则将采取法律及执法手段追责。

攻击手法:长期围猎,瞄准自动化执行逻辑
Jaredfromsubway.eth一直是以太坊上最知名的三明治攻击机器人之一。其策略是发现一笔即将发生的链上交易后,抢先买入推动价格上涨,等用户以更差价格完成交易后立即卖出,赚取价差。这要求机器人持续扫描链上交易,快速判断套利机会并组织多步交易路径。攻击者正是利用了这一点:花费数周时间,构造一组看起来能够盈利的交易环境,包括精准匹配机器人偏好的交易对、流动性深度和Gas设置,最终引导机器人在毫秒级执行中向恶意合约授权。

从根本上说,整套攻击瞄准了MEV机器人只关注价差、Gas成本等参数而忽视合约身份验证的弱点。机器人懂得如何计算套利收益,却未必会对每一个新出现的合约进行充分的身份验证。这暴露了自动化系统与普通用户面临的共通风险:前者“没有确认就自动执行”,后者“没有看懂就点了确认”。

Approval机制:DeFi的基石与隐藏的风险
在以太坊及EVM兼容链的ERC-20标准中,Approve(授权)是一个底层设计。普通转账调用transfer,不涉及授权;但在DEX、借贷、质押等场景中,用户需要授权智能合约代表自己调用代币。例如在Uniswap上用USDT换ETH,必须先授权Uniswap合约划走指定数量的USDT,后续的Swap才能通过transferFrom完成。Approval本身不是漏洞,而是DeFi正常运转的基础。但它引入了几类典型风险:
首先是无限授权。很多DApp默认申请极大额度(即“无限授权”),用户原本只想交易100 USDC,却允许合约将来动用全部USDC。只要该授权未被撤销,即使钱包当时只有少量资产,未来重新转入的资金也可能受影响。其次,授权默认不会随离开DApp而消失。“断开钱包连接”只是让网页暂时无法读取钱包,并不改变已写入区块链的Approval;关闭网页、删除应用或清除缓存均无法自动撤销授权。最后,即使最初是正常合约,未来也可能变得危险——合约被攻击、管理员密钥泄露、可升级逻辑被替换等,都会导致授权被滥用。

用户安全实践:最小权限与定期检查
面对Approval风险,最直接的建议是避免无限授权。在钱包弹出授权提示时,尽量根据本次交互实际需要设置额度,只授权接近所需金额的额度。同时,建议区分储存钱包和交互钱包:长期储存大额资产的地址不要频繁连接陌生DApp;参与空投、Mint、新项目或高风险DeFi交互时使用单独地址,以限制潜在损失。此外,定期检查并撤销不再需要的授权至关重要。用户可以使用Revoke.cash等工具,或在imToken中进入对应代币页面,通过“Token Function”下的“授权管理”查看并撤销不再使用或来源不明的权限。

钱包作为用户进入Web3的第一道护城河,也需要在产品层面提供主动防御。以imToken为例,会对已识别的风险代币、地址和DApp进行标记或拦截,在用户向普通外部账户授予代币权限或向合约地址直接转账时提供针对性风险提示。imToken还在DApp登录、转账、代币兑换与授权等关键环节对签名内容进行结构化解析与可读化呈现,帮助用户在确认前理解自己正在同意什么,确保所见即所签。随着ERC-7730等Clear Signing标准的推进,这种可读化展示有望从单个钱包的产品能力逐渐成为行业标准。

总结而言,私钥决定谁拥有账户,Approval决定谁还能调用账户里的资产,两者同等重要。钱包安全不能只停留在防私钥泄露,还需持续管理授权权限。用户应养成授权前看清对象和额度的习惯,交互结束后及时清理不需要的权限;钱包则需让隐藏的权限更可见、更易理解和撤销。真正危险的未必是刚发生的一笔转账,也可能是早已被遗忘却始终没有失效的授权。

