EIP-3074 影响研究

  • Dedaub
  • 发布于 2024-05-04 19:48
  • 阅读 8

EIP-3074 是以太坊 Pectra 升级的一部分,旨在通过引入 AUTH 和 AUTHCALL 两个新的操作码来增强钱包的功能,简化用户体验。Dedaub 的研究表明,EIP-3074 可能会绕过一些访问控制,但总体风险可控,且社区已意识到风险并准备适应。

研究

NEVILLE GRECH

EIP-3074 影响研究

Pectra 的 EIP-3074,及其对已部署智能合约的影响

引言

以太坊的最终用户体验 (UX) 即将随着 EIP-3074 的引入而得到显著提升,EIP-3074 将成为即将到来的 Pectra 更新的一部分。该提案旨在通过直接在传统钱包架构中启用类似于智能合约的更复杂操作来改善钱包的功能。它改进了区块链用户 UX,并解决了诸如交易捆绑和赞助交易之类的问题。

为了进行一项由以太坊基金会委托的研究,Dedaub 确定了 EIP-3074 的影响,该研究针对截至研究之日所有已知的已部署智能合约。随着我们接近 EIP-3074 的实施,我们分析的结果变得越来越重要。你可以在 此处 阅读原始研究。

根据我们的研究,我们发现 EIP-3074 可以绕过许多访问控制谓词,这些谓词涉及调用者 (msg.sender) 和交易发起者 (tx.origin) 之间的比较。过去,这些谓词一直被用于防御闪电贷攻击,并且在极少数情况下用于防御重入攻击。尽管以前认为前者比较是不安全的,但我们的发现表明,需要加快针对此类攻击的升级安全措施。但是,值得注意的是,发现这些访问控制谓词的使用很少见。此外,自从我们在 2021 年进行的研究以来,诸如 MEV 捆绑之类的多种其他机制进一步使与 tx.origin 的比较更加不安全,这意味着现代合约不太容易受到负面安全影响。

3074 影响研究

Dedaub 的 EIP-3074 影响研究:回顾

2021 年 5 月,Dedaub 进行了一项研究,以评估以太坊改进提案 (EIP) 3074 的影响,并评估其对以太坊生态系统的潜在影响。我们的研究人员构建了自定义静态分析管道,审查了已部署合约的源代码和字节码,并从开发者访谈中获得了见解,以了解该提案的可能结果。

该团队担心非标准检查(例如,重入检查)使用 `msg.sender == tx.origin`。尽管 EIP-3074 可能会使新的攻击更容易执行,但发现它不会为已经使用诸如 `msg.sender == tx.origin` 之类的表达式检查的现有代码创建重要的新攻击媒介。尽管该问题有可能影响数千个已部署的合约(截至 2021 年 5 月,约占以太坊上整个智能合约语料库的 1.85%),但开发者社区已经意识到潜在的风险,并且我们与之交谈的大多数开发者都准备好在有充分警告的情况下进行调整。

我们的研究利用了我们最先进的反编译和静态程序分析框架,这些框架是 Dedaub 安全套件中可用工具链的一部分。这些技术对于识别 EIP-3074 可能会改变攻击面的特定合约和场景至关重要。

尽管重要的是要承认结果可能会受到解释的影响,但截至 2021 年 5 月,我们认为 EIP-3074 的影响是“中等但可控的”,而今天则更易于管理。

关于 EIP-3074 和 Pectra 更新

即将到来的以太坊 Pectra 升级将改变以太坊钱包的功能。该提案将引入两个新的高级操作码(AUTH 和 AUTHCALL),允许诸如 MetaMask 之类的传统钱包以类似于智能合约的功能运行。拟议的增强功能将使钱包能够代表用户授权交易,从而简化交互并提高安全性。

计划于今年晚些时候集成到以太坊网络的即将到来的 Pectra 升级旨在显著简化用户体验。EIP-3074 将在此升级中发挥关键作用。EIP-3074 引入了两个新的以太坊操作码 AUTH 和 AUTHCALL,以改进智能合约交易的控制并允许更灵活的交易执行委托。以下是它们功能的摘要:

AUTH:

  • AUTH 是一个操作码,它接受单个 secp256k1 签名作为输入。
  • AUTH 的目的是恢复已签署输入数据的以太坊帐户的地址。它将此地址存储在 EVM 的上下文中。
  • 这允许智能合约安全地验证由特定帐户签名的消息,而无需直接交易签名。

实际上,AUTH 验证交易是否代表指定的帐户执行。

AUTHCALL:

  • AUTHCALL 基于 AUTH 构建。它是一个操作码,其工作方式类似于普通的 CALL,但利用了 AUTH 验证的地址。
  • 此操作码允许从 AUTH 建立的经过身份验证的地址执行调用。

从本质上讲,它让合约执行交易,就好像它是经过身份验证的帐户一样,从而实现安全且灵活的交易执行委托。

可以使用这些操作码来构建更复杂的智能合约架构,你可以在其中将交易签名委托给另一个实体,或允许中继者代表其他人安全地执行交易。这提高了灵活性,并且可以促进更无缝的智能合约交互,尤其是在需要更复杂交易流程的系统中。

但是,至关重要的是要小心处理这些操作码,以维护委托方案的安全性并避免意外的交易执行。

EIP-3074 启用的应用

EIP-3074 将启用或显著促进的应用的一些示例包括:

Meta-Transactions: 用户可以离线签署消息,中继者可以使用 AUTH 验证签名,并使用 AUTHCALL 安全地执行交易。

智能合约钱包: 智能合约可以使用 AUTHCALL 直接充当用户,而不是通过多层合约间接执行调用。

委托治理: 用户可以通过签署链下消息来委托其投票权,治理合约随后可以使用 AUTHCALL 验证并对其进行操作。

订阅和定期付款: 定期交易可以离线验证,服务提供商可以使用 AUTHCALL 执行授权付款。

访问控制和委托: 主帐户可以通过签名消息安全地委托对子帐户的访问权限,AUTHCALL 强制执行这些权限。

  • 原文链接: dedaub.com/blog/dedaubs-...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
Dedaub
Dedaub
Security audits, static analysis, realtime threat monitoring