简单来说,账户抽象让用户可以将智能合约用作账户——有效地使加 密钱包变得可编程。这是用户与区块链应用交互方式的突破性转变, 许多人认为这是使加密更加用户友好、安全且适合大规模应用的关键 步骤。
Ethereum’s 联合创始人 Vitalik Buterin 甚至建议,如果不采用账户抽象,以太坊可能无法实现其目标,这 突显出这项技术对Web3未来的重要性。
但账户抽象究竟是什么?它如何运作?为了理解其重要性,我们首先 需要了解区块链账户的传统运作方式以及为何该旧模式存在局限。然 后,我们将深入探讨账户抽象如何改变游戏规则,探索其优点(如更 高的安全性和更简单的用户体验),看到实际中的实例,并检视尚存 在的挑战。
最终,你会理解为何账户抽象常被誉为对加密钱包的重大升级——一个 可能让加密管理像使用现代金融应用一样无缝的变革。
传统账户模型:EOA与智能合约账户的对比
像以太坊这样的区块链今天使用账户模型来管理资产和执行交易。以 太坊上有两种主要的账户类型:
-
外部拥有账户(EOA) – 这些是由私人密钥控制的“普通”用户账户。 如果你创建了一个以太坊钱包(如 MetaMask 或硬件钱包),你就有一个EOA。 使用EOA时,你有一个公地址(从你的公钥派生而来)和一个允许你 签署交易的私钥。通过EOA,你可以持有硬币或代币并发送交易以转 移资金或调用智能合约。重要的是,EOA可以自主发起交易(通过私 钥的签名),但不能执行自定义代码——超出基本发送功能并不可编 程。EOA仅限于两个主要功能:将价值(ETH或代币)发送到另一个账 户,或者调用智能合约上的功能。
-
合约账户(智能合约) – 这些账户由代码(智能合约代码)治理, 而不是由私人密钥治理。合约账户可以持有资产并在接收到交易时执 行规定的规则或逻辑(代码)。例如,去中心化应用或代币合约就生 活在合约账户中。然而,合约账户不能自主发起交易。只有在收到来自 EOA或其他合同的交易触发时,才会运行其代码。换句话说,某人或 某个外部账户必须调用合约才能使其执行任何动作。合约账户可以完 全编程并实施复杂规则,但其缺乏自主行动能力——没有直接控制它们 发送新交易的私钥。
外部拥有账户(EOA)与智能合约账户(SCA)的以太坊账户类型比较。 EOA由私钥控制并能发起交易,但不能执行任意代码。SCA(智能合 约)可以运行代码但不能自己启动新交易。账户抽象旨在消除这种划 分。
在当前的范式下,这两种账户类型是分开的,每种都有其缺点。EOA因 被绑在一个私人密钥上而有着显著的限制和漏洞:如果你丢失了该私 钥(或备份种子词)的访问,你将失去账户及其资产的访问权限——区 块链中没有“忘记密码”选项。反过来,如果恶意者获取了你的私钥, 将会完全控制账户资金的盗窃。EOA没有内置的方式设置支出限额、需 要多个批准(多签)或通过可信方恢复访问;账户的安全性仅偶然取 决于那个秘密密钥。这与传统银行形成了鲜明的对比,传统银行通过 欺诈控制、客户支持或双因素身份验证来减轻错误或被盗风险。再者, 使用EOA涉及每次手动签署交易(可能很麻烦)并需要为交易费用在账 户中保留区块链本机加密货币(如ETH)。这些要求使得使用EOA对日 常用户来说既有风险又麻烦。正如Rumble Fish开发团队简明地表达的: EOA没有“社交恢复机制,无法设置支出限额,也无法添加双因素验证”, 且必须始终有ETH支付费用——这一切都导致“用户体验不令人满意,不 太欢迎新人”。 内容: 重要吗?** 因为阻碍更广泛加密货币采用的许多痛点源于EOA(外部拥有账户)的局限性。新用户在安全地管理私钥和种子短语方面挣扎,如果发生错误则没有安全网。经验丰富的用户担心单点故障问题——被黑客攻击的密钥可能会造成灾难性后果。开发人员不得不构建笨拙的变通方案(如中继网络或中心化服务)来提供无气费交易或社交恢复等功能,因为区块链本身没有原生支持这些功能。账户抽象(Account Abstraction,简称AA)通过使账户模型本身更强大、更以用户为中心,从正面解决了这些问题。因此,它被视为Web3下一步演变的关键基础设施。事实上,账户抽象是以太坊核心开发人员多年来的梦想,Vitalik Buterin等人曾多次倡导将其作为极大提升以太坊可用性和安全性的道路。这不仅仅是个抽象的理论——它正通过最近的标准在以太坊上成为现实,同时更新的区块链也从零开始设计账户抽象。
为了更好地理解我们如何从理论走到实践,不妨来看看以太坊具体是如何实现账户抽象的——尤其是通过一个名为ERC-4337的升级,以及它在底层是如何运作的。
账户抽象在以太坊上的运作方式(ERC-4337)
以太坊实现账户抽象的旅程最近在一个名为ERC-4337(也称为EIP-4337)的提案中达成了高潮。该提案于2021年宣布,并于2023年部署,ERC-4337在不需要对以太坊核心协议进行根本性变更的情况下,引入了账户抽象。这非常重要,因为更改核心(L1)协议通常速度缓慢而且需要广泛的共识。而4337则通过在以太坊上层使用智能合约和链下基础设施实现了账户抽象——这一巧妙的解决方案让我们今天就能享受到AA的益处,而无需硬分叉。
那么它是如何工作的呢?ERC-4337定义了一种全新的、围绕“用户操作”对象(简称为UserOp)的替代交易流程。一个用户操作就像是一个打包的交易,是一个用户的智能合约钱包想要执行的交易。与用户的钱包直接创建一个普通的以太坊交易不同(这通常是EOA的做法),该钱包创建一个包含预期动作所有细节的用户操作:用户(发送者)是谁,操作的目标是什么(比如合约调用或代币转移),调用的任何数据或参数,以及相关的验证签名或证明。
以下是ERC-4337的高层流程及其新组件:
-
用户操作与内存池: 使用支持ERC-4337的钱包(一个智能合约钱包)时,钱包不会广播普通交易。相反,它创建一个包含必要信息和签名的UserOperation对象(但这个签名可以是任何合约逻辑所期望的,而不必是单一的EOA密钥)。这些UserOp被发送到一个特殊的UserOperation内存池中,与普通以太坊交易内存池分开。可以把它看作是一个暂存区,智能合约钱包的计划动作在这里等待被捡起。
-
捆绑器: 随后捆绑器出现,它们在用户操作层面上有点类似于矿工或区块生产者。捆绑器是一个观察这个UserOp内存池的节点,从不同用户处收集多个UserOp并捆绑成一个“捆绑”,然后将其打包成一个完整的以太坊L1交易。换句话说,捆绑器代表许多用户操作执行上链。捆绑器是一个EOA(因为按照当前协议只有EOA才能发起L1交易)——但最终用户本身不再需要每人运行EOA交易。捆绑器为这笔大交易支付了gas费用,并从每个UserOp中收取费用作为回报。
-
入口点合约: 捆绑后的交易被发送到部署在以太坊上的特殊入口点(EntryPoint)智能合约。此合约是ERC-4337设计的核心部分。入口点合约的作用是在匹配的捆绑中验证和执行那些用户操作。它展开捆绑,并对每个UserOp调用目标智能合约钱包(用户的账户合约)以验证操作和执行所需动作。每个智能合约钱包必须实现一个标准接口,供入口点调用,其中通常包括类似
validateUserOp
(用于检查签名、nonce等以确保该账户规则)的函数,以及一个execute
函数(如果验证通过则执行请求的动作)。如果任何UserOp未通过验证(例如签名无效或资金不足),入口点将拒绝它从而不执行非法交易。 -
支付方(可选): ERC-4337还引入了支付方这个概念,它是辅助的智能合约能够赞助gas费或指定谁以及如何支付gas。当有支付方存在时,它可以附加到UserOp上,并且在验证期间,入口点会要求支付方代用户支付gas(通常在确认某些标准后)。这一机制使用户在没有ETH作为gas的情况下也能进行交易——例如,一个dApp开发者可能会运行一个支付方为新用户支付gas作为友好的指导策略,或者允许用用户持有的ERC-20代币支付gas。如果没有使用支付方,gas将由用户自己的智能钱包资金支付(如果钱包本身具有这种代币交换或逻辑)。
-
捆绑器激励: 执行操作之后,入口点合约负责用用户账户或支付方提供的资金向捆绑者支付报酬。这激励捆绑者继续运营。本质上,捆绑者的收益与矿工或验证者通过gas赚取的费用相似,但现在他们可以从一批用户操作中赚取。
这种架构有效地消除了每个用户直接拥有EOA的需求。只有捆绑者需要使用EOA来发布交易;其他所有人的“交易”都被封装在由合约处理的UserOps中。正如Rumble Fish团队戏称,在4337模型中捆绑者是“唯一的需要[EOA]的参与者在这个账户抽象生态系统中”。对于最终用户,他们的账户现在完全是一个智能合约钱包——他们从不手动发送EOA级别的L1交易,但他们的意愿仍在链上通过入口点中介得以执行。
让我们举一个简短的例子来巩固理解:假设Alice有一个账户抽象钱包,其中有一个规则“允许我的朋友Bob每天最多从我的钱包中消费0.1 ETH”。这是一个正常EOA无法实现的事情——你无法使用内建工具在链上委托有限的消费权限。但通过AA,Alice的钱包是一个实施该规则的智能合约。现在Bob想在Alice下线时帮助她执行一笔交易。Bob发起了一个UserOperation来调用Alice的钱包合约:“从Alice转0.05 ETH到某个去中心化交易所”。Bob签署了UserOp(可能使用他自己的密钥,正如Alice的合约代码中授权的)。这个UserOp进入内存池。捆绑者将其与其他捆绑在一起,并发送给入口点。入口点调用Alice的钱包合同的验证函数;代码检查“Bob是否是被许可的代理人,并且这笔金额是否在0.1 ETH日限以内?”如果是,验证通过。然后入口点在Alice的钱包上调用执行函数,接着启动0.05 ETH的转账到去中心化交易所合约。操作成功,入口点从Alice的钱包资金中支付捆绑者少量gas费用(或可能是从Bob的存款或支付方资金中,根据设置决定)。Alice在那一刻不需要做任何事情——她的钱包预先设置的规则安全地允许了Bob的行动。如果Bob试图超过限额或未被授权,钱包将在验证期间拒绝他的操作。
从以上可以看出,账户抽象引入了许多新环节(UserOps,捆绑者,入口点,支付方)。然而,从用户的角度来看,这一切都可以在幕后进行。用户只是体验到了一个更灵活的钱包。正如一位开发者所述,“最终用户甚至不知道他们在使用账户抽象——他们只是看到了以前无法实现的功能”。尽管如此,要安全地实现这一点很复杂。入口点合约,例如,成为必须无bug且值得信任的重要基础设施。(值得庆幸的是,由于其重要性,它已经进行了审计和正式验证。)每个智能钱包的代码也需要小心编写,以正确处理签名、nonce和安全检查。因此,使AA安全无缝需要大量工程投入。
值得注意的是:以太坊并不是唯一一个注视账户抽象的网络。一些新兴区块链和Layer-2网络在整合账户抽象方面更加得心应手。例如,StarkNet(以太坊上的Layer-2 zk-rollup)被设计为每个账户在StarkNet上默认都是智能合约账户。StarkNet上没有EOA的概念——甚至用户账户也有代码(通常是一个标准账户合约,可以为用户需要的内容进行升级或配置)。这意味着StarkNet从一开始就具备AA功能(如社交恢复等),无需像4337那样设计有外部捆绑者;而是由排序器自身固有地处理智能账户。同样地,zkSync v2(另一个Layer-2)也在协议层面上原生地支持账户抽象——他们为每个用户部署默认账户智能合约,其行为像EOA,除非自定义,这样在保持兼容性的同时允许扩展。这些方法验证了... Content: power of AA: by removing the EOA/contract split at the protocol level, one can design much richer wallet functionality. Ethereum’s ERC-4337 approach is a bit more elaborate (since it’s layered on), but it ultimately provides the same end result on Layer-1 Ethereum.
现在我们已经了解了什么是账户抽象以及它如何运作(至少在以太坊的实现中),让我们来看看它的优点。为何它如此受欢迎?这实际上为用户和开发者提供了什么以前不可能或非常困难的功能?账户抽象的优势众多,涉及安全性、可用性及其他方面。
账户抽象的好处
账户抽象常被誉为加密领域在用户体验和安全性方面的变革者。通过让钱包成为智能合约,它解锁了一些功能,使管理加密货币更像是管理现代银行账户或在线档案,而不是处理原始的加密密钥。让我们来分析一些关键的好处:
改进的安全性和恢复选项
账户抽象最具吸引力的特点之一是可以显著提高加密账户的安全性。今天,如果你丢失了EOA钱包的种子短语或私钥,你就失去了访问权限——没有恢复的可能。同样,如果你的密钥被盗,盗贼可以掏空所有资金,而无人可求助来冻结账户或撤销损害。这种严酷的现实导致了无数财富损失的故事,仍然是新用户最大的恐惧。
账户抽象提供了解决方案:因为你的账户是一个可编程合约,你可以构建你自己的安全机制。例如,开发者可以实现社交恢复或多签名批准的智能钱包。在社交恢复钱包中,你仍然有一个用于日常使用的主要签名密钥,但如果丢失了,一组“监护人”(朋友、家人或甚至是你的其他设备)可以共同授权你的钱包替换密钥。这意味着没有单点故障——丢失一个密钥不会让你永远无法访问,同样,单一被盗密钥(除非所有监护人都被攻破)也不能让攻击者进入。Vitalik Buterin支持社交恢复作为保护钱包的首选方式,有了账户抽象,这种模式变得更容易广泛部署(实际上,像Argent这样的项目已经通过智能合约使用了一种形式的此功能)。
同样,账户抽象允许多重签名钱包在个人用户中普及,不仅限于组织。你可以要求任何从你钱包发出的交易都需要例如手机和笔记本电脑两种密钥的签名——这大大降低了单设备泄漏的风险。过去,多重签名钱包(如Gnosis Safe)已经存在但由于设置复杂,主要被团队或专家使用。通过AA钱包,用户友好的界面可以让任何人自行切换2-of-3多重签名功能,或添加每日开支限额,超过限额需要额外确认。这些种类的自定义规则在普通EOAs中是无法实现的。
最重要的是,账户抽象意味着开发者可以“自由创意,编写各种账号认证和恢复选项,”正如一次分析中指出的那样。想要添加移动设备必须共同签署交易的双因素身份验证(2FA)吗?可以。想让钱包有一个“冻结”功能以在怀疑被黑时锁定它(类似于冻结信用卡)吗?你可以将其编写进去。或者让钱包将某些“安全”地址(如你自己的冷钱包)白名单化,可以无限制地接收资金,但发送给其他人需要额外检查?这些都可以通过合约逻辑实现。简而言之,账户抽象将现代安全设计的灵活性带入了加密钱包,而直到现在,它们一直困在全有或全无的密钥模型中。这极大减少了许多困扰EOA钱包的漏洞和故障点。用户不再需要在没有安全网的情况下走钢丝——丢失一个密钥,你可能仍然有其他方法恢复;看到可疑尝试,你可能已经编写了断路器。
为新用户降低进入门槛
除安全性之外,账户抽象可以使日常用户更容易使用加密货币。坦率地说,对于新手来说,管理一个EOA加上燃气费用和种子短语是令人畏惧的。UI/UX常被拿来与互联网早期相比较——实际上,用户被要求完美管理秘密密钥(如长密码),并从一开始就理解燃气和随机数等概念。这是一种采用的障碍。
账户抽象通过提供更熟悉、更用户友好的体验来降低这个障碍。例如,通过paymasters代付燃气费用或允许以稳定币支付燃气费用,新用户可以在没有ETH用于支付燃气的情况下执行他们的首次区块链交易。dApp或钱包可以赞助燃气费用(也许作为一种入门推广或使用免费增值模式)——用户只需要看到他们的行为完成,就像金融科技应用可能会为第一次交易免去费用一样。这是巨大的:要求新用户首先获取ETH(通常在交易所)才可以使用dApp一直是一个入门关卡。账户抽象通过允许燃气费抽象来移除这个阻碍——用户可以用他们手中的任何代币支付燃气费,或者如果有第三方介入就无需支付。
另一个用户体验的改进是“无签名”或一键交易的理念。虽然不是字面意义上的没有签名(底层仍使用加密技术),但从用户的角度来看,你可以在一个会话中“登录”到一个dApp,并不必手动确认每一个操作。通过账户抽象,钱包可以实现会话密钥——拥有受限权限的临时密钥(例如,它们只能在有限时间内执行某些操作)。你可以登录到某个游戏dApp并批准一个会话密钥,允许该游戏在接下来的一个小时内代你执行动作,且有消费上限。在这个小时内,你可以享受无缝体验,就像在玩普通在线游戏—每分钟都没有交易弹窗。你的钱包智能合约确保会话密钥不能超越其被赋予的权限,且在一小时后失效。这种流程类似于web2应用维持会话的方式,它是通过账户抽象的灵活性实现的。正在探索使用AA钱包进行会话密钥和“以太坊登录”体验的早期实现。
此外,账户抽象可以实现自动付款或订阅等功能。正如之前提到的,Visa的加密研究团队展示了一个概念验证,智能合约钱包可以按自己的安排执行定期付款(自动扣款)。在他们的场景中,用户可以从一个自托管钱包调度每月账单支付,这是目前只有托管服务或中心化银行可以完成的,通过给智能合约预先批准在到期时拉取资金。这是在Layer-2(StarkNet)上使用原生AA实现的,但该概念广泛适用。想象可以提前安排交易、账单支付或转账及条件(“如果我的余额在日期Y上高于X则执行此交易”)的能力——当你的账户在适当触发时可以自主执行代码时就有可能实现。用户无需每次在线点击“确认”;他们的钱包合约根据他们设定的规则执行行为。
所有这些改善都带来了更友好的入门和使用体验。一个博客恰当地指出,通过账户抽象,dApps可以开始感觉像传统金融科技应用一样流畅,用户不会受到诸如随机数和燃气这样的区块链复杂性的困扰。用户可以通过熟悉的流程(联系监护人或使用备份设备,类似于“重置密码”)恢复账户,并且可以在不理解燃气的情况下使用应用程序(复杂性在底层处理,可能由应用程序完成)。对于非加密本地人士来说,这意义重大——这相当于要求某人通过命令行配置互联网与只需点击一个应用图标即可使用服务之间的区别。
交易的定制化和自动化
通过账户抽象,用户获得了对其账户能做什么的更多控制—并且可以自动化以前需要手动努力或信任外部服务的复杂任务。我们已经提到了一些例子,但让我们突出一些关键能力:
-
**批处理和复杂操作:**传统EOAs必须一次提交一笔交易,每笔交易都需要单独确认。智能合约钱包可以设计为将多个操作批处理成一个元交易。例如,你可以原子化地执行一系列步骤:在去中心化交易所进行交易,然后将收益借出给借贷平台,然后转移所获得的代币—所有这些都可以通过你的智能钱包作为一次性交易执行。这不仅节省了时间和点击,还可以通过合并步骤节约燃气。事实上,其中一个被引用的账户抽象的好处是能“将多个交易批量处理在一起”,减少开销并有可能节省费用。对用户而言,这意味着一次点击的策略,而不是处理多个交易。
-
**预授权交易和自动化:**你可以授权在某些条件下自动发生某些交易,无需进一步批准。这可以实现如DeFi中的止损订单(你的钱包会自动执行交易如果价格触及阈值),或在区块链游戏中在特定参数内自动执行的游戏操作。因为账户正如同个人代理在链上运行你的意愿就像拥有一个个人代理一般。一个具体的实际应用:有人可以编程“如果我一年不使用我的账户,自动将资金转移到我的备份钱包”—一种“亡者开关”,提供一种继承机制。没有AA,这需要相信第三方。内容: 服务或希望有人呼叫一个特殊的合约;使用 AA,你自己的账户可以强制执行。
-
易于管理资产: 账户抽象允许“用一个函数调用转移所有代币”这样的功能。通常,如果你想迁移到一个新钱包,你需要逐个发送每个代币。智能钱包可以有一个方法来一次性转移所有资产(ETH 和任何代币,NFT 等)到另一个地址——简化钱包迁移或资产整合。它还可以允许改变钱包本身的所有权:例如,出售钱包或将其转移给某人(这在 EOAs 中并不简单,因为 EOA 与一个你不应该共享的固定密钥绑定在一起)。
-
可编程限制: 你可以对账户使用施加任意政策。例如,你可以设置一个每日消费限额。如果交易总和超过限额,钱包会暂停进一步转账直到次日或需要你额外确认。这样的速率限制可以防止全部资金丢失,如果密钥被悄悄泄露——小偷每天只能取例如你资金的 1%,给你时间注意到并做出反应。账户还可以限制某些类型的交易(例如,“不允许调用高风险 DeFi 合约 X,除非有额外的密钥签署”)。这类似于信用卡允许你为超过一定金额的交易设置限制或警报。
总之,账户抽象授予了前所未有的灵活性。一位区块链开发者的评论很好地总结了这一点:使用 EOAs,用户“受限于不能定制或自动化的交易——每个交易都需要单独签名。”但使用账户抽象,“游戏规则改变了”,用户可以“设置定期支付并探索其他形式的自动化”,甚至一口气允许多个操作。就像从一个手动档汽车移动到一个可以被编程路线和规则的智能自驾车——你从自己做每一个小动作转变为定义你想要的,然后让系统处理技术细节。
燃气费灵活性与赞助
另一个主要好处是账户抽象带来的燃气费灵活性。在目前的以太坊上,你必须用你自己的账户支付每笔交易的 ETH 燃气费。这对许多用户友好的体验来说是一个不可行的起点——想象一下,如果每次你滑动信用卡时,你还必须携带第二种货币来支付费用,如果没有,它会失败。这实质上就是与 EOAs 和 ETH 支付燃气的情况。
账户抽象打破了这个限制,通过使燃气抽象化:
- 你的账户(智能钱包)可以被设置为用你拥有的任何代币支付燃气。例如,如果你只持有 USDC 稳定币,钱包的逻辑(结合一个支付主或 DEX 集成)可以自动转换一点 USDC 或用它来支付矿工/验证者,这样你就完全不需要 ETH。
- 赞助者(支付主) 可以为你支付燃气。这为用户的无燃气交易打开了大门。一个 dApp 可能会决定为用户的交易费用买单以促进采用——类似于业务为客户支付运费作为激励。这在过去已经通过元交易有限可能,但账户抽象将其标准化并使其更加安全。用户可以与区块链应用程序交互,甚至意识不到燃气的存在;体验可以感觉像一个免费 web2 应用程序,操作“就这样工作”。例如,新用户注册时可以获得由应用程序赞助的几个免费交易,顺畅他们的第一次体验。
- 灵活的费用逻辑: 也许你想自动使用你目前持有的最便宜资产支付费用,或者动态选择在 ETH 和其他代币之间支付,具体取决于市场利率——所有这些逻辑都可以嵌入到你的钱包合约或支付主政策中。
ERC-4337 规范明确考虑到这是一个关键特性:得益于支付主,用户“不再必须持有本地 ETH 代币来参与网络。这对入门 Web3 的新用户是一个重要的改进。”而 Rumble Fish 的分析强调,随着 AA,dApps 甚至其他人可以助力支付某人的燃气作为礼物或促销,使入门更加顺畅。我们已经看到像 Visa 这样的组织实验使用账户抽象让用户用信用卡或通过第三方支付燃气,从而有效地使加密交易感觉像正常的在线购物。这种 UX 将是使区块链应用程序更友好于主流的重大飞跃。内容: 我们提到的研究使钱包能够通过钱包的逻辑和支付程序来用Visa卡支付gas费用。虽然目前用信用卡支付gas并不常见,但其可行性突显了我们可以将区块链的机制从用户那里高度抽象化到何种程度。
-
定期支付和订阅: 过去,自我托管钱包的自动定期支付概念几乎闻所未闻,因为EOA无法在未来日期自行发起付款。但有了账户抽象,自动付款成为可能。在StarkNet上,Visa的概念验证就是一个很好的例子:他们使用账户抽象来实现基于拉取的支付(账单发送者可以在到期日从用户的钱包触发支付,因为钱包已预先授权)。另一个假设的例子是:一个流媒体服务可以部署一个智能合约,每月请求您的钱包合同支付订阅费;您的钱包代码可以验证这是合法的服务并自动以例如稳定币的形式支付他们——无需您每月登录。这种便利性通常在Web3中缺失,如果用户想要这样的功能,可能会强迫他们使用托管解决方案。账户抽象将其带入自我托管。
-
“一键”体验与可组合性: 考虑一个NFT市场,购买NFT可能涉及多个步骤(批准代币,然后交易等),或参与DAO需要锁定代币然后投票。有了AA钱包,项目可以设计用户一键“购买”或“参与”的流程,钱包契约在后台捆绑必要步骤。我们已经看到一些DeFi聚合器在做元交易,但有了原生AA,这可能更普遍和易于集成。这样增加了dApps的可组合性——您的智能账户可以一次与多个协议互动,鼓励开发者创建更丰富的功能而不必担心用户在多个交易中的第一个结束后就会放弃。
-
Layer-2采用和跨链用户体验: 在像StarkNet和zkSync这样的以太坊Layer-2网络上(这些网络具有原生AA),用户从第一天就体验到这些好处。例如,StarkNet上的用户可能通过部署合约创建他们的账户(有一个初始的一次性成本来部署您的账户合约),此后享受选择任何代币来支付费用的功能。随着这些L2网络用户的增加,对此类便利的期望将增长,迫使其他链采用类似的理念。此外,账户抽象还可以帮助实现跨链体验。社区中有人谈论将“链抽象”与账户抽象结合。例如,一个智能钱包可以抽象操作发生在哪条链上——您可以发起一个操作,钱包(通过中继或桥接)处理使其在适当的链上执行,返回结果给您,无需您手动切换网络或持有多条链的代币。这仍处于早期阶段,但从概念上讲,通过设计,一个智能账户可以管理多条链上的资源,提供统一的用户体验。
-
开发者工具和新服务: 大量新服务正在涌现以支持账户抽象。例如,提供钱包即服务(WaaS)的供应商为用户处理智能钱包的部署并以用户友好的方式管理密钥(有些集成在手机中的安全区或云备份等)。虽然我们不会宣传具体公司,但值得注意的是,许多创业公司和项目正在积极构建AA工具——从允许任何dApp为其用户启动AA钱包的SDK,到处理gas转换的专门支付程序。这意味着该生态系统正迅速朝着使AA无缝化迈进。随着这些工具的成熟,更多应用可以采用AA而无需重新发明轮子,用户甚至可能在不知情的情况下使用AA(例如,一款游戏可能会在后台自动为每个用户提供一个与其电子邮件登录关联的合约钱包——用户只知道他们有一个游戏账户,其背后是一个与他们电子邮件认证密钥绑定的智能合约钱包)。
所有这些例子都表明,账户抽象不仅仅是一个理论上的升级;它在各个方面不断发展,带来了具体的改进。然而,目前仍然不是一片光明和美好。像任何新技术一样,它也有需要注意的挑战和权衡。重要的是要审视这些以获得平衡的观点。
账户抽象的挑战和局限性
虽然账户抽象带来了令人兴奋的可能性,但它也引入了新的复杂性和考虑因素。以下是需要注意的一些挑战和局限性:
-
智能合约风险: 将用户钱包转变为智能合约,固有地把智能合约风险引入到个人账户中。钱包代码中的漏洞可能是灾难性的——例如,漏洞可能使攻击者绕过安全性或窃取资金。EOA中的“代码”基本上只是ECDSA签名验证,这是一种经过充分测试的密码学原语。而智能钱包要复杂得多。虽然核心AA框架(如ERC-4337中的EntryPoint合约)经过审计,但每个钱包实现的安全性可能有所不同。正如一位开发者指南所指出的,使用AA钱包时,您是在“部署一个不可变的合约”,如果发现漏洞,修补可能很困难,因为该合约代码不能轻易更改。有些钱包合约可能包括可升级或迁移功能以缓解此问题,但这也引入了信任考虑(谁可以升级它?)。对钱包合约进行审计的审慎是至关重要的。
-
复杂性和新的故障模式: AA架构(包括捆绑器、支付程序、单独的内存池)比现有状况更复杂。这意味着有更多的组件可能失效或受到攻击。例如,如果捆绑器网络早期没有足够的去中心化怎么办?捆绑器是否可能审查某些UserOps或要求高额费用?如果只有少数参与者成为主导捆绑器,存在集中化的风险。随着时间的推移,预计许多以太坊节点或矿工/验证者本身可能会运行捆绑器软件(尤其是如果有经济激励的话),但在初期阶段,用户相信UserOps和捆绑器的内存池在诚实地工作。EntryPoint合约也是另一个中心信任点——如果发现其中的漏洞,可能会影响所有AA用户。以太坊社区已经采取了预防措施(如果发现漏洞,EntryPoint可以通过更新机制替换,由开发者的多签名治理,直到完全去中心化),但这是一个需要关注的关键部分。
-
资源成本(Gas和部署): 使用智能合约钱包有开销。创建帐户有一个一次性的部署成本(您必须为每个用户的钱包在链上发布新合约,除非使用延期部署模式,在首次使用时创建合约)。在以太坊主网上,这可能花费几美元的gas,这可能会阻止一些用户,或需要钱包来赞助。此外,通过智能钱包的每次操作可能比简单的EOA交易略微昂贵,因为它涉及调用EntryPoint、执行额外的代码等。然而,这其中的一些可以通过批量执行的效率来抵消。不过,对于大量链上活动来说,这些成本加起来了。这意味着,至少在初期,账户抽象可能更常见于Layer-2(gas更便宜)或仅在Layer-1上应用于更高价值的用例。好消息是,以太坊开发人员意识到这一点,并正在研究协议更改以使AA更具gas效率。例如,“InitCode压缩”等提案或其他EIP旨在降低部署和使用智能账户的成本,从长远来看,如果AA成为默认,协议可以为此进行优化。
-
密钥管理仍然是关键(字面上): 需要注意的是,账户抽象并未消除私钥——它只是增加了使用密钥的层次。最终,您仍然需要某种形式的私钥或秘密来验证账户的所有权(即使该密钥由多个参与方分配或存储在硬件中等)。如果用户为其密钥选择较差的安全性,他们仍然可能被黑。不论AA提供了社交恢复等工具,用户必须实际使用和正确设置它们。批评者指出,许多用户可能仍会坚持使用默认设置,这可能是一个单一的密钥控制账户合约(基本上复制了一个EOA,但更复杂)。在这种情况下,如果他们从未配置监护人或双重身份验证,他们并没有获得太多安全性——如果他们不理解新的钱包模型,他们甚至可能面临更大的风险。总而言之,账户抽象大大提升了潜在的安全性,但并不保证安全。用户需要良好的用户体验以引导他们至更安全的设置(例如,钱包启动期间会提示添加监护人或备份密钥)。
-
尚未普及: 截至2025年,通过ERC-4337实现的账户抽象在以太坊上可用,但需要钱包提供商支持它。如果您的当前钱包(例如MetaMask或硬件钱包)不支持创建和管理4337智能账户,您在不更换情况下无法受益于AA。我们正处于EOAs和AA账户并存的过渡期。这可能导致用户混淆和摩擦。例如,AA账户有自己的地址(看起来像任何以太坊地址,但实际上是一个合约)。如果有人向您的AA钱包地址发送ETH,那也没问题——这是一个地址——但要发送ETH出去,您将通过AA流程而不是简单的EOA交易。高级用户可能会担心兼容性:“这个dApp会支持我的内容:智能钱包?通常来说,如果 AA 钱包设计良好,它应该能够与所有 dApp 一起工作(因为从 dApp 的角度来看,它只是一个发起合约调用的地址)。但某些低层次的工具(如某些区块链浏览器或旧版钱包)可能无法完全识别这些交易。随着时间的推移,像 ERC-4337 这样的标准应该会变得无缝,但生态系统需要赶上 —— 像链浏览器和硬件钱包固件之类的东西可能需要更新,以正确显示和签署 AA 操作。
-
互操作性和多链支持: 如果您在多个链(L1、L2s、侧链)上使用智能账户,您可能需要在每个链上部署合约,这可能会带来麻烦。正在努力实现账户部署在跨链上的“可复制性”,以便您可以在所有地方保持相同的地址和功能。然而,在完全解决这个问题之前,需要考虑的因素是,在一个网络上使用 AA 并不会自动在另一个网络上提供相同功能 —— 每个链可能需要一些设置。
-
现有用户的过渡挑战: 已经有数百万个 EOA,包括持有有价值资产的账户(如灵魂绑定或不可转移的 NFT,这意味着您无法轻易地将它们转移到新智能钱包)。如果这些用户希望过渡到账户抽象,他们该如何做?一种方法是像 EIP-7702 这样的协议升级,由 Vitalik 和其他人提出,它将允许一个 EOA “采用”智能合约功能而无需更改其地址(在下一节中有更多介绍)。但在这些升级发生之前,用户可能需要创建新账户以获取 AA 功能,这是一种负担,特别是如果他们有资产绑定到旧地址。还存在教育挑战:用户必须理解为什么转向智能钱包是有益的,并克服他们在 EOA 上的“如果它没有坏,就不要修理” 的惯性。社区需要强调这些好处(也许钱包会通过提供一键式迁移工具使其变得容易)。
尽管存在这些挑战,但以太坊社区的总体情绪是,账户抽象的优点远远超过缺点,许多这些限制正在被积极解决。对于新的基础技术,初期的复杂性较高是很常见的,但随着时间的推移会变得更加流畅。最初的智能手机笨重且电池寿命短,但如今它们是不可或缺且用户友好的;同样,今天的 AA 钱包可能感觉崭新而不同,但在几年内,用户可能无法想象没有社交恢复或无气费交易等功能的生活。
带着这种平衡的观点,让我们展望账户抽象的未来。它将如何演变,以及在使智能账户成为新常态的探索中我们可以期待哪些发展?
走向全面的账户抽象
以太坊上的账户抽象——特别是通过 ERC-4337——是一个重要的里程碑,但它通常被描述为旅途中的一步,而不是最终目的地。正如许多以太坊核心开发者所表达的,最终愿景是在协议层达到“全面账户抽象”,即每个账户都是智能账户,而 EOA 这一遗留概念完全消失。实现这一目标很可能需要未来的进一步升级和周密的过渡策略。以下是未来的一些展望:
1. 协议层的集成: 目前,ERC-4337 在应用层运行,通过 EntryPoint 合约利用以太坊现有的交易机制。从长远来看,以太坊可能会将账户抽象直接集成到协议中(Layer 1)以简化流程。这可能意味着引入新的交易类型或改变共识规则,使智能合约钱包可以无需捆绑中介即可发起交易。实际上,早期的提案如 EIP-2938(尚未被采纳)试图通过在协议层增加新的“AA 交易”类型来实现这一点。社区首先选择了 4337 的方法,但并未排除最终进行更深层次的更改。通过本地集成 AA,以太坊可以消除单独为 UserOps 设置交易池的需要,并可能减少气费开销(因为 EntryPoint 的逻辑可以由协议代码更高效地处理)。一个最近的想法是所谓的“统一交易池”(在草稿 RIP-7560 提案中讨论)将 UserOps 与普通交易合并到一个交易池中,使执行更具气费效率。虽然技术性强,但结果是更简化的架构和更低的 AA 成本。
2. 将 EOAs 过渡到智能账户: 为了实现全面账户抽象,最终需要停止创建新的 EOAs。所有新账户将默认是智能账户。这可以通过像 MetaMask 这样的钱包软件开始创建 4337 智能钱包代替纯密钥账户时实现,用户可能甚至不会注意到他们现在有一个合约账户。更难的部分是迁移现有的 EOAs。一种正在进行的办法是 EIP-7702,预计将在即将到来的网络升级(可能在 2025 年命名为 “Pectra”)中成为一部分。EIP-7702 旨在让 EOA 能从其地址直接执行智能合约代码。它通过允许 EOA 指定一个“委托”合约来实现,实质上是在 EOA 上附加一段智能逻辑。当有人与 EOA 互动时,网络将运行关联的合约代码(类似于 delegatecall),就像 EOA 是一个合约一样。这个特性将通过在使用原始密钥进行控制的同时为 EOAs 提供智能功能来模糊 EOAs 和合约账户之间的界限。实际上,这意味着如果你有一个重要地址的传统 EOA,你可以添加一个智能合约模块,启用多签名、社交恢复等等,而无需更改地址或移动资产。这就像给你的旧车配置一个现代的计算机辅助引擎。
3. 逐步淘汰单一私钥控制: 为了达到真正的账户抽象,以太坊可能实施一个规则,一旦账户转化为智能账户,原始密钥将不能再直接用于签署交易(因此不能绕过智能逻辑)。一个有趣的提案是 EIP-3607,建议如果账户有合约代码,应该拒绝任何正常交易(这些交易可能来自于旧密钥)。换句话说,如果你将 EOA 转换为智能账户,就不能回头了 —— 合约现在负责控制,单独的私钥不能在合约规则外转移资金。这种变化可能需要谨慎规划,以避免搁置用户,但它代表了“无 EOAs”的最终目标。与此同时,像 EIP-1271(定义了一种用于合约签名验证的标准)等功能已经用于使合约能够在期望签名授权的协议中运行。随着时间的推移,任何目前期望“EOA 签名”的地方都将同样接受智能账户的合约验证,使合约账户成为区块链生态系统中完全合格的成员。
4. 增强的默认特征: 在一个全面账户抽象的世界中,我们可能会看到钱包开箱即用地具备今天是可选的功能。例如,新账户可能会自动设置社交恢复(也许在创建钱包时会提示您选择一些监护人)。恢复选项可能会成为默认设置,而不是事后的考虑。同样,多设备或多因素安全性——它可能从一开始就内置于账户中。如前所述,可以允许多个签名方案:想象您的账户让您可以通过手机的生物识别(可能使用类似于与指纹绑定的安全隔离密钥)以及备份的硬件密钥进行身份验证。账户抽象允许将这些功能合并到一个账户下。这将使钱包更容易使用(不需要用一生守护单一的种子词)并更能抵抗像量子计算机这样的新兴威胁。
5. 应用程序的广泛采用: 随着越来越多的 dApps 和用户转向 AA,我们可能会看到创造性用途的爆发。DeFi 平台可能会为 AA 钱包提供特殊功能(例如“如果您使用 AA 钱包,您可以直接从我们的用户界面设置条件订单”等)。区块链游戏可能需要更少用户签署的摩擦。期待在诸如 DAO 治理等领域出现新的范式,账户可以内置投票政策或可自动与治理合约进行交互的委托。可能性是巨大的 —— 基本上任何用户级别的逻辑,人们想要但由于 EOA 的限制无法实现的,可能会成为标准。
6. 其他区块链的仿效: 以太坊在领路,但其他链条也在关注。一些正在以自己的方式集成账户抽象。我们已经讨论了 StarkNet 和 zkSync。还有一种在如 Polkadot 和 Cosmos 等网络上逐渐兴起的“智能密钥”或灵活账户的概念。例如,Polkadot 允许账户设置一个社交恢复机制,具有多个朋友账户(在协议层)。随着行业看到以太坊在 AA 上的成功,可以预见账户抽象将成为许多平台的标准 —— 每个平台都实施用户应该能够定制账户的安全性和执行逻辑的核心理念。这种交叉传播意味着在几年内,“账户抽象” 这个短语可能不会被多用;它会只是账户的工作方式,我们将简单地称之为智能账户或仅仅是账户。
总之,账户抽象的未来正在走向默认情况下使每个加密账户像智能合约一样强大,并逐渐淘汰旧的 EOA 概念。实现这一目标的道路涉及到谨慎的升级(如 EIP-7702 及更远的升级)和用户友好的迁移路径。这是一个微妙的过程 —— 你不能...Content: 强迫每个人在一夜之间转换——但这股势头已经出现。以太坊的开发人员起草了一份路线图,最终大多数用户将过渡到智能账户,从而在安全性和可用性上获益,然后该协议可以围绕这些假设进行优化(比如某天,如果每个人都在使用支付代理等,以太坊可以取消强制用 ETH 支付的 gas 概念——不过这只是一个推测,未来的事)。
最终想法
账户抽象代表了区块链账户管理的一次范式转变。通过允许用户利用智能合约作为他们的账户,它打破了过去的刚性限制,并打开了一个未来,在这个未来中,使用加密货币可以像使用传统银行应用程序一样简单——甚至更简单,同时赋予用户更多的安全控制。不再是单个丢失的密钥是不可逆转的悲剧;不再需要手动签署每一个操作或仅仅为了使用 dApp 而留有备用 ETH。通过账户抽象,社交恢复、多签名安全、自动支付、批处理交易和免 gas 使用等功能不再是漏洞或梦想——它们正在成为工具箱中的标准工具。
从实际角度看,账户抽象很重要,因为它直接解决了更广泛的加密货币采用的两个最大障碍:用户体验和安全性。它带来了灵活性(自定义钱包规则,任何你想要的身份验证方法)和包容性(让别人支付费用,使用简单的登录方法,从错误中恢复)而不牺牲非托管的理念。这项技术是使 Web3 用户友好的基础部分。值得注意的是,以太坊的领导层和社区中的许多人认为它对生态系统的成功至关重要——共识是,如果我们不能消除当今钱包的用户体验噩梦和安全隐患,加密货币就无法吸引数十亿用户。账户抽象是解决方案的重要组成部分。
目前,我们正在以太坊上的 ERC-4337 和各种 Layer-2 网络上的本地实现中看到这一点的早期阶段。未来几年可能会带来更无缝的集成——您可能会使用一个去中心化应用而未意识到实际上您的“账户”是一个智能合约,为您安排一切,使其顺利。钱包提供商、dApp 开发人员和用户都将获益:更少的摩擦,更多的可能性。
当然,在采用这一新模式时需要保持警惕——智能合约钱包必须进行精心构建和审计,用户也应教育自己关于社交恢复等新功能。但是与更安全和方便的加密生态系统的好处相比,这些都是可控的挑战。
最后,账户抽象可以被视为区块链技术发展的一个步骤。正如互联网从命令行界面发展到我们今天所知的用户友好型网络一样,区块链也正在从原始密钥管理的时代向智能账户的时代发展。这是一场在基础设施中悄然发生的革命,但其影响将直接作用于用户:资金更安全,登录更简单,与数字资产交互的方式更强大。随着技术的不断发展,当您发现“忘记密码”或“授权此应用程序 24 小时”等功能成为您加密词汇的一部分时,不要感到惊讶——这将是账户抽象的成果,使加密货币如同其他任何数字服务一样自然而然,同时仍然赋予您我们最初对区块链产生兴趣的自由和主权。