EIP-3074确定纳入布拉格升级,以太坊的下一步是什么?
原文作者:Mocaverse 顾问 cygaar
编译:Odaily 星球日报 Azuma
编者按:当地时间 4 月 12 日,以太坊核心开发者执行会议(ACDE)第 185 次会议召开,会议继续讨论了以太坊后续两次大版本升级(布拉格升级、大阪升级)的内容规划。本次会议中最重要的一项成果为,关于为普通地址添加智能合约功能的 EIP-3074 已被确定将纳入布拉格升级。
以下为 Mocaverse 顾问 cygaar 就 EIP-3074 的效用及意义所做的分析,内容由 Odaily 星球日报编译。
EIP-3074 刚刚已获批,将在以太坊的下一次硬分叉升级( Pectra,即布拉格升级)中激活。
该项 EIP 有望永久性地改变用户在 EVM 链上的互动方式,让钱包端的用户体验更加简洁、便宜、丰富。以下内容为对 EIP-3074 的简要概述,以及对它究竟将如何改变现有规则的剖析。
如果用一句话来概述 EIP-3074 的功能,那就是它将赋予普通的 EOA 地址(即我们最常用的钱包地址)智能合约的功能,包括批量交易、钱包资产恢复、费用(gas)资助、对单笔交易进行授权等等。
首先,让我们谈谈当前普通钱包所存在的问题。
@lightclients 曾就 EIP-3074 做过精采的分析,这里我就直接引用他们的 PPT 了。如下图所示,以下是当前普通钱包所面临的一些用户体验问题。
-
授权代币时一笔一笔进行交易;
-
所有操作往往都会与交易一对一关联;
-
没有针对丢失私钥的防护措施;
-
没有 ETH 就无法执行交易……
上述问题都可以通过智能合约钱包来解决,但这会迫使用户进行地址迁移,从而带来糟糕的用户体验 ,且链上迁徙会消耗大量的成本。所以这并不是一个好方案。
那么我们该如何给现有的普通地址赋予智能合约功能呢?
答案是通过增加 AUTH、AUTHCALL 等两个新的操作码(计算机指令)来实现新功能,这两个操作码将协同工作,允许智能合约替代普通地址执行具体操作。
以下为 AUTH 和 AUTHCALL 操作码工作机制的简要概述。
-
AUTH 负责接受用户的签名以及预期的行动,并验证签名是否正确。它还将设置一个变量,即表明发起交易的起始地址。
-
AUTHCALL 则负责调用目标合约,并让发起交易的起始地址替代调用者地址(即真正在调用目标合约的智能合约地址)作为调用源。
以下为 EIP-3074 下的交易流程示意图。
-
用户签署一条信息(链下操作,无需消耗 gas);
-
用户或费用资助方(帮助用户支付 gas 的地址)可将该信息作为交易发送至一个调用者地址;
-
调用者地址使用 AUTH 和 AUTHCALL 来进行验证,并设置用户发起交易的起始地址作为调用源,继而调用目标合约。
通过这一全新的交易流程,我们将激活一些全新的功能。
比如第一项潜在的新功能便是可以实现“费用资助”,假设用户的钱包里没有任何 ETH,EIP-3074 之后各大应用也可以帮助用户垫付 gas,从而无需用户自己再去购买或桥接 ETH。这项功能对于以太坊朝着消费端实现大规模普及而言非常重要。
第二项潜在的新功能是在一笔交易中执行多项操作。当前,用户在 Uniswap 上某个交易某个全新代币时,必须先行授权 Uniswap 使用该代币,然后才能真正地进行交易。这个体验也很糟糕,有了 EIP-3074 之后,两项操作可以通过一笔交易直接完成。
第三项潜在的新功能是资产恢复。通过 EIP-3074 ,用户可以设置一个特殊的调用者合约,如果出现了私钥丢失情况,用户还可以使用经验证的社交媒体信息来恢复资产 —— 如果满足恢复条件,则可以向调用者合约提交签名,从原地址中转移资产。
不过,除了这些显著优势之外,EIP-3074 的出现也会造成一些新的风险点。最大的风险点来源于调用合约 —— 它必须经过全面审计、不可升级且无需信任,否则用户的资金很容易被盗。 此外,一些现有的重入检查可能也无法适用于 EIP-3074 。
由于 3074 增加了两个新操作码,因此需要进行硬分叉升级才能添加此项更新。这是 EIP-3074 被推迟至今的的部分原因,也是 ERC-4337 (关于账户抽象的资产标准)首先被采用的原因。ERC- 4337 并不需要硬分叉,因为它纯粹是智能合约以及链下系统层面的变更。
这是由 Tim Beiko 整理的 ACDE#185 的内容摘要,可以从下图看到, EIP-3074 现在被正式纳入 Pectra 硬分叉升级的范畴之内。
非常感谢 @lightclients 对于该项工作的贡献,他也是 EIP-3074 的原作者之一,多年来 @lightclients 一直致力于推动该 EIP 的落地。
如果你想进一步了解 EIP-3074 的内容,可以通过以下资料入手。
总而言之,EIP-3074 有望显著改变当前的链上交互模式。EVM 环境将迎来两个全新的操作码,它们几乎可以让普通地址作为智能合约运行。展望未来,开发者们如何利用这一模式转变将是一件非常令人兴奋的事情。