简析以太坊账户抽象提案 EIP-4337 机制设计与优缺点

百款NFT链游免费玩 数字货币支付图解教程 区块链游戏获利技巧

EIP-4337 提案目的是避免对共识层协议的更改,旨在实现帐户抽象、去中心化、无共识更改以及支付交易费用的目标。在这篇文章中我们将得到一个关于 EIP-4337 在帐户抽象中的角色的完整概念。

简析以太坊账户抽象提案EIP-4337机制设计与优缺点

EIP-4337机制设计与优缺点介绍

该提案包括一些更改,以避免对共识层协议的更改,而不是依赖于更高层的基础设施。它旨在实现以下目标:

  • 帐户抽象:允许用户使用包含任意验证逻辑的智能合约钱包,而不是 EOA 作为他们的主要帐户。
  • 去中心化:允许任何绑定者参与包含帐户抽象用户活动的过程。用户不需要知道任何参与者的直接通信地址,就可以处理跨公共内存池发生的任何活动。
  • 无共识更改:为了更快的采用,这个提议避免了共识变更。
  • 支付交易费用:使用 ERC-20 代币支付交易费用,使开发人员能够为他们的用户支付费用,以及类似 EIP-3074 的赞助交易用例。

以下是该提案中的一些新特性。所有操作都在对等内存池中进行。用户不必担心他们的钱包合约已经发布,因为钱包存在于确定性的 CREATE2 地址,如果钱包不存在,UserOperation 会自动创建它。用户现在将能够设置一个固定的费用溢价和最大总费用,并期望它能够快速包含在内并合理收费。通过模拟检查的 UserOperation 被保证是可包含的,直到发送者有另一个状态改变,这将要求攻击者为每个发送者支付 7500+ gas。

工作

用户发送 UserOperation 对象,该对象封装了用户的目的以及用于验证的签名和其他数据。利用 Flashbots 等服务的矿工或绑定者可以将 UserOperation 对象组合成单个捆绑交易,然后将其包含在以太坊区块中。绑定者为 ETH 中的捆绑交易支付成本,并通过每个单独执行 UserOperation 所支付的费用进行补偿。绑定者将使用费用优先级逻辑选择包含哪些 UserOperation 对象。

简析以太坊账户抽象提案EIP-4337机制设计与优缺点

为了简化钱包的逻辑,维护安全所需的大多数复杂智能合约逻辑都在钱包之外执行,在一个称为入口点的全局合约中执行。validateUserOp 和执行功能预计将与 门控 require(msg.sender == ENTRY POINT),这样只有可信的入口点才能触发钱包进行操作或支付费用。在使用有 calldata 的 UserOperation 验证 userop 成功之后,入口点对钱包进行任意调用,这样做是为了保护钱包免受攻击。

简析以太坊账户抽象提案EIP-4337机制设计与优缺点

如果成功模拟了 UserOperation 的验证,则保证 UserOperation 在发送方帐户的内部状态更改之前是可包含的。

发起交易

我们可以允许应用开发者代用户支付费用,并允许用户用 ERC20 代币支付费用,通过合约作为中介收取 ERC20 代币并使用 ETH 支付。

该提案可以通过付款主管机制支持上面的用例。

  • 对于用例 1:Paymaster 验证发起人的签名包含在 PaymasterData 中,表明发起人已经准备好为 UserOperation 付费。如果签名有效, Paymaster 接受,UserOperation 费用从发起人的份额中扣除。
  • 对于用例 2:Paymaster 检查发起人钱包是否有足够的 ERC20 余额来支付 UserOperation。如果是,Paymaster 接受并支付 ETH 费用,然后在 postOp 中申领 ERC20 代币。

EIP-4337机制优势

  • 验证逻辑灵活性:validateUserOp 函数添加了任意签名和随机数验证逻辑。
  • 执行逻辑灵活性:钱包将能够为执行步骤添加自定义逻辑。
  • 钱包可升级性:钱包将能够更改其公钥或升级其代码。

EIP-4337机制缺点

  • 增加 DoS 漏洞:验证逻辑比单个 ECDSA 验证更复杂。
  • 一次一个交易:帐户不能排队并将多个交易发送到 Mempool。
  • Gas 开销:与正常交易相比,更多的 gas 开销。
百款NFT链游免费玩 数字货币支付图解教程 区块链游戏获利技巧