# 释放钱包潜力：探索 EVM 账户抽象 (EIP-4337)


By [link3t0.eth](https://paragraph.com/@link3t0) · 2023-03-17

---

前言 EIP-4337是一个实现账户抽象的智能合约钱包解决方案。账户抽象的目的是允许用户使用一个地址，在这种情况下是智能合约钱包的地址，与区块链进行交互，而不管交易验证逻辑如何。作为一个纯粹的基于智能合约的解决方案，该协议既没有引入共识层的变化，也没有引入 EVM 相关的变化。通过将链下协议与一些链上智能合约相加，EIP-4337 在很大程度上被视为最可行的账户抽象方式对于以太坊。在这个 EIP 中，引入了很多角色和合约，例如 Bundler、EntryPoint、Paymaster 和 Aggregator。如此多的片段相互作用，加上深奥的 EIP 本身，理解整个画面变得非常具有挑战性。已经有很多写得很好的文章以自上而下的方式解释 EIP-4337。在这里，我们将采用不同的方法。

EIP-4337 提出每个用户账户都是一个智能合约，这与我们自己的解决方案Blocto 的 EVM 上的合约钱包几乎相同。事实上，Blocto 和 EIP-4337 方法之间有一些共同的概念，因为我们本质上是一个基于用户电子邮件地址的抽象钱包，支持赞助交易。我们将以合约钱包为切入点，审视Blocto生态系统，考虑EIP-4337的动机，并提出EIP-4337中的部分及其背后相应的设计目标。

在本文中，我们旨在描述 EIP-4337 中每个组件的定性目标。虽然我们不会详细介绍接口规范、量化分析等技术细节，但总体目标是提供一个自下而上的思维路径来构建 EIP-4337 账户抽象。因此，本文只需要有关区块链、EVM 和合约钱包的非常基础的知识。

EIP-4337 的动机 帐户抽象 这是整个事情的关键目标。账户抽象是让用户使用一个抽象的钱包，这里是智能合约钱包，也就是做以下事情

使用任意验证和恢复功能，例如多重签名、社交恢复等。 完全消除用户拥有 EOA 钱包的任何需要 权力下放 去中心化是区块链技术的核心价值之一。与权力下放的等效声明是避免对参与任何操作的大多数（如果不是全部）各方的信任假设。EIP-4337作为一个社区驱动的提案，继承了信念，试图构建一个去信任的账户抽象标准。

赞助交易 Web3 本身在新用户入职方面仍然面临着巨大的挑战。在使用 dApp 之前必须先拥有加密货币作为燃料，这对新用户来说可能是一个巨大的障碍。一些 dApp 甚至不要求用户在整个产品生命周期中拥有 gas，同时仍然利用区块链系统的基础设施，例如为游戏中的物品发行 NFT。还有一些保护隐私的应用程序，例如混合器，用户可能希望在其中与来自普通地址的合约进行交互，即使根本没有任何气体。

提示：合约钱包还不够吗？ 乍一看，Blocto Wallet on EVM 已经是一个账户抽象的解决方案。用户通过签名将离线交易意图发送到Blocto服务器，Blocto服务器将实际交易发送到合约钱包，通过元交易调用原始意图。元交易方法允许我们用任意货币为我们的用户支付汽油费，即使他们的账户下没有资产。我们采用混合托管密钥管理模型来平衡用户体验和恶意操作者的风险。

这听起来像是一个非常可靠的方法，对吧？但光是好还不够。

中心化的部分——交易中继器 尽管所有交易都是在发送到交易中继器（在我们的例子中是 Blocto 服务器）之前从用户设备签署的，然后提交到区块链，但它们仍然受到中心化中继器的很大影响。服务器可能会停止服务，给用户管理他们的钱包和资产带来麻烦。像 Blocto Wallet 这样的合约钱包即使中继者是恶意的也不会被破坏或锁定，因为它通常实现链上验证和恢复逻辑。然而，如果中继器挂了，对用户来说仍然是一场灾难——整个合约钱包系统突然退回到 EOA 式的运行模式，没有费用补贴，用户体验更差。EIP-4337 的目标之一是消除对交易中继器或所谓的信任假设，打包机。

Bundler - 去中心化交易中继器 暂时忽略“捆绑”的概念，捆绑器本质上是一组去中心化的交易中继器。它们以与区块链节点接受用户交易相同的方式离线接受用户的意图，或者更具体地说是UserOperationEIP-4337 术语中的（用户操作），并将它们提交到区块链。通过这种方式，我们可以避免整个钱包系统因中心化交易中继器而停止服务作为单点故障。

---

*Originally published on [link3t0.eth](https://paragraph.com/@link3t0/evm-eip-4337)*
