WATS Wallet logoWATS Wallet
技术6 分钟阅读

智能账户 vs EOA:以太坊钱包正在如何演变

EOA 是一对普通密钥,只有一条固定规则;智能账户的规则写在合约代码里——恢复、消费限额、批量、会话密钥,以及由 paymaster 代付的手续费。以下比较二者在成本、兼容性与托管上的差异,以及 EIP-7702 如何让同一个地址兼具两者。

EOA 与智能账户的区别在于「是什么授权了一笔交易」:外部拥有账户(EOA)是一对普通密钥,其地址处没有代码,因此该私钥的一个有效 ECDSA 签名就能执行任何操作,且手续费必须以链的原生 gas 代币支付;而智能账户的授权规则写在合约代码里,因此它可以要求多个签名者、强制执行消费限额、签发会过期的会话密钥、把多次调用打包成一个原子操作,并让一个 paymaster 来结算手续费。ERC-4337 标准让这些能力在 EVM 链上得以实现,而无需改动以太坊的底层协议。代价在于成本与覆盖面:EOA 是最便宜、最简单、被最普遍支持的选择,而智能账户增加了验证开销,并可能需要一次性部署。托管与账户类型是两个彼此独立的维度——两种模型都可以是完全非托管的——而 EIP-7702 如今让一个普通 EOA 无需更换地址即可借用智能账户的行为。WATS 热钱包正是其中一项能力的现实范例:在 EVM 链上它使用一个 ERC-4337 paymaster,因此网络费以 ATS 计价,而非各链的原生 gas 代币,且 WATS 全程保持完全非托管。

EOA 究竟是什么

外部拥有账户(EOA)是以太坊自诞生之日起就有的账户类型。它不过是一对加密密钥:一把签署交易的私钥,以及由对应公钥派生出的一个地址。谁持有私钥——通常从一段 12 或 24 词的助记词中重建——谁就完全控制该账户。地址处没有代码、没有逻辑、没有条件。协议只做一项检查:这是否是拥有该地址的那把私钥所作的有效 secp256k1 签名,且带着下一个顺序 nonce?若是,交易便执行。

那份简单正是其全部吸引力所在。EOA 便宜、被普遍支持,且在每条 EVM 链上行为一致。但这个模型很僵化。一把私钥等于完全控制,因此丢失助记词就意味着丢失资金,而泄露助记词则意味着一场不可逆的洗劫。账户无法强制执行消费限额,无法要求第二次批准,无法向某个应用授予一项范围受限的权限,也无法用链原生代币以外的任何东西支付自己的 gas。

智能账户是什么

智能账户(也称智能合约账户)用可编程逻辑取代了那种固定的密钥校验。账户就是一个合约,而一个动作只有在满足该合约所定义的规则时才会被授权。那些规则几乎可以是任何东西:多个签名者、每日上限、只限一个应用和一个时间窗口的会话密钥、社交恢复监护人、EVM 无法原生验证的签名方案——例如 P-256 曲线上的 WebAuthn 设备 passkey,而非 EOA 被硬性绑定的 secp256k1 签名——又或是一条允许第三方赞助手续费的规则。

过去这意味着要部署一个定制的合约钱包:昂贵、碎片化,且大多数工具并不支持。ERC-4337 账户抽象标准改变了这一点,它增加了一条并行的交易管线:账户把意图表达为一个 UserOperation,bundler 收集并打包这些操作,一个共享的 EntryPoint 合约负责验证与执行——而这一切都无需改动以太坊的底层协议。若想了解全貌,我们关于什么是账户抽象的讲解逐一走过了这些部件。

有一个结构性细节值得知道:智能账户无法自行发起一笔交易。以太坊仍然要求由一个 EOA 来发起链上交易,因此是 bundler(在其他链上则是等价的 relayer 或代付方)把它提交上去。这是管道层面的细节,而非托管层面的:bundler 只能执行你账户自身逻辑已经授权过的内容。

正面交锋:真正要紧的区别

恢复。EOA 只有一条恢复路径——助记词——没有后备,也没有办法在不换新地址的前提下轮换密钥。智能账户可以定义监护人或备用签名者并随时间轮换他们,因此丢失一个签名者未必意味着失去账户。

手续费支付。EOA 必须持有链的原生代币(以太坊及大多数 L2 上是 ETH,Polygon 上是 POL,BNB Chain 上是 BNB,依此类推)来支付 gas。智能账户可以让支付经由一个 paymaster 路由,于是手续费可以由应用赞助,或以一枚 ERC-20 代币代替原生币扣取。

批量。EOA 每笔交易发送一个操作,因此“先授权再兑换”是两个签名和两次确认,中间还有一段授权闲置未用的窗口期。智能账户可以把多次调用打包进一个原子操作,要么完全成功,要么完全回滚。

权限。EOA 的签名是全有或全无:能发出一笔尘埃转账的私钥,同样能把账户掏空。智能账户可以授予范围受限、会到期的权限——例如一把只能在一小时内调用一个合约的游戏会话密钥——而不必暴露主签名者。

成本与兼容性。EOA 是最便宜的基线,并且每一个工具、浏览器和合约都认得它。智能账户增加了工作量:验证合约逻辑,加上 EVM 上经由 EntryPoint 的间接调用,因此一个可比的动作通常花费更多 gas,且账户在首次使用前可能需要一次性部署。

托管。这是人们最容易搞错的一点。托管关乎谁持有私钥,而非你使用哪种账户类型——下文详述。

各自何时适用

对于简单、对成本敏感的用途,EOA 仍是稳妥的默认选择:持有资产、偶尔转账,以及与那些「最大兼容性和最小开销比功能更重要」的合约交互。当便利性与安全功能本身就是重点时,智能账户便对得起它的开销——恢复监护人、消费策略、被赞助或单代币手续费、批量的 DeFi 操作、限定于单个应用的会话密钥。需要共同控制的团队与金库,以及想要类 Web2 体验的日常用户,会倾向智能账户;而想要一把裸露、可携带、处处被认可的密钥的人,往往留在 EOA。

两者如何趋同

两种模型之间的分明界线正在消融。EIP-7702 在以太坊 Pectra 升级中引入,它让一个 EOA 签署一份授权,把自己的代码字段指向某个智能合约实现,于是一个普通地址就能执行智能账户逻辑,同时仍是你已经充值过的那同一个地址,拥有相同的私钥与余额。这份委托可以重新指向或清除,因此它是一次可逆的升级,而非一次迁移。实际上,一个普通 EOA 可以选择加入批量、被赞助或非原生代币的手续费支付以及会话密钥,而无需抛弃自己的历史——而一个经 7702 委托的账户可以采用兼容 ERC-4337 的逻辑,并复用同一套 EntryPoint、bundler 与 paymaster 基础设施。

结果是一道光谱,而非非此即彼。随着时间推移,问题从“EOA 还是智能账户?”转变为“我此刻想要开启哪些能力?”

两种模型都可以是完全非托管的

两种模型都不要求你交出私钥。当你持有 EOA 的助记词时,它就是非托管的。当你——以及只有你所控制的签名者——能够满足智能账户的授权逻辑时,它就是非托管的。“智能账户”并不意味着某家公司持有你的资金;它意味着你的账户遵循你所设定的规则。任何一种类型只有在第三方持有控制性私钥时才会变成托管,而那是关于产品的问题,不是关于账户模型的问题。如果这个区分对你还很陌生,托管钱包与非托管钱包一文讲得更为透彻。

它在一个你真能用的钱包里是什么样

WATS 是完全非托管的:私钥由你持有,WATS 从不持有任何私钥。在此之上,它把上文所述的手续费支付能力落到实处,而非停留在理论。在 WATS 热钱包中,网络费以单一代币 ATS 扣取,而非各链的原生 gas 币:在 EVM 链上这是通过一个 ERC-4337 paymaster 完成的,在 Solana 和 TON 上则通过一个等价的代付方安排,因为 ERC-4337 是仅限 EVM 的标准。由于 ATS 是一枚 LayerZero OFT,一份 ATS 余额即可覆盖 Ethereum、Arbitrum、Optimism、Base、Polygon、BNB Chain、Solana 和 TON,而收取的 ATS 会被销毁,使供应量从 100,000,000 降至 30,000,000 的下限。有一点要说清楚:这不是折扣。网络照常收取它正常的手续费,由 paymaster 结算——改变的是从你余额中扣走哪种代币,而不是底层成本。

WATS 的四款产品——Chrome 扩展、移动应用、热钱包与 NFC 金属卡——都以同样的方式保持非托管,而这张卡片值得在此准确描述,因为它常被误认为冷存储设备:它并不存储私钥。它通过触碰来向存放在 WATS 应用中的密钥进行认证,使用一个与唯一一台设备配对的独有卡片 ID,这让它更接近一把实体安全密钥,而非一个保险库。

如果你想亲身感受 EOA 的固定规则与智能账户手续费逻辑之间的差别,而不只是读一读,具体的一步很小:打开 WATS 热钱包,在一条你完全没有原生 gas 代币的链上发起一笔转账。paymaster 会在你看不见的地方完成它的工作,手续费则从你的 ATS 余额中扣除。ATS 手续费模型如何运作把这套机制从头到尾讲清楚了。

常见问题

EOA 与智能账户有何区别?

EOA 是一对由私钥控制的普通密钥(私钥通常以助记词备份)。它不含代码,因此协议只应用一条固定规则:带着正确 nonce 的有效签名即可执行交易,且 gas 以链的原生代币支付。智能账户由合约代码控制,因此授权是可编程的——它可以增加恢复监护人、消费限额、会过期的会话密钥、替代签名方案、原子批量,以及经由 paymaster 支付手续费。EOA 更便宜、更简单、被普遍支持;智能账户耗费更多 gas 且可能需要一次性部署,但它能做到 EOA 在结构上做不到的事。

智能账户是托管的吗?

不,本质上不是。托管关乎谁持有私钥,而非你使用哪种账户类型。当只有你所控制的签名者能满足智能账户的授权逻辑时,它就是非托管的;只有当第三方持有一把控制性私钥时,它才成为托管——这与你对一个基于 EOA 的钱包所做的判断完全相同。bundler 与 paymaster 并不改变这一点:bundler 只能提交你的账户已经授权过的操作,而 paymaster 只是支付手续费。

EIP-7702 会把我的 EOA 变成智能账户吗?

不会永久变成。EIP-7702 让一个现有的 EOA 签署一份授权,把自己的代码字段指向某个智能合约实现,于是该账户可以执行智能账户逻辑——批量、被赞助或非原生代币的手续费支付、会话密钥——同时保持相同的地址、相同的私钥和相同的余额。这份委托随时可以重新指向或清除,因此它是一次可逆的升级,而非迁移到一个新账户。你保留你的 EOA,并在你想要时借用智能账户的能力。

我怎样才能在不持有各链原生 gas 代币的情况下支付网络费?

WATS 热钱包如今就在这么做:手续费以单一代币 ATS 扣取,而非各链的原生 gas 币。在 EVM 链上这经由一个 ERC-4337 paymaster 完成;在 ERC-4337 并不适用的 Solana 与 TON 上,则由一个等价的代付方安排扮演同样的角色。ATS 是一枚 LayerZero OFT,因此一份 ATS 余额即可覆盖 Ethereum、Arbitrum、Optimism、Base、Polygon、BNB Chain、Solana 和 TON,而收取的 ATS 会被销毁,使供应量从 100,000,000 朝着 30,000,000 的下限递减。这不是折扣——网络费依然被足额支付,只是由 paymaster 结算,因而从你余额中扣走的是另一种代币。WATS 是完全非托管的:私钥由你持有,WATS 从不持有任何私钥。