以太坊最近的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受到开发者的支持,但引入此机制仍有既定的风险:
在以太坊交易中,节点验证者需要确切知道交易细节,以便正确处理交易,以确保网络的安全和稳定性。但在EIP-3074中允许智能合约代替EOA执行交易,当涉及到赞助交易时,与其他合约或账户进行互动可能会改变交易执行前和执行后的账户状态,使节点验证找难以准确预测交易的影响,而产生网络不一致的安全风险。
此外,虽然用户可以透过签名来授权第三方操作账户,但这也意味着第三方可以在一定程度上操作用户的账户,这可能导致潜在的安全问题。且如果第三方的权限被滥用或遭受黑客攻击,用户的资金和个人信息可能会受到威胁。
以太坊开始着手提升用户体验
帐户抽象技术与意图导向设计已经在社群讨论多年,不过由于以太坊过往的更新仍是以网络安全与效率为主进行更新,用户体验的相关更新通常都是被摆在后位。
不过藉由这几次的ACDE会议,看到许多开发者开始将EIP-3074的重要性排序往前移,或许代表以太坊终于要开始针对用户体验问题大展身手了,EIP-3074仅仅是第一步。