本文是ERC-4337系列的第一部分,深入探讨了ERC-4337的技术细节,包括UserOperations、Bundlers、EntryPoint和Contract Accounts等关键概念,旨在解决以太坊钱包用户体验的问题。
本指南是一个由两部分组成的系列的第一部分,重点在于理解和实现 ERC-4337 以太坊改进提案(EIP)。在这一部分中,我们将深入探讨 ERC-4337 的技术细节,深入了解其关键概念,如 UserOperations、Bundlers、EntryPoint 和 Contract Accounts。我们的目标是全面理解 ERC-4337 的工作原理及其试图解决的问题。
本系列的第二部分将是一个实践教程,你将学习创建和部署符合 ERC-4337 标准的智能合约。我们建议你先阅读第一部分,以便在进入第二部分的实际编码之前,充分掌握其基本原理。
所以,如果你准备好深入探索以太坊标准的迷人世界,让我们开始吧!
最近(2023 年第二季度)围绕以太坊的热潮是关于账户抽象。为什么?因为托管钱包(例如,外部拥有账户(EOA))难以管理,用户体验可能很糟糕。目前存在一些智能合约钱包(例如 Argent、Safe),但它们不像我们希望的那样具有互操作性,并且仍然需要依赖 EOA 来提交交易。在本指南中,我们将讨论 ERC-4337,这是一个旨在解决钱包用户体验问题的以太坊改进提案(EIP)。
在深入探讨 ERC-4337 之前,让我们快速回顾一下目前以太坊上可用的账户类型及其特征和功能:
特征 <br> 特性 | 外部拥有账户 (EOA) | 智能合约账户 (SCA) |
---|---|---|
所有权 | 直接由私钥持有者拥有 | 由智能合约内部部署的代码拥有和控制 |
控制 | 由私钥控制;因此,只有密钥的所有者才能直接交互 | 由智能合约代码中定义的业务逻辑控制。任何用户都可以根据合约的定义与其交互 |
创建 | 当生成私钥/公钥对时创建,通常由以太坊钱包生成 | 当部署智能合约或执行智能合约并由智能合约创建时创建 |
可升级性 | 不可更新。一旦设置,私钥/公钥无法更改 | 根据合约代码,可能是可更新的(例如,升级合约逻辑) |
交易来源 | 只有 EOA 可以发起交易。EOA 使用其私钥对交易进行签名 | 无法发起交易。它们执行操作以响应接收到的消息(来自其他合约的交易或调用) |
余额 | 可以持有以太币余额 | 可以持有以太币余额,以及变量和函数的状态 |
这两种账户类型有一些相似之处,它们都仅限于使用以太坊的唯一签名算法(从技术上讲这并不坏,但需要注意),即椭圆曲线数字签名算法(ECDSA)。两种账户类型在设计灵活性方面也受到限制,特别是当这些操作涉及多种交易或账户之间的复杂交互时,尤其是如果这些操作涉及不同类型的账户。两种账户还必须以区块链的原生代币(例如,以太币)支付 gas 费用。
现在让我们来谈谈 ERC-4337,它有助于解决其中的一些限制。
ERC-4337,也称为使用替代内存池的账户抽象,是一个旨在解决上述挑战的 EIP 草案。然而,ERC-4337 并不是第一个试图解决这些挑战的 EIP。它最早在 2016 年通过 EIP-86(交易来源和签名的抽象)引起关注,然后在 2020 年再次通过 EIP-2938 和 EIP-3074 引起关注。可以说,开发者们自以太坊早期以来一直在尝试解决这个问题,但大多数这些 EIP 都需要对以太坊协议进行核心更改,因此未能成功。
账户抽象,即 ERC-4337,是一种解决当前以太坊钱包用户体验的新方法。账户抽象充当“智能合约钱包”,用户可以在不拥有自己的私钥或无需维护以太币以支付交易费用的情况下与以太坊网络进行交互。它使用替代内存池(也称为 Alt Mempool)设计来接受和解释消息(我们稍后会详细讨论)以促进这些交易。
账户抽象打开了以下大门:
现在我们对 ERC-4337 有了一个高层次的理解,让我们深入了解其细节。
现在让我们更深入地了解 ERC-4337 的关键组件:
总之,ERC-4337 标准为以太坊架构引入了几个新组件,每个组件在交易过程中都扮演着重要角色。
在本指南中,我们深入探讨了账户抽象的世界,特别是关注了 ERC-4337,这是一个旨在增强钱包用户体验的以太坊改进提案(EIP)。我们了解了目前使用的以太坊账户类型、它们面临的挑战以及 ERC-4337 计划如何解决这些问题。请继续关注本账户抽象和 ERC-4337 系列的第二部分,我们将向你展示如何创建和部署符合 ERC-4337 标准的智能合约。
我们很乐意了解你在构建什么以及你计划如何将 ERC-4337 用于你的项目。请在 Discord 上给我们留言,或在 Twitter 上关注我们,以获取所有最新信息!
如果你有任何反馈或新主题的请求,请告诉我们。我们很乐意听取你的意见。
- 原文链接: quicknode.com/guides/eth...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!