深入解析以太坊EIP-3074:实现无需ETH的批量交易与更流畅的用户体验

·

以太坊外部账户(EOA)即将迎来重大升级。通过引入EIP-3074提案,普通用户账户将能够发送批量交易、设置交易过期时间、甚至实现无序交易执行,而无需预先持有ETH支付Gas费。

这一升级由以太坊核心研究者@_SamWilsn_@adietrichs共同推动,旨在显著改善用户与以太坊网络的交互体验。经过多次迭代,他们提出了"AUTH和AUTHCALL操作码"的创新解决方案。

EIP-3074的核心机制

EIP-3074的核心在于两个新操作码:AUTH(验证)和AUTHCALL(验证调用)。其工作流程如下:

  1. 外部账户对一条链下消息进行签名
  2. 用户将签名和调用数据提供给中继器(relayer)
  3. 中继器将这些数据传递给链上合约(称为调用器,invoker)
  4. 调用器使用AUTH操作码验证签名
  5. 验证通过后,调用器使用AUTHCALL操作码发送交易

AUTHCALL的功能与普通CALL类似,关键区别在于它将msg.sender设置为通过AUTH恢复的外部账户地址。这使得用户可以在不持有ETH的情况下与以太坊交互,因为他们的交易可以由中继器"资助"完成。

与元交易(Meta-Transactions)的关键区别

这一机制听起来可能与元交易相似,但存在重要区别。传统元交易无法随意设置msg.sender,因此合约必须明确支持元交易功能。EIP-3074旨在消除对元交易的依赖,减少合约复杂性和开发负担。

构建去信任系统的关键技术

EIP-3074允许通过精心选择签名参数来构建去信任系统。用户需要对特定格式的数据进行签名:keccak(0x03 ++ invoker_address ++ commit_hash)。

类型字节(0x03):这是EIP-2718定义的恒定字节,用于防止与其他签名方案(如EIP-2930访问列表交易、EIP-1559费用市场交易、EIP-191的0x19签名消息)发生冲突。

调用器地址:将用户调用与特定合约绑定,签名仅对该合约有效。用户可以选择信任的调用器,类似于选择智能合约钱包托管资产。

我们预期市场上调用器的数量不会太多,因为实现错误可能导致用户资产损失。开发安全调用器需要高额投入,包括多方审计和静态证明,这与当前智能合约钱包的安全要求相似。

委托哈希(commit_hash):这是赋予调用器设计者灵活性的关键参数,允许开发各种不同的签名规则。委托参数限制调用器只能执行特定操作,并为每次调用建立有效性要求。

实际应用场景

基本用例:防止重放攻击

假设用户想通过调用器发送调用。为防止交易被重放,他们提供随机数和其他不可篡改的数值。用户对这些值进行哈希得到委托,并在签名消息中使用该委托。

调用器用接收到的值重新生成委托哈希。如果中继器修改了任何值,调用器计算出的委托哈希将与用户签名不匹配,导致AUTH恢复出无效地址,交易失败。

高级功能:批量交易与过期交易

最重要的是"一个签名多个操作"的能力。传统签名由单笔交易哈希创建,而EIP-3074支持对多笔交易进行哈希。

当账户通过AUTH验证后,调用器可以进行任意多次AUTHCALL。我们还可以设计委托哈希为多个调用哈希值的方案。

通过添加"expiration"参数,用户可以创建过期交易。该参数被哈希到委托哈希值中,在验证过程中,调用器会检查是否expiration < block.number,从而实现交易过期功能。

👉 查看实时开发工具与进展

常见问题

EIP-3074与智能合约钱包有何不同?

EIP-3074允许任何外部账户使用调用器的功能,而无需将资产转移到新地址。智能合约钱包需要将资产转移到合约地址,而EIP-3074保持了原有外部账户的直接控制。

使用EIP-3074是否存在安全风险?

风险主要在于调用器的实现质量。用户应选择经过充分审计和验证的调用器,就像选择智能合约钱包时一样谨慎。调用器代码完全在链上可验证,这是区块链的核心优势。

EIP-3074如何影响Gas费用?

由于交易由中继器资助,用户无需持有ETH即可进行交易。中继器可能会通过其他方式补偿Gas成本,如接受其他代币支付或提供免费服务以吸引用户。

这一提案何时会部署到主网?

EIP-3074目前处于提案阶段,具体部署时间取决于以太坊核心开发者的共识和网络升级日程。开发者可以关注以太坊改进提案仓库获取最新进展。

调用器是否会成为中心化风险点?

调用器的设计是去中心化的,任何人都可以开发和部署调用器合约。用户可以选择不同的调用器,市场竞争将促使服务质量和安全性的提升。

EIP-3074是否支持现有的智能合约?

是的,EIP-3074与现有合约完全兼容,因为AUTHCALL设置的msg.sender是标准的外部账户地址,合约无需任何修改即可正常交互。

EIP-3074提供了强大的基础功能,为更流畅的用户体验开辟了可能性,同时无需引入额外的信任假设。这一提案代表了以太坊账户抽象化道路上的重要进展,有望显著降低新用户进入门槛并提升现有用户的交互体验。