EIP-3074 后,恶意的签名会导致以太坊账户资金被耗尽吗?
EIP-3074是一项新的标准,可能会耗尽以太坊账户余额。钱包需要谨慎处理,支持新的签名格式并确保调用者地址可信。尽管用户对钱包有高度信任,但仍需注意安全风险。该标准对账户抽象提供者和新用户都有益处,是引入加密领域和智能账户的最佳方式。作者建议钱包安全集成EIP-3074,并提供帮助。
原文作者:lightclients
原文来源:twitter
编译:MetaCat
在 EIP-3074 之后,一个错误的签名将能够耗尽你以太坊账户上的余额。
是的,这是真实的。
EIP-3074 联合作者在这此!在事情变得更加失控之前,让我先暂时平息一下这个担忧。
首先:我没有听说目前有任何钱包,支持签署无前缀数据。这意味着目前没有钱包支持 EIP-3074。无论你浏览多少个控制面板或打开多少个高级功能。现在无法签署 EIP-3074 的消息。
你签署“登录”dapp 的消息使用的是基于 EIP-191 的完全不同于 EIP-3074 的标准。这会将以下数据添加到你签名的消息中:
0x19 <0x45 (E)> <thereum Signed Message:n" + len(message)> <data to sign
这就是为什么不可能欺骗登录 dapp 的人来实际签署有效的以太坊交易。
交易以单字节值作为前缀:
0x01 - 2930 tx0x02 - 1559 tx0x03 - 4844 tx
更多信息参见:https://github.com/ethereum/execution-specs/tree/master/lists/signature-types
EIP-3074 计划使用前缀0x04。这将消除它与以太坊中所有其他类型的可签名数据的歧义。钱包必须主动选择允许用户签署这些消息。
基于钱包集成 EIP-3074 的具体方式,可能会造成用户更容易被利用的情况。要理解这一点,我们需要确保自己理解 EIP-3074 签名的工作原理。
构建签名的身份验证消息具有以下字段。重要的是,它包括一个调用者地址。这是 AUTH 认为签名有效的唯一地址。
对于要耗尽余额的帐户,必须同时满足以下两点:
1) 钱包需要允许用户签名到任何调用者地址(invoker address),
2) 用户必须没有验证调用者(invoker)是否可信。
这意味着,用户执行了其中任何一条都不会有问题。
我们希望钱包软件明白: EIP-3074 调用者(invoker)更类似于钱包软件代码的扩展而不是合约。钱包不允许用户自由地运行任意代码并访问其 pk(私钥);同样,他们不应该允许用户任意委托(delegate)他们的以太坊帐户。
关于【EIP-3074 后,恶意的签名会导致以太坊账户资金被耗尽吗?】的延伸阅读
如何看待Vitalik力挺的EIP-7702:会牺牲EIP-3074 invoker市场的无限潜能吗?
EIP-7702是以太坊新提案,结合了EIP-3074和ERC-4337的优点,旨在提升用户交易体验。然而,它也限制了EIP-3074的潜力。市场已选择ERC-4337作为发展重点,但EIP-3074仍有发展空间。@bentobatch和@dappOS_com也在探索交易层和Intent基础设施的落地。EIP-7702作为过渡方案,延续了EIP-3074的优点,但一次性权限赋予限制了其潜能。短期来看,使用EIP-7702是最优解。
以太坊核心开发者最新会议摘要:EIP-7702纳入疑虑、坊执行层序列化方法转换
以太坊开发者在电话会议上讨论了Pectra Devnet 0的准备工作、EIP 3074的实施更新和EL序列化方法转换为SSZ的紧迫性。开发者们还探讨了新的EIP提案、现有EIP的讨论和分析,以及对智能合约和交易的影响。其中,对EIP 7702的讨论引起了广泛关注。开发者们讨论了EIP-3074和EIP-7702,以及如何解决存款排序问题。最后,开发者们还讨论了链上供应验证器存款和以太坊虚拟机改进的相关问题。
因此,如果钱包软件不安全地集成 EIP-3074,并且用户不验证他们正在交互的调用者,则可能会委托给恶意调用者。但是,依然可以通过从 EOA 发送单个 tx 来撤消。这将撤销所有“正在进行的”AUTH 签名。
至少,钱包软件应该让签署 EIP-3074 消息成为一件大事,就像导出你的私钥级别的大事一样。
假设钱包安全地集成了3074,帐户仍然有可能被盗。这是批量交易的基本属性。它允许你轻松发送多个操作,就像它允许攻击者诱骗你将一批资产发送到他们控制的地址一样。
钱包软件必须清楚地显示你正在签名的每个操作。这样,很容易注意到“我只打算进行一笔交易,但这个签名请求让我还进行了十几次交易”。如果通过盲签名(blind signing)进行批处理,则无法检测到这一点。
是的,EIP-3074 非常信任钱包。但是,我们已经用我们的私钥安全地信任他们了!没有更高层次的信任。
可以安全地集成和使用 EIP-3074。如果任何钱包对如何执行此操作有疑问,请随时与我们联系。作为 EIP-3074 的作者,我们目前正在考虑如何才能最好地帮助该标准的下一阶段发展。
在过去的几年里,我们花了很多时间来开发关于如何使用和滥用它的假设场景。我们很高兴这些想法开始投入生产。但我们也认识到这是最困难的部分。
总结一下 EIP-3074 之后,单个错误签名会耗尽你的以太坊帐户余额的担忧:
- 目前钱包不支持 EIP-3074 类型的签名,该签名遵循新的格式。
- EIP-3074 签名中的调用者字段非常重要。一个不良的调用者可能会窃取你的资金。
- 钱包需要确保调用者地址是可信的。这类似于钱包目前如何防止执行任意代码。
- EIP-3074 中的批量交易仍然会开启一个世界,恶意行为者可以欺骗你签署转移资产的交易。钱包需要清楚地显示当签署 EIP-3074 消息时会发生什么。
- 是的,我们对钱包有很高的信任,但用户已经将私钥托付给它们,这是最高级别的信任。
EIP-3074 与 EIP-4337
EIP-3074 对账户抽象(Account Abstraction)提供者来说是一件非常好的事情,因为它对我们的客户非常有益。
- ERC-4337 是将新用户引入加密领域的最佳方式。
- EIP-3074 是将现有用户引入智能账户的最佳方式。
免责声明:本文仅代表作者个人观点,不代表链观CHAINLOOK立场,不承担法律责任。文章及观点也不构成投资意见。请用户理性看待市场风险,以及遵守所在国家和地区的相关法律法规。
图文来源:lightclients,如有侵权请联系删除。转载或引用请注明文章出处!