2025-07-16 02:49:01

全面解读EIP-7702及其对智能账户钱包生态的深远影响

摘要
EIP-7702 通过临时赋予 EOA 智能合约功能,解决了 EOA 的局限性,本文为大家带来的是即将在以太坊下一个重要
EIP-7702 通过临时赋予 EOA 智能合约功能,解决了 EOA 的局限性,本文为大家带来的是即将在以太坊下一个重要升级中激活的 EIP-7702 提案,并探讨该EIP-7702提案对智能账户钱包带来的影响,并探讨相应的安全性问题和解决方案
目录
  • 什么是 EIP-7702?
  • EIP-7702 如何运作?
    • 交易准备
    • 授权
    • 执行
    • 撤销
  • 场景类比
    • EIP-7702 的优势
      • 证券型
      • 灵活性
      • 推动智能钱包的普及
    • EOA 私钥的新角色
      • 账户下关键数据的存储
      • 新的账户控制模式
    • 简洁与强大并存
      • 1、批量调用合约
      • 2、Gas 抽象
      • 3、利用会话(Session) 来实现账户资产访问权限的下放与隔离
      • 4、在“优化 Gas 开销”上的考量
    • 总结

      预计于今年 4 月到来的以太坊 Pectra 升级,将成为以太坊生态的又一个重要里程碑。作为智能合约开发者,我们对本次升级中即将激活的 EIP-7702 提案充满期待。EIP-7702 定义了一种全新的交易类型,即 “Set Code 交易”。通过该交易,用户可以将任意智能合约的执行逻辑 “映射” 到外部账户(EOA)上。

      这意味着,用户只需通过签署一个 Set Code 交易,便能使现有的 EOA 账户不仅具备智能合约的执行逻辑,同时也保留原有的 EOA 特性(例如通过私钥签名交易)。这项升级是实现以太坊 “终极账户抽象” 目标的重要一步,将极大地促进智能账户的广泛应用。

      在接下来的一系列文章中,我们将从开发者的视角出发,围绕以下几个方面深入分析 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 永久变更而可能带来的安全风险。

      EOA 私钥的新角色

      在 EOA 被赋予智能合约逻辑成为 Smart Account 后,其私钥即成为账户的“超级管理员”,具有两项关键权限:

      • 使用私钥签名,可以吊销或更改映射到该账户的智能合约,从而改变账户的执行逻辑;

      • 使用私钥签名,可以直接转移账户下的 Eth 或 ERC20 代币,绕过合约逻辑设置的限制。

      此时,账户中的资产将拥有两个“管理员”:新增的智能合约逻辑以及原有的私钥,而私钥拥有更高权限。这随之带来了两个重要的考量:

      账户下关键数据的存储

      由于映射的智能合约逻辑可随时更换,第一个需要解决的问题就是如何处理账户已有的关键数据和合约状态。新合约可能读取或覆盖任何旧合约的数据,这会产生 “存储冲突” 的风险。

      也许开发人员会认为 “存储冲突” 并非一个难以解决的问题,因为在开发“可升级合约”时,有很多范式可以很好的避免这个问题,比如我们可以使用 ERC-7201 或者类似的方法,使用存储命名空间来避免冲撞。但我们要强调的是,“切换账户代码” 和 “升级账户合约” 的本质不同。升级合约通常是在可信、相同的钱包服务供应商代码上进行功能迭代,信任链清晰;而切换账户代码则可能涉及不同甚至恶意的钱包供应商,因此仅防止存储冲突是不够的,还需要深入考虑如何防范恶意代码对账户关键数据的针对性破坏。

      我们对如何解决此问题有一些自己的设想和方案,将在后续文章中详细讨论。

      新的账户控制模式

      “无钥即无币”(Not Your Keys, Not Your Coins) 是加密行业广泛流传的安全原则。在自托管的需求下,使用硬件冷钱包来保存私钥则是一个良好的安全实践,但这同时也使交易签名变得复杂,用户需随身携带硬件设备,这让许多用户感到不便。

      在 7702 升级之后,我们有了一个全新的账户控制方式:用户可以将拥有“超级权限”的私钥放置在硬件冷钱包中,同时使用基于合约逻辑的 “分级权限” 来控制账户上的资产,这样一来,用户不仅拥有了更佳的安全实践,同时也平衡了良好的钱包使用体验。

      简洁与强大并存

      7702 是一次对 EOA 的升级,“原生EOA” 所具有的功能在变成 “7702-EOA” 后保持不变。我们预测,对于已拥有 EOA 的用户,在多数场景下仍会按照原有方式使用钱包,但在某些“原生 EOA” 无法实现的特殊场景下,“7702-EOA” 将提供更好的使用体验:

      1、批量调用合约

      习惯使用 DEX 来做链上交易的 EOA 用户可能会感受到,当前的使用体验并不十分理想,因为必须发送 approve 和 swap 两笔交易才能实现代币兑换,这不仅需要支付更多的 gas,而且有时还可能会因为 approve 交易的延迟而导致币对的价格滑点增加。

      “7702-EOA” 则允许通过合约调用的批量处理,将 approve 和 swap 合并为单笔交易,从而大幅节省 gas 支出。我们有一个通过批量调用合约以大幅节省 gas 的成功案例,将在后续文章中分享相关的统计数据和优化成果。

      2、Gas 抽象

      在“原生 EOA”中,账户需拥有足够原生代币支付 gas,才能发起转账。这往往导致初次使用EOA的用户面临因原生代币不足而无法转账 ERC-20 代币的尴尬。“7702-EOA” 可以通过Gas 抽象实现由第三方替用户发起交易并支付 gas。 这种 gas 代付的过程可以是无偿或者有偿的,用户和第三方可灵活决定费用结算方式(使用原生代币、ERC-20 代币或是法币),这极大优化了链上交易体验。

      3、利用会话(Session) 来实现账户资产访问权限的下放与隔离

      在 “7702-EOA” 上用户可以通过签署 “会话(Session)” 来灵活的实现账户资产访问权限的下放与隔离。用户可以在每个会话里加入精细的控制条件如:有效时间、资产类别、访问者地址和数量等限制。

      会话能在保障账户安全的前提下提供便捷的权限管理,适用于定期转账或授权 dApp 进行定投等多种场景。

      4、在“优化 Gas 开销”上的考量

      虽然优化 Gas 开销并非 7702 本身功能,但是我们仍然想要在接下来的文章里把它提出来讨论。因为我们知道,最小化 gas 开销是推进大面积采用的关键,绝大部分用户对交易成本敏感,如果合约账户会消耗过高的 gas,许多用户将会放弃使用合约而继续停留在 “原生EOA” 账户的生态之中。

      在后续的文章里,我们将讨论如何设计 7702 账户合约以及相应钱包服务,在保证最小化 gas 成本的前提下实现上文提到的强大功能,以推动智能账户的广泛采用。

      总结

      EIP-7702 标志着以太坊生态对账户概念的重大转变,它弥合了 EOA 与智能账户之间的差距。我们的观点是,理想的智能账户应在复杂性和功能性之间取得平衡——简洁而强大。合约批量调用、Gas 抽象、基于会话的权限管理和 Gas 优化等特性,不仅使“7702-EOA”更加实用,也使其成为 “原生EOA” 的有力替代。同时,谨慎的存储管理和精细的账户控制模式对维持安全性、防止滥用也至关重要。

      我们的最终目标是为习惯使用 EOA 的用户提供一个平滑的过渡路径,并在相应场景下释放智能账户的全部优势。本系列的后续文章将深入探讨以上提到的特性,以及我们对相关权衡取舍的看法。

      以上就是以太坊EIP-7702提案是什么?EIP-7702对智能账户钱包带来的影响的详细内容,更多关于EIP-7702的资料请关注开拓者奇点其它相关文章!

      声明:文章不代表开拓者奇点观点及立场,不构成本平台任何投资建议。投资决策需建立在独立思考之上,本文内容仅供参考,风险自担!转载请注明出处!侵权必究!
      热门新闻
      热门百科
      回顶部