简析以太坊 EIP-4337 提案机制设计及优缺点

EIP-4337 提案目的是避免对共识层协议的更改,旨在实现帐户抽象、去中心化、无共识更改以及支付交易费用的目标。

原文标题:《账户抽象:EIP-4337》

撰文:Yash Kamal Chaturvedi

翻译:ChinaDeFi

在这篇文章中我们将得到一个关于 EIP-4337 在帐户抽象中的角色的完整概念。

用户

介绍

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

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

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

工作

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

用户

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

用户

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

发起交易

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

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

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

优势

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

缺点

  • 增加 DoS 漏洞:验证逻辑比单个 ECDSA 验证更复杂。
  • 一次一个交易:帐户不能排队并将多个交易发送到 Mempool。
  • Gas 开销:与正常交易相比,更多的 gas 开销。

转载声明:本文 由CoinON抓取收录,观点仅代表作者本人,不代表CoinON资讯立场,CoinON不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。若以此作为投资依据,请自行承担全部责任。

声明:图文来源于网络,如有侵权请联系删除

风险提示:投资有风险,入市需谨慎。本资讯不作为投资理财建议。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 2021年10月20日 下午8:00
下一篇 2021年10月20日 下午8:00

相关推荐

简析以太坊 EIP-4337 提案机制设计及优缺点

星期三 2021-10-20 20:00:28

原文标题:《账户抽象:EIP-4337》

撰文:Yash Kamal Chaturvedi

翻译:ChinaDeFi

在这篇文章中我们将得到一个关于 EIP-4337 在帐户抽象中的角色的完整概念。

用户

介绍

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

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

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

工作

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

用户

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

用户

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

发起交易

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

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

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

优势

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

缺点

  • 增加 DoS 漏洞:验证逻辑比单个 ECDSA 验证更复杂。
  • 一次一个交易:帐户不能排队并将多个交易发送到 Mempool。
  • Gas 开销:与正常交易相比,更多的 gas 开销。