以太坊近期 ACDE 会议频频提到 EIP-3074。为何以太坊下次的 Pectra 升级将会重新纳入过去被遗弃的 EIP-3074?与既有的帐户抽象方案 ERC-4337 有什么不同?ChainFeeds Research 对此技术汇整与科普介绍。
EIP-3074 回归:帐户抽象技术成为以太坊下次升级重点
在以太坊第 183 次 ACDE 会议中,沉寂三年的 EIP-3074 重新得到了以太坊社群广泛的认可,正式被纳入下一次以太坊硬分叉 Pectra 的升级范畴之中,预期可以带动帐户抽象 (Account Abstraction, AA) 技术的发展。
EIP-3074 是以太坊虚拟机的升级:新增操作码实现 EOA 帐户代理
EIP-3074 由以太坊研究员 Sam Wilson 、Go Ethereum 开发者 Matt Garnett 等人提出。其核心机制是让外部拥有帐户 (EOA) 能像智能合约钱包一样运作,并且无需部署额外的合约、无需用户手动升级。
EOA 是一种由使用者直接控制的以太坊帐户类型,例如 MetaMask 所创建的钱包帐户。相较于智能合约帐户支援的功能较少,不过一般来说后者需要 EOA 才能触发。
EIP-3074 引入了两个新的以太坊虚拟机器操作码 (opcode):AUTH 和AUTHCALL,借此使 EOA 能连接起一个智能合约,并将交易的控制权交给智能合约:
- AUTH:用于验证椭圆曲线数位签章算法 (ECDSA) 签名的操作码,基于签名结果设定一个变数 authorized。如果签名有效,且签署者位址符合给定的授权地址,则将 authorized 设定为授权位址。借此 AUTH 就能允许一个智能合约代表 EOA 执行操作,实现授权控制的委托。
- AUTHCALL:类似于现有的 CALL 指令,用于执行一个外部呼叫。不同之处在于,AUTHCALL 会使用先前透过 AUTH 指令设定的授权地址作为呼叫者地址,代表 AUTHCALL 会使用授权的 EOA 作为发送方,而不是被授权的合约本身。
整体流程是:使用者用 EOA 签署授权讯息,给合约接收并验证,合约使用 AUTH 和 AUTHCALL 指令以 EOA 的身份发送交易,代替使用者执行交易,而无需直接使用使用者的私钥,然后返回结果给使用者。透过 EIP-3074 使用者可以授权将帐户操作的权限授予第三方 (Invoker)
EIP-3074:让 EOA 能将控制权委托给智能合约。
EIP-3074 与 ERC-4337 的区别?
ERC-4337 是协议层的改动,不需要更改共识层。 ERC-4337 引入 User Operations 与替代内存池 (alt mempool) 的设计,允许将自定义功能编码到智能合约钱包,主要目标是实现帐户抽象,让智能合约帐户具有 EOA 主动发起交易的特性。
而 EIP-3074 因为加入新的操作码,需要透过以太坊硬分叉来实作,主要目标是赋予 EOA 类似智能合约的功能,将 EOA 的控制权委托给智能合约,使得智能合约可以代表用户进行交易。
ERC-4337 让智能合约拥有类似 EOA 的功能,仅需要修改协议设计;而 EIP-3074 则是修改 EVM 使得 EOA 具备智能合约钱包的功能,但帐户仍然是EOA。
为什么已经有 ERC-4337 还需要 EIP-3074?
虽然 ERC-4337 已经有许多项目投入,但在多链时代为每条链支援 ERC-4337 需要大量的开发工作。而像 EIP-7377 提出的迁移交易 (让 EOA 用户将其帐户迁移到智能合约),是需要用户手动发送一笔交易进行迁移的,不利于大规模采用推进。
相较之下,EIP-3074 让 EOA 原生具备智能合约的功能,可以直接在所有链上使用,且不需要使用者手动去升级,预期 EIP-3074 可以带动帐户抽象应用的发展。
EIP-3074 的优势在于简单,仅需要修改以太坊虚拟机操作码,即可以更快速推动以太坊帐户抽象发展。
先前以太坊社群担心 EIP-3074 的技术安全问题,经过改进和测试之后,目前社群已经广泛支持将 EIP-3074 加入到下一次以太坊升级中,这将对以太坊生态系统中的多个领域产生影响。
EIP-3074 实作后以太坊可以有什么改变?
当 EIP-3074 成功升级 Ethereum,预期可以让用户在网络上使用批量交易与赞助交易的功能:
- 在 DeFi 领域,EIP-3074 的大量交易功能将提升流动性提供者和交易者的效率,并降低参与成本。
- 在全链游戏领域,用户可以借由授权将帐户操作的权限授予第三方,避免每次交易都需要用户进行链上确认和支付燃料费用的问题。游戏开发者或其他第三方可以取代使用者执行交易,使用者只需要一次性授权即可,提升了游戏的流畅性。
EIP-3074是否有什么潜在风险?
虽然 EIP-3074 受到开发者的支持,但引入此机制仍有既定的风险:
- 在以太坊交易中,节点验证者需要确切知道交易细节,以便正确处理交易,以确保网络的安全和稳定性。但在 EIP-3074 中允许智能合约代替 EOA 执行交易,当涉及到赞助交易时,与其他合约或帐户进行互动可能会改变交易执行前和执行后的帐户状态,使节点验证找难以准确预测交易的影响,而产生网络不一致的安全风险。
- 此外,虽然使用者可以透过签名来授权第三方操作帐户,但这也意味着第三方可以在一定程度上操作使用者的帐户,这可能导致潜在的安全问题。且如果第三方的权限被滥用或遭受骇客攻击,使用者的资金和个人资讯可能会受到威胁。
以太坊开始着手提升使用者体验
帐户抽象技术与意图导向设计已经在社群讨论多年,不过由于以太坊过往的更新仍是以网络安全与效率为主进行更新,使用者体验的相关更新通常都是被摆在后位。
不过借由这几次的 ACDE 会议,看到许多开发者开始将 EIP-3074 的重要性排序往前移,或许代表以太坊终于要开始针对使用者体验问题大展身手了,EIP-3074 仅仅是第一步。