深入理解EigenLayer的Inters
一文读懂Vitalik的EIP-7702新提案:账户抽象的终极药方?
原文作者:Jarrod Watts
原文编译:Frank,Foresight News
Vitalik Buterin 最新提出了 EIP-7702 提案,这可能是以太坊历史上影响最大的变化之一,本文就将介绍该新提案的有关工作原理以及实现其所需要了解的一切。
首先,EIP-7702 新提案出奇地简短,这让部分人感到困惑,不知道它到底如何运作,为了理解 7702 ,我们首先要了解其中提到的另外三个提案:
EIP-4337
EIP-3074
EIP-5003
让我们从所有这些提案的共同目标「账户抽象」说起——以太坊上的 EOA(「普通」账户)很糟糕,它们风险很大,功能非常有限,而账户抽象则允许用户使用智能合约作为账户,以添加更多功能和安全性来解决这个问题。
EIP-4337
EIP-4337 于 2023 年 3 月在主网上线,它允许用像账户一样编写智能合约,以便它们可以验证和执行交易,这改进了许多用户体验(UX)。
自发布以来,EIP-4337 得到了广泛的采用,主要由 Polygon 主导,而 Base 在过去几个月中的相关活动也在增多。
EIP-4337 相关的最新创新来自 Coinbase 生态及 Coinbase 智能钱包,它基于生物识别技术,用户体验非常棒,我曾在上周末于 ETH Global Sydney 制作了另一个小型演示来展示这一点。
那么 EIP-4337 存在什么问题?为什么今天又有另一个帐户抽象提案?因为 EOA 仍然是迄今为止使用最广泛的账户类型。
除此之外,大多数 EIP-4337 的智能合约账户都由单个 EOA 签署者控制,下面是示例代码:
因为无法将用户的 EOA「转换」为智能合约账户,所以有这个奇怪的中间步骤解决方案——主要是由于 Web3 应用缺乏对连接智能合约账户的原生支持,如今大多数人仍通过 MetaMask 等插件钱包使用 EOA。
EIP-3074
这引出了我们的下一个提案:EIP-3074 。
实际上,这个提案是在 EIP-4337 之前提出的,但是它尚未合并到主网,EIP-3074 试图赋予 EOA 更多权力,允许他们将其 EOA 的控制权委托给智能合约。
该提案概述了以下内容,添加两个新的操作码:
AUTH:EOA 可以调用 AUTH 来授权给定的智能合约代表其 EOA 执行操作;
AUTHCALL:获得授权的智能合约可以使用 AUTHCALL 为 EOA 执行交易;
这实现了与 EIP-4337 许多相同的用例,而无需每个用户部署新的智能合约。一个关键的区别在于交易来自用户的 EOA,而不是一个没有用户任何帐户历史记录、ETH、NFT、代币等的新合约。
对 EIP-3074 的一个常见反应是「如果有人制定恶意合约并且用户委托给他们怎么办?」,毕竟委托给恶意合约可能会导致用户的钱包里的所有加密资产都被抽走。
解决这个问题的方法是钱包服务提供商甚至不允许用户对任何合约进行授权,他们可能会保留一份用户可以委托授权的智能合约白名单列表,并且此列表之外的任何合约都不会显示给用户。
EIP-3074 委托的一个关键点是委托并非永久性的,「EOA 的单个交易会导致 nonce 增加,从而使未完成的授权失效」。
实质上,在用户进行新交易后,委托将不再有效。
EIP-5003
我们也确实不想赋予 EOA 更多权力。毕竟,这些提案的目标是将用户从 EOA 转移到智能合约账户,那么我们为什么要向 EOA 添加功能呢?
这很好地引出了我们的下一个提案:EIP-5003 。EIP-5003 添加了另一个操作码「AUTHUSURP」,它将代码部署在 EIP-3074 授权地址。
EIP-3074 和 EIP-5003 两者的区别在于:
EIP-3074 是对智能合约的临时委托,可撤销;
EIP-5003 是从 EOA 永久迁移并从 EOA 「转换」 到智能合约账户;