本文分析了 EIP-8141 帧交易在内存池中的三种验证策略:自中继、规范付款人支持和基于 ERC-7562 的全面支持。文章详细阐述了共用的验证规则,并权衡了不同策略在安全性、复杂度和防范 DoS 攻击方面的表现,最终推荐采用兼顾灵活性与安全性的第二种策略。
EIP-8141 frame 交易在协议层面上被有意设计得非常灵活。交易格式本身对验证和 Gas 支付逻辑的限制非常少 —— 它只是提供了原语,并将策略留给执行层。
这意味着 Mempool 在决定接受和传播哪种类型的 frame 交易时有很大的选择余地。不同的策略在简单性、安全性和无许可性之间进行权衡。本文概述了三种渐进且更具雄心的方案,每种方案都是 EIP-8141 有效的公共 Mempool 策略。
在启动时采用限制性策略是可以的。Mempool 规则稍后可以放宽。我们目前倾向于策略 2,并且在 该 PR 中有完整定义。
所有策略都使用相同的基础规则:
tx.sender。 可以调用辅助合约,但它们必须遵守相同的规则。GAS -> *CALL 模式有狭义的例外。payer_approved 变为 true,交易就被认为是可以包含的。这还额外受到 MAX_VERIFY_GAS 的限制。另一种可能性是将来允许账户白名单 —— 有了这一点,就有可能完全避免模拟并原生实现检查。目前我们仅将其作为一个想法提出,而非提案。deploy frame 进行账户部署。策略: 公共 Mempool 仅接受自筹资金的交易。
支持的前缀:
self_verifydeploy -> self_verify特性:
这更多是一种初始策略,或者是在我们打算非常保守时特别选择的。
策略: 支持自筹资金的交易,以及通过 标准规范 Paymaster 进行的赞助交易。
支持的前缀:
self_verifydeploy -> self_verifyonly_verify -> paydeploy -> only_verify -> pay运作方式:
为什么它是安全的:
特性:
这是一个功能基本齐全且带有原生赞助支持的策略。
策略: 允许任意的 Paymaster 和其他实体,并通过 质押和声誉 (staking and reputation) 进行门控。
运作方式:
特性:
这可能是后期阶段的策略,当我们需要灵活的 Paymaster 逻辑且无需对该逻辑达成共同协议时使用。
| 策略 | 替代加密算法 | 任意钱包代码 | 密钥轮换 | 批量处理 | 公共 Mempool 中的 Paymaster | 复杂度 | DoS 风险 |
|---|---|---|---|---|---|---|---|
| 1. 仅限自中继 | ✓ | ✓ | ✓ | ✓ | ✘ | 低 | 最小 |
| 2. 规范 Paymaster | ✓ | ✓ | ✓ | ✓ | ✓ (规范) | 中等 | 低 |
| 3. 完整的 ERC-7562 | ✓ | ✓ | ✓ | ✓ | ✓ (任意) | 高 | 低 |
即使是策略 1) 也能提供广泛的预期 AA 成果,包括对 PQ 加密算法的支持。这主要是一个关于 Paymaster 在公共 Mempool 中应获得多少支持以及对它们施加哪些合理约束的光谱。
从 策略 2 开始。它在以下 PR 中有详细说明:https://github.com/ethereum/EIPs/pull/11415
它保留了 EIP-8141 的主要优势 —— 自定义验证、账户部署和原生 Gas 赞助 —— 同时保持安全模型简单且可审计。策略 1 是一个非常谨慎发布时的良好后备方案。策略 3 是未来可能的扩展。
- 原文链接: hackmd.io/@matt/frame-me...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!