EIP-7702

中阶

什么是 EIP-7702?

EIP-7702 是一项旨在增强外部账户 (EOA) 功能的提案。EOA 是以太坊网络中的基础账户类型,能够发送交易并与智能合约进行交互。然而,EOA 缺乏某些加密货币钱包所具备的功能,例如交易批处理和 Gas 费赞助等。
EIP-7702 旨在让 EOA 在单笔交易中临时具备类似智能合约账户的功能,从而支持通常由智能合约钱包才能完成的操作。该提案旨在弥补 EIP-3074 的局限性,并解决一些备受争议的问题。

虽然 EIP-7702 目前尚未上线,但已获得社区的广泛支持,许多人认为它有潜力取代 EIP-3074 提案。如果这成为现实,EIP-7702 将有望在计划于 2024 年底进行的以太坊 Pectra 升级中实施。

EIP-7702 如何运作?

EIP-7702 在以太坊网络中引入了一种全新的交易方式,其中包含一个名为 contract_code 的特殊字段。通过这一字段,EOA 在交易期间可以暂时拥有部分智能合约的属性。让我们了解一下它的运作原理。

交易准备

用户需要先为交易做好准备,提供一些常见信息,例如目标地址、Gas 费限额以及需要发送的数据等。此外,还需要在 contract_code 字段中加入一段特殊的智能合约代码,该代码定义了将临时赋予 EOA 的智能合约功能。

授权

用户需要对交易进行签名,该签名至关重要,用于验证交易并包含授权列表。该列表详细说明了 contract_code 的内容及其执行条件,实际上是在验证并授权临时将智能合约代码分配给 EOA。

执行

交易提交到以太坊网络后,系统会临时将指定的 contract_code 分配给 EOA,用于处理交易。在此阶段,EOA 能够利用 contract_code 提供的功能,以类似智能合约的方式处理交易。

撤销

交易完成后,以太坊网络会自动从 EOA 中移除临时的 contract_code,使其恢复到原始状态,失去临时智能合约功能。

场景类比

假设 Bob 是一名送货司机,他驾驶一辆普通汽车,只能运输小型包裹。有一天,他接到一个配送大型包裹的请求。Bob 并未拒绝订单,而是临时租用一个货箱挂在车上。完成配送后,Bob 将货箱归还给租赁店,继续驾驶他的普通汽车。

在这个类比中:

  • 普通汽车代表 EOA;

  • 临时货箱对应提供额外功能的 contract_code
  • 配送过程类似于交易;

  • 货箱的租借与归还体现了 contract_code 的临时性,仅在交易期间有效。

EIP-7702 的优势

证券型

通过在交易完成后自动删除临时的 contract_code,EIP-7702 有效降低了未经授权操作的风险。这确保了额外功能仅在交易过程中有效,从而减少潜在漏洞的可能性。

灵活性

EIP-7702 将支持多种应用,例如交易批处理,可将多个操作合并为一笔交易。同时,它还支持 Gas 费赞助,使一个账户能够代替另一个账户支付交易手续费。

推动智能钱包的普及

通过暂时为 EOA 赋予智能合约功能,EIP-7702 能够推动智能钱包功能的应用,同时避免了因 EOA 永久变更而可能带来的安全风险。

结论

EIP-7702 通过临时赋予 EOA 智能合约功能,解决了 EOA 的局限性。该提案将智能合约功能的有效性严格限定在单笔交易内,显著提升了安全性。此外,它还支持交易批处理、Gas 费赞助等功能,实现了更高的灵活性。

尽管 EIP-7702 的前景尚不明朗,但它已获得广泛支持,极有可能被纳入计划于 2024 年底进行的以太坊 Pectra 升级中。