本文讨论了以太坊账户抽象的演进,重点对比了EIP-4337、EIP-3074和EIP-7702提案。EIP-7702旨在改进EIP-3074,使其与EIP-4337兼容,同时解决兼容性问题,最终目标是通过账户抽象提升Web3的用户体验、安全性和开发者能力。
Dimitar Bogdanov
账户抽象仍然是 以太坊 社区的热门话题和重要追求。传统上,用户通过外部拥有的账户 (EOA) 与以太坊 区块链 交互,这些账户是由私钥控制的外部拥有的账户,是发起交易和与 智能合约 交互的标准方式。以太坊社区和正在进行的升级专注于改进以太坊协议和以太坊网络的基础层,以增强用户体验和安全性。账户抽象代表了区块链账户和以太坊账户的重大转变,从 EOA 转变为更灵活、可编程的基于智能合约的 模型。
之前,我们讨论了账户抽象的重要性以及实现它的最显著的尝试。我们主要关注 EIP-4337,当时它是领跑者。EIP-4337 引入了关键概念和关键组件,例如 UserOperations、Bundlers 以及入口点或 entrypoint 合约,它们共同实现了高级账户抽象功能,而无需更改 核心协议。
但最近,由于以太坊的创始人 Vitalik Buterin 亲自出马,人们对一些早期的方法重新燃起了兴趣。好的,让我们详细说明一下。
账户抽象旨在移除外部拥有的账户(通常由用户拥有),并用智能合约账户替换所有这些账户。智能合约账户是由智能合约代码控制的可编程账户,而智能账户是指利用可编程性的高级、用户友好的钱包,合约账户是指以太坊上执行代码但不能独立发起交易的任何账户。智能账户支持高级功能,如自动化、多用户访问和增强的安全性。这将允许开发人员为用户账户编写自定义逻辑,提高可用性和安全性,并使界面更加方便。可编程智能合约和智能合约代码可以实现自定义规则、自动化和诸如自动交易、消费限额以及跨区块链管理资产等功能。与现有钱包相比,账户抽象钱包(包括智能钱包和自托管钱包)提供了增强的灵活性,支持共享账户、两个或多个用户以及细粒度的 权限,超越了传统加密货币钱包中发现的单一助记词控制和完全访问模型。
安全措施也得到了改进,支持多因素身份验证、双因素身份验证以及诸如社交恢复和简易钱包恢复等恢复机制,减少了对用户私钥的依赖。硬件钱包仍然可以用于增加公钥和私钥的保护,而签名抽象进一步增强了安全性。会话密钥可用于授予临时权限或自动执行特定用户操作的付款。
去年,账户抽象的讨论主要围绕 EIP-4337,它将账户抽象设想为智能钱包概念的延伸,该概念已经在 Web3 领域得到了很好的实现。EIP-4337 还建议添加一个更高级别的 mempool (内存池),该 mempool 与一个名为 UserOperations 的新对象一起工作。入口点或 entrypoint 合约是一个中央智能合约,它在 ERC-4337 框架中处理这些 UserOperations,使用户能够以新的方式与区块链交互。简而言之,这种方法允许更轻松地实现智能钱包方法,支持在单个交易中进行多次交易,并启用诸如 gas 抽象、赞助 gas 费、使用替代代币支付 gas 费以及支付 gas 费以优化 gas 支付、gas 费和 gas 成本等功能。
对 EIP-4337 的浓厚兴趣将注意力从替代方法(如 EIP-3074 和 EIP-2938 中提出的方法)上转移开来。然而,最近,由于以太坊社区的关键人物试图使其与当前方法兼容,人们对 EIP-3074 重新产生了兴趣。结果是 Vitalik Buterin 共同撰写的 以太坊改进提案,旨在改进 EIP-3074 提出的方法。原生账户抽象也在其他区块链账户中进行探索,进一步扩展了账户抽象所提供的功能,并为用户打开了方便之门,允许用户并使用户能够从改进的用户体验、自动化和安全性中受益。
EIP-3074 是实现账户抽象最有希望的方法之一。它专注于允许外部拥有的账户将控制权委托给智能合约。为了使这成为可能,EIP-3074 向 以太坊虚拟机 添加了两个新的操作码 - AUTH 和 AUTHCALL。此外,想要将控制权委托给智能合约的用户需要使用其 EOA 签署消息。使用签名消息和两个操作码,所谓的“调用者”智能合约能够处理相应 EOA 的交易。
通过 EIP-3074 提出的方法完全能够完成账户抽象的主要目标。EIP-7702 的作者指出了早期改进提案解决的三个用例:批处理,其中可以原子地在单个交易中执行来自同一用户的多个操作;赞助,允许账户代表另一个账户支付交易费用;以及权限降级,允许用户签署对账户具有较弱权限的子密钥,而不是全局访问权限。在 EIP-7702 框架内,会话密钥可用于授予有限或临时访问权限,从而实现高级功能,如临时智能账户行为和安全交易授权。
但是,也有一些注意事项使 EIP-3074 成为一种不如最新替代方案的可行方法。Buterin 和 EIP-7702 背后的团队引用了部分源于添加 AUTH 和 AUTHCALL 操作码的前向兼容性问题。他们还指出,实施 EIP-3074 方法将导致“调用者合约生态系统”的开发,该生态系统将独立于智能钱包生态系统存在,并可能导致工作碎片化。
EIP-7702 旨在解决这些问题,并使 EIP-3074 用例在 EIP-4337 方法中工作,该方法正在 ERC-4337 标准下实施。EIP-7702 概述了一种无需添加新操作码即可实现相同结果的方法,而是利用现有函数。重要的是,EIP-7702 和 ERC-4337 都不需要对以太坊的底层共识层协议进行任何更改,从而保持了兼容性和安全性。
此外,用户需要签署的代码可以是现有 ERC-4337 钱包代码的一部分。改进提案的作者还指出,“所使用的“代码路径”是在许多情况下(尽管可能不是全部)在纯智能合约钱包世界中继续“有意义”的代码路径”,这意味着可以避免创建两个独立的代码生态系统的问题。
账户抽象可能是 Web3 产品和服务大规模采用的最重要催化剂之一。账户抽象在提高可用性、更好的安全性和开发人员赋权方面带来的潜在好处怎么强调都不为过。这就是为什么很高兴看到该主题仍然是以太坊社区的主要关注点。不断改进账户抽象方法的动力有力地表明该行业正朝着正确的方向发展。
- 原文链接: limechain.tech/blog/eip-...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!