8月22日,记录了近100万美元代币和NFT被盗事件。用户在Uniswap上签署了一笔看似普通的交易,没有明显的危险迹象:界面显示的操作符合预期,一切正常。然而,实际操作并非交易,而是隐藏操作。根据EIP-7702标准,该钱包获得了临时“升级”权限,足以将所有资产一次性转入诈骗者的账户。
本文翻译自原文。点击此处阅读由我们的通讯员撰写的原文.
此案成为第一个响亮的信号,表明为方便和效率而开发的以太坊新标准可能会变成网络钓鱼工具。
什么是 EIP-7702
EIP-7702 是一项以太坊改进提案,它彻底改变了与网络交互的本质。传统上,以太坊有两种类型的账户。第一种是外部拥有账户 (EOA),这是一种普通的钱包,只需使用私钥签署交易即可。第二种是合约账户,它包含代码,可以执行复杂的场景。
EIP-7702 的引入使得这两种模式得以融合。普通钱包获得了暂时像智能合约一样运作的能力,这意味着在单笔交易中,它可以同时执行多个操作。对于用户来说,这就像一个简化版的所谓账户抽象:无需单独签署每个操作,也无需为数十笔交易付费。一次确认即可完成整个场景。
[推特:https://twitter.com/KryptoKwack/status/1960637117165408515]技术上如何运作
在经典的 EOA 模型中,操作仅限于简单的转账或调用智能合约中的函数。在 EIP-7702 中,钱包会加载仅在一笔交易期间运行的临时代码。这些代码可以包含一系列不同的指令:例如,首先在去中心化交易所执行掉期,然后将部分代币发送到另一个地址,并同时与流动性协议进行交互。
交易完成后,临时代码消失,账户恢复正常状态。这种方法确实解决了很多问题,让 DeFi 操作更加便捷、成本更低。但正是这种灵活性,也为新的攻击埋下了伏笔。
为什么钱包不会发出危险警告
主要原因是,EIP-7702 下的交易在技术上看起来像是常规的代码更新。钱包接口仅接收一般信息:用户正在签署包含 initCode 的交易,并且该代码将在区块内执行。这些数据本身并不带有明显的危险信号。钱包无法识别代码中隐藏了“转移所有代币”的命令。
另一个复杂之处在于,该标准仍然很新,大多数客户端和钱包尚不理解 EIP-7702 的逻辑。在经典交易中,钱包可以清晰地显示“您正在向地址 X 发送 2 ETH”。然而,在 7702 中,它只能看到一组将在虚拟机上实时执行的通用指令。向用户解释这一点需要复杂的集成,并且实际上需要一个内置的代码分析器——这在主流钱包中尚不存在。
[推特:https://twitter.com/realScamSniffer/status/1958796492606775401]因此,用户只会看到“常规兑换”或“已批准”,而交易的真正逻辑仍然隐藏。这种技术复杂性与视觉呈现之间的差距,为滥用创造了理想的环境。
通往 EIP-7702 之路
EIP-7702 并非凭空而来。 以太坊长期以来一直在朝着账户抽象化的方向发展,钱包和智能合约之间的界限正在消失。早期的举措,尤其是 EIP-4337,将交易处理转移到了特殊的“打包器”中。
新提案变成了一个更简单但更激进的变体,逻辑直接在用户账户中执行,无需额外的层级。这提高了交易效率,但也为攻击带来了新的机会。
平衡创新与风险
这起 100 万美元的盗窃案凸显了以太坊发展中的悖论。每一项新的改进都为便捷性和灵活性打开了大门,但同时也带来了新的危险。开发者们设想的是多操作交易和更低成本的 DeFi 场景,但实践中,第一个被广泛使用的案例却变成了复杂的网络钓鱼。
EIP-7702 为以太坊开启了一个新时代,普通钱包只需几秒钟即可变成智能合约。这标志着以太坊迈向通用账户模型的一步,同时也提醒我们,创新总是伴随着风险。开发者追求的是效率,而骗子则看到了用一个签名就能榨干数百万美元的途径。
- Forex
- Crypto