EIP-3074被纳入以太坊布拉格升级 三分钟读懂EIP3074

2024-04-12 17:44:01 109290

撰文:0xjs@金色财经

在2024年4月12日举行的以太坊第183次ACDE会议中,EIP-3074正式被纳入下一次以太坊硬分叉Pectra升级(简称布拉格升级)。

因此,EIP-3074得到以太坊社区关注。以太坊社区很多人认为,这个EIP将永远改变用户在EVM链上交互的方式,使钱包用户体验更简单、更便宜、更强大。

那么,什么是EIP-3074 ?

EIP-3074是什么?

一句话描述:EIP-3074本质上是将EOA的控制权委托给智能合约,包括进行单次交易批准、批量交易、钱包资产恢复、赞助交易等的能力。

EIP-3074由以太坊研究员 Sam Wilson、Go Ethereum 开发者等人提出,通过添加两个新的EVM操作码AUTH 和 AUTHCALL,来将现有的EOA变成智能合约。这两个操作码协同工作,允许智能合约代表EOA行事。

AUTH 操作码 (0xf6):此操作码允许用户通过检查 ECDSA 签名来授权特定的 EOA。签名必须使用 EOA 的私钥进行,并且需要覆盖特定的消息(提交)。 

AUTHCALL 操作码 (0xf7):此操作码允许授权的智能合约从 EOA 的帐户开始交易。它的工作原理类似于已有的 CALL 操作码,但使用授权的 EOA 作为发送者而不是合约本身。

AUTH 获取用户的签名和预期操作,并验证其签名是否正确。它设置一个变量来说明 txn 的原始地址,允许一个智能合约代表一个 EOA 执行操作,从而实现了授权控制的委托。 AUTHCALL 然后使用发起者地址作为调用者而不是实际的 msg.sender 来调用目标合约。

EIP-3074工作流程和新用例

如下: 

IjotiUlBkPqthaPCQBK80zL3IL62c92lJSPXAZcv.png

用户签署一条消息(链下,不是交易)--->用户或发起人将消息作为交易发送到调用者合约--->调用者使用 AUTH 和 AUTHCALL 来验证和调用每个目标合约用户作为发件人的地址

这个新的交易流程中获得了一些用例,例如:

用例1:赞助交易。假设Bob的钱包里没有任何 ETH。应用程序可以为 Bob 的交易提供 Gas,而不需要购买/桥接 ETH。这对于获得大规模散户采用可能是巨大的。

08gDb4S1zjst2RN5ZpDtZbOvi4754TGoZLvN8yL5.jpeg用例2:在一次交易中执行多个操作的能力。目前为了在 Uniswap 上交换代币,用户必须首先批准 Uniswap 使用自己的代币,然后再运行实际的Swap。使用EIP-3074,这两个操作可以批处理到单个交易中。

用例3:资产恢复。可以设置一个特殊的调用者合约,以便用户在丢失私钥时可以使用社交恢复来恢复资产。如果满足社交恢复条件,则可以向调用者提交签名以移动资产。

EIP-3074对以太坊意味着什么?

EIP-3074之前:智能合约要求用户在与智能合约交互时签署交易。因此,用户需要为每天执行的链上任务参与一些消息签名。

EIP-3074之后:用户可以签署一次密钥,并授予智能合约从用户的钱包签署交易的权限。用户可以使用自己的密钥签署此许可,然后就可以开始了。它将成为 web3 游戏的游戏规则改变者,用户可以在其中签署一次会话,然后玩整个游戏,而无需担心与智能合约的交互。

不同于ERC-4337在合约层面的升级,EIP-3074的优势在于从EVM指令层面进行升级,不需要特别额外设置即可让用户享受到智能合约的功能。比如上节提到的三个用例,都会大大提升以太坊用户体验。

说了那么多优点,EIP-3074缺点呢

最大一个就是调用者。调用者合约需要经过全面审核、不可升级且无需信任,否则用户的资金很容易被盗

此外,某些现有的重入检查可能不适用于 EIP-3074。

由于EIP-3074添加了两个新的操作码,因此需要硬分叉来添加此更改。这是EIP-3074被推迟以及 ERC4337 被首先采用的部分原因

而账户抽象的ERC-4337不需要硬分叉,纯粹是合约和链下系统改变。

声明:所有在本站发表的文章,本站都具有最终编辑权。本站全部作品均系微算力原创或来自网络转载,转载目的在于传递更多信息,并不代表本站赞同其观点和对其真实性负责,所产生的纠纷与本站无关。如涉及作品内容、版权和其它问题,请尽快与本站联系。

相关推荐

  • 微信:aspcool
  • QQ:580076
  • 手机:18992859886
  • 工作时间:9:00~18:00(周一至周五)