本文主要讨论了EIP-3074协议的潜在风险和不足,包括用户资金安全风险、缺乏安全控制、复杂的安全模型、以及与现有账户抽象方案的冲突。文章引用了Vitalik Buterin, Yoav Weiss等专家的观点,强调EIP-3074可能导致中心化解决方案,并增加协议的复杂性,社区反馈也表明了对该提案的担忧。

关于 EIP 3074 的文章,无论是在本论坛还是其他地方,都已经堆积如山,但要从噪音中找到信号却很困难。以下是关于为什么 EIP 3074 是一个坏主意的简短总结:
- 用户资金面临风险:一次签名,你将失去一切。依赖于钱包来阻止这种情况,以及用户理解新的安全模型。脆弱的假设。除非硬件钱包的 UX 经过彻底改造,否则它们无法保护用户
- 缺乏危险的安全控制:为了实现诸如 gas 抽象之类的用例,EIP 3074 需要授予对你所有资产的完全访问权限。EIP 3074 是信任最大化的。它是一种要么全有要么全无的“sudo root”访问模型。这与 4337 的信任最小化设计不同,在 4337 中,paymaster 无法窃取你的资金
- 令人困惑的安全模型,用户更难理解:EIP 3074 使 EOA 安全模型更难理解,即使对于专家来说也是如此,尤其是对于普通人来说。违反了最小惊讶原则(见下文)
- 总体上没有改善 UX:因为将所有资金输给诈骗不是好的 UX。EIP 3074 声称提供的好处可以通过其他更安全的方式实现
- 其他安全问题:向 EOA 添加新的授权方法,同时无法撤销旧的硬编码 EOA 密钥。许多潜在的问题会破坏围绕 EOA 的 dapp 假设。需要更彻底的审计
- 许可式创新:dapp 开发人员将无法开发自己的调用者,因为一旦用户开始被诈骗,所有钱包都会将它们列入白名单。
- 创建两个不兼容的钱包堆栈:这将进一步分割 UX 和流动性
- 不必要:鉴于账户抽象 (ERC 4337) 已经在主网上,并且我们正在朝着在协议中实现 gas 高效的本地账户抽象以及在所有 rollup 上进行标准化
- 确立摩擦和膨胀:EIP 3074 没有帮助我们走向账户抽象,而是确立了 EOA,并向协议添加了一个丑陋的 cruft 层,我们永远无法摆脱它。一旦它进入,建立在其之上的更多笨拙的 EIP 的活动将开始。补丁到补丁到补丁,一直向下。
- 与包含列表不兼容:我们需要包含列表来缓解现在使用中心化区块构建来审查交易的容易程度
- 战略上糟糕的二阶效应:推动中心化解决方案作为阻力最小的路径(例如中心化元交易中继,围绕 Metamask 的调用者合约的“大到不能倒”的垄断)
- 这些论点的功劳归于 EIP 3074 的各种批评者,包括:
- Vitalik:“我们应该超越 EOA,而不是进一步确立它们”
- Yoav Weiss,EF 安全研究员和 4337 架构师:“ERC 4337 vs EIP 3074”
- Ansgar @ EF 研究员:EIP 3074 的原始作者之一
- Charles Guillemet,Ledger 首席技术官
- Martin Köppelmann Gnosis 联合创始人
- Itamar Lesuisse:Argent 钱包的创始人兼首席执行官
- Patricio @ POAP 创始人
为什么 EIP 3074 违反最小惊讶原则是个问题?
失去最小惊讶原则的普遍问题是,用户希望交易发生一次,现在。有了 3074,它变成了“交易现在或将来可能会发生任意次数,除非调用者强制执行重放保护”。
此外,还存在不透明性问题(不像批量交易类型)。从查看交易来看,不可能确切知道它要做什么。也许调用者按照你的要求转移了代币,但也设置了一个允许某人在将来提取更多代币的额度。或者也许它为你的某些交易赞助 gas,但也将在某些项目中的治理代币委托给一个恶意委托人,该委托人将通过赞助人们在某些其他协议中的交易来默默地收集大量投票权。
用户不会注意到,因为他们保留了他们的代币。他们只是将投票权委托给了攻击者,但没有受到直接影响。或者也许调用者是一个可升级的代理,现在是安全的,但在将来,它会更改其实现以做其他事情并重用你的旧 AUTH。很容易想出可怕的场景。
社区反馈














