文章介绍了以太坊账户抽象(AA)的最新进展,特别是EIP-8141 "Frame Transactions" 的核心概念及其在多签、可变密钥、支付Gas代币、隐私协议等场景的应用。它解决了AA的剩余问题,并强调了无需中介的密码朋克原则,有望在一年内通过Hegota硬分叉实现。
现在,账户抽象。自2016年初以来,我们一直在讨论账户抽象,请参阅最初的 EIP-86 ) 。现在,我们终于有了 EIP-8141 ,这是一个综合提案,它总结并解决了 AA 旨在解决的每个遗留问题(乃至更多)。让我们再次谈谈它做了什么。
“帧交易”这个概念,在保持高度通用性的同时,也尽可能地简单。一个交易是 N 个调用,这些调用可以相互读取 calldata,并且能够授权发送者和授权 Gas 支付者。在协议层,仅此而已。现在,让我们看看如何使用它。
首先,一个“来自普通账户的普通交易”(例如,多重签名账户,或拥有可变密钥的账户,或采用抗量子签名方案的账户)。这将有两个帧:
如果账户尚不存在,那么你会在前面添加另一个帧,“部署”,它会调用一个代理来创建合约(EIP-7997 https://ethereum-magicians.org/t/eip-7997-deterministic-factory-predeploy/24998… 对此很有用,因为它还会让合约地址在不同链之间保持可靠的一致性)。
现在,假设你想用 RAI 支付 Gas。你使用一个 Paymaster 合约,这是一个专用链上 DEX,它实时提供 ETH。交易帧如下:
现在,隐私协议。这里有两种策略。首先,我们可以有一个 Paymaster 合约,它检查有效的 ZK-SNARK,如果看到则支付 Gas。其次,我们可以添加 2D nonces (参见 https://docs.erc4337.io/core-standards/rip-7712.html… ),这允许单个账户作为隐私协议运行,并并行接收来自许多用户的交易。基本上,该机制极其灵活,并解决了所有用例。
但它安全吗?在链上层面,是的,显然如此:一个交易只有在包含一个验证帧,且该帧返回带有支付 Gas 标志的 ACCEPT 时,才有效并可被包含。更具挑战性的问题在于内存池层面。如果一个交易包含一个首先调用 10000 个账户并在其中任何一个值不同时拒绝的帧,那么这无法安全地广播。但上面所有的例子都可以。这里有一个与比特币中“标准交易”类似的概念,即链本身只强制执行一套非常有限的规则,但在内存池层有更多的规则。有一些特定的规则集(例如,“验证帧必须在执行帧之前,并且不能调用外部合约”)已知是安全的,但有局限性。对于 Paymaster,已经深入思考了一种质押机制,以一种非常通用的方式限制 DoS 攻击。
实际上,当 8141 推出时,内存池规则将非常保守,并且会有第二个可选的、更激进的内存池。前者将随着时间的推移而扩展。对于隐私协议用户,这意味着我们可以完全移除 railgun/PP/TC 中导致巨大用户体验痛点的“公共广播者”,并用一个通用公共内存池取而代之。
对于抗量子签名,我们还必须解决一个问题:效率。以下是关于我们为此提出的想法的帖子:https://firefly.social/post/lens/1gfeyxjzsajqk845t3h… https://firefly.social/post/x/2027405623189803453…
AA 还与 FOCIL 高度互补:FOCIL 确保交易的快速包含保证,而 AA 确保人们想要进行的所有更复杂的操作实际上可以直接作为一等公民交易进行。
另一个有趣的话题是 8141 中的 EOA 兼容性。这正在讨论中,原则上是可能的,因此所有账户(包括现有账户)都可以纳入相同的框架,并获得进行批量操作、交易赞助等的能力,所有这些都作为充分受益于 FOCIL 的一等公民交易。
最后,经过十多年的研究和这些技术的完善,这一切看起来都有可能在一年内实现(Hegota 硬分叉)。https://firefly.social/post/bsky/qmajrxvehl6ss6w2h4uuv5bg_3mftz4rccp22b…
[
- 原文链接: x.com/vitalikbuterin/sta...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!