来源:MetaCat
EIP-3074 被批准在下一个以太坊硬分叉(Prague)中上线。这个 EIP 将永远改变用户在 EVM 链上交互的方式,使钱包用户体验更简单、更便宜、更强大。以下是 EIP-3074 的概述以及它将如何改变游戏规则:
3074 的 TLDR 是它赋予 EOA(普通钱包)智能合约功能(如账户抽象)。这包括:进行单次交易批准、批量交易、钱包资产恢复、赞助交易(sponsored txs)等的能力。我们首先来谈谈现在钱包的问题。
下图是钱包用户体验问题的列表,它们可以通过智能合约钱包来解决,但这将迫使用户不得不迁移钱包,这会带来糟糕的用户体验并且需要花费 gas。
这显然不是最好的方案。
那么我们如何将现有的 EOA 钱包变成智能合约钱包呢?
通过添加两个新的操作码(计算机指令):AUTH 和 AUTHCALL。这两个操作码协同工作,允许智能合约代表 EOA 行事。以下是关于它们如何工作的快速概述(如果不感兴趣就跳过)。
AUTH 获取用户的签名和预期操作,并验证其签名是否正确。它设置一个变量来说明 txn 的原始地址。
AUTHCALL 然后使用发起者地址作为调用者而不是实际的 msg.sender 来调用目标合约。
这就是 EIP-3074 的工作原理:
- 用户签署一条消息(链外,不是交易)
- 用户或发起人将消息作为交易发送到调用者合约
- 调用者(Invoker)使用 AUTH 和 AUTHCALL 来验证并调用每个目标合约,并以用户的地址作为发送者。
我们从这个新的交易流程中获得了一些解锁。
解锁#1 是可以赞助交易(sponsored tx)。假设 Bob 的钱包里没有任何 ETH。应用程序可以为 Bob 的交易提供 Gas,而不需要 Bob 购买/桥接 ETH。这对于获得小额支付大规模采用的意义可能是巨大的。
解锁 #2 是在一次交易中执行多个操作的能力。现在,为了在 Uniswap 上交换代币,你必须首先批准 Uniswap 使用你的代币,然后再运行实际的交换。用户体验不是很好。使用 EIP-3074,这两个操作可以压缩到单个交易中。
解锁#3 是资产追回。可以设置一个特殊的调用者合约,以便你在丢失私钥时可以使用社交恢复来恢复资产。如果满足社交恢复条件,则可以向调用者提交签名以转移资产。
我们应该认识到 EIP-3074 有几个缺点。
最大的一个缺点是关于调用者(Invokers),这些调用者需要经过全面审核、不可升级且免信任,否则用户的资金很容易被盗。
此外,某些现有的重入检查可能不适用于 EIP-3074。
由于 EIP-3074 添加了两个新的操作码,因此需要硬分叉来添加此更改。这就是 EIP-3074 被推迟以及 ERC-4337 被首先采用的部分原因。ERC-4337(账户抽象)不需要硬分叉,纯粹是合约和链下系统的改变。
今天(2024年4月12日)的核心开发执行情况总结如下:
- EIP-3074 将包含在以太坊 Pectra 硬分叉中。
非常感谢 @lightclients ,EIP-3074 作者之一,多年来一直在推动这个 EIP。
要了解有关 EIP-3074 的更多信息,你可以在此处找到完整的 EIP:
https://eips.ethereum.org/EIPS/eip-3074
此外,来自 @lightclients 的演讲非常深入,可以帮助我们更好地理解 EIP-3074:
https://www.youtube.com/watch?v=AffftIs6XFE
总结:EIP-3074 将简化、保护链上交互并降低 gas 费。EVM 即将推出两个新的操作码,它们将增强 EOA 的能力,并使它们几乎可以当作智能合约钱包来用。