一文读懂 Vitalik 的 EIP-7702 新提案:账户抽象的终极药方?
涉 3074、4337、5003 这 3 个账户抽象既往提案,或彻底改变所有人与 Web3 的交互方式。
撰文: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 「转换」 到智能合约账户;
EIP-3074 + EIP-5003 的一个大问题是它与通过 EIP-4337 的当前账户抽象方案不太兼容,所以以太坊社区的一些人担心我们会通过这两种类型的账户抽象「创建两个独立的代码生态系统」。
EIP-7702
这就到了 Vitalik Buterin 今天的提议:EIP-7702——他提议修改 EIP-3074,使其更精简并与 EIP-4337 更兼容,这样我们就不会最终得到两个独立的账户抽象生态系统,还将 EIP-5003 视为永久迁移的下一步。
EIP-7702 提出了一种同时接受 contract_code 和签名字段的新交易类型,在开始执行交易时,它将签名者账户的合约代码设置为 contract_code。在交易结束时,它会将代码重新设置为空。
这和 EIP-3074 一样,实现了 EOA 对智能合约的临时委托功能。然而 EIP-7702 并没有引入新的操作码(这需要硬分叉),而是定义了要调用的函数:
-
AUTH -> 调用「verify」(验证)
-
AUTHCALL -> 调用「execute」(执行)
具体来说,它:
-
检查你的账户合约代码是否为空;
-
如果为空,则设置为提供的合约代码;
-
根据提供的智能合约处理交易的方式执行交易;
-
将账户合约代码设置恢复为空;
「合约代码」 就是字面意思,智能合约的代码就存储在「合约代码」中。由于 EOA 本身不是合约,所以这个字段通常是空的。然而 EIP-7702 的巧妙之处在于,它会在交易执行期间临时将一些智能合约代码填充到该字段中。
这是一种为您的 EOA 提供新行为(代码形式)的方式,用于执行此特定交易,下一步是使之成为永久性的行为改变,只需选择「在交易结束后不将代码设置为空」。
该提案最棒的一点之一是,它与迄今为止为 EIP-4337 构建的所有账户抽象工作高度兼容,「用户需要签名的合约代码实际上可以是现有的 EIP-4337 钱包代码」。
一旦此项改动生效,用户现有的 EOA 就可以执行任何智能合约代码。通过额外的 EIP,EOA 还可以永久升级以运行特定的代码。
假以时日,这可能会彻底改变我们所有人与 Web3 应用的交互方式。
比推快讯
更多 >>- COPA诉Craig Wright裁决已公布,后者对法院反复撒谎
- OKX Ventures宣布战略投资比特币Layer 2网络Bitlayer
- Skybridge Capital创始人:如果不做多比特币,就是做空比特币
- 币安Web3钱包推出Yield Plus和Simple Yield收益模式
- Genesis发布索赔比例,账户金额超1000万美元的索赔率在97-110%之间
- Aave社区初步通过“在Celo上部署Aave V3”提案
- Telegram创始人:已收到Notcoin代币捐款,收益达100倍后将用于购买更多服务器
- 以太坊现货ETF获批关键一票或将来自Gary Gensler
- Pitchbook分析师:今年晚些时候加密行业合并将大幅增加,尤其是在交易所、托管方等领域
- 10x Research:比特币若能突破67,500或将创下历史新高
- Coinbase:加密货币市场即将到来的主要催化剂或由监管驱动
- 衍生品交易平台Hyperliquid L1将支持原生EVM
- Magic Eden疑似利用Coinbase为其处理小额输出,以减少麻烦并节省整合成本
- 以太坊基金会核心研究员:若EigenLayer发展方向与以太坊利益相悖,将随时准备终止顾问职位
- 数据:价值约13亿美元的代币将于下周解锁,其中PYTH约占9.43亿美元
- 彭博社:加密行业已为2024年美国大选捐款9400万美元,创历史最高纪录
- Ripple Q1 XRP市场报告:链上交易量增长 108%,每笔交易的平均成本下降 45%
- IntoTheBlock:持有超1000枚BTC的地址余额已接近FTX破产前水平
- NFT借贷平台Blend总交易额超60亿美元
- Anchorage Digital向Cumberland DRW转移1000万枚ARB
- Tether CEO:Tether或投入大量资源建立基于Holepunch技术的P2P金融市场终端
- 区块链游戏 4 月份融资额达到 9.9 亿美元,创2021年1月以来新高
- Core基金会推出500万美元基金,以支持创新区块链项目
- Genesis获批以现金和加密货币的形式向客户偿还30亿美元
- 彭博社:多个基金公司预计下周SEC不会批准以太坊现货ETF
- Vitalik Buterin:区块链社区扩展应着眼于更广泛的外部领域
比推专栏
更多 >>观点
项目
比推热门文章
- COPA诉Craig Wright裁决已公布,后者对法院反复撒谎
- OKX Ventures宣布战略投资比特币Layer 2网络Bitlayer
- Skybridge Capital创始人:如果不做多比特币,就是做空比特币
- 币安Web3钱包推出Yield Plus和Simple Yield收益模式
- Genesis发布索赔比例,账户金额超1000万美元的索赔率在97-110%之间
- Aave社区初步通过“在Celo上部署Aave V3”提案
- Telegram创始人:已收到Notcoin代币捐款,收益达100倍后将用于购买更多服务器
- 以太坊现货ETF获批关键一票或将来自Gary Gensler
- Pitchbook分析师:今年晚些时候加密行业合并将大幅增加,尤其是在交易所、托管方等领域
- 10x Research:比特币若能突破67,500或将创下历史新高