钱包基础设施解锁了下一代dapp的web3体验,账户抽象和堆栈各层的发展改变了市场结构,ERC-4337提供了一种去中心化且抗审查的替代方案。Paymaster服务提供了Gas政策管理器和智能合约钱包,Safe智能钱包产品已在12多个链上部署500万多个保险箱,ERC-6900定义了模块化智能合约账户,WalletConnect* 通信协议和Web3Modal库让用户可以将任何钱包连接到任何应用程序,SDK的发展使得dapp入门UX未来变得更加便捷。
原文标题:Wallet Infrastructure: Empowering the Next Generation ofDapps
原文作者:nich
原文来源:1k(x)
编译:Lynn,火星财经
钱包基础设施在解锁下一代 dapp 的 web3 体验方面发挥着至关重要的作用。
到目前为止,用户在 web3 中进行第一次交互之前,必须安装额外的软件、使用新货币为其提供资金和资助,并面临陌生的确认屏幕。尽管改进了防火墙并远离助记词,这些障碍仍然是去中心化应用程序流失率较高的点。
抽象技术层的创新环境已经成熟,可以直观地进入新的金融、社交和游戏体验,同时又不损害自我监管和游戏的原始精神。去中心化。
2023 年对于钱包生态系统来说是关键的一年,账户抽象和堆栈各层的发展改变了市场结构并改变了我们对用户、dapp和钱包之间关系的看法。
本文涵盖:
我们可以将帐户抽象视为帐户管理与密钥管理。账户是区块链上可以持有资产并具有交易历史的实体。签名者(密钥)是有权代表帐户执行操作的实体。
对于传统账户 (EOA),私钥保留对其关联账户的唯一且完全的控制权。私钥和账户之间严格的一一映射意味着:
账户抽象使账户成为一个智能合约,其动态逻辑决定哪些密钥可以代表其执行操作、范围权限以及根据用例进行额外的检查和平衡。
我们可以通过检查被抽象的内容来进一步分解它的好处。
由于以太坊协议仅识别 EOA 发起的交易,因此帐户抽象需要链下基础设施将智能合约发起的交易中继到链上。
ERC-4337 于 2021 年推出,作为一种无需更改核心协议即可实现此目的的标准化方法。然而,早在标准完全充实之前,一些项目就已经发挥了 AA 的优势。
这需要由相应的项目构建和维护自定义中继基础设施。
输入ERC-4337。该标准为中继层提供了一种去中心化且抗审查的替代方案,为帐户、付款人和签名聚合器定义了一个接口,以便通过帐户抽象交易的共享备用内存池(“用户操作”)与第三方中继器进行交互。
中继器(“捆绑器”)将多个 UserOps 捆绑在一起形成一个交易,发送到单个 EntryPoint 合约,该合约随后验证费用将被支付(由账户本身或通过付款人),并在对应于智能账户的 UserOps 上执行。
我们可以将其与原生提供账户抽象的链上的验证和执行方式进行对比,因此不需要额外的中继(例如 zkSync* 和 Starknet),以及最近发布的RIP-7560以太坊及其汇总上的原生 AA 提案。
2023 年 3 月,4337 EntryPoint 合约部署到主网。它的社区在让开发人员参与帐户抽象运动方面取得了巨大成功。
这为钱包生态系统带来了一波新的基础设施和服务提供商浪潮,并推动了现有项目,以确保其业务战略和产品套件继续满足希望利用 AA 为用户提供无缝 web3 体验的应用程序开发人员的需求。
签名者和密钥管理基础设施负责生成和保护用于签署消息、交易和 UserOps 的公钥对。这里最直接的例子是传统的 EOA 钱包,但钱包即服务提供商已经出现,可以通过社交和电子邮件等替代身份验证方法实现无种子登录和钱包管理。
这些服务要么将密钥材料存储在 HSM(如 AWS KMS)中,只有用户才能通过授权凭证访问(Magic、Turnkey),要么在某种 SSS/MPC 方案(Privy、Web3Auth、Portal、Capsule)下运行,以保护材料。
Lit* 通过分散密钥改进了服务器端密钥存储设计。网络中的每个节点都存储一份通过 DKG 算法生成的 ECDSA 私钥,所有操作都在加密虚拟化中进行。可以将任意身份验证规则分配给密钥对,使应用程序或用户可以完全控制允许的交互,并施加支出限制等。 2-of-N MPC 钱包还可以进一步利用该网络作为备份和恢复选项。
今年,我们进行了快速实验,利用硬件签名者和密钥作为帐户的签名者为用户提供开箱即用的密钥管理服务桌面设备。这些签名者本机使用生物识别身份验证(例如 FaceID、TouchID),通过熟悉的用户体验提供额外的安全性。
此处的一个限制是,比特币和以太坊等链本身无法识别密钥和硬件签名者生成的签名。他们使用 secp256r1 (R1) 椭圆曲线,而这些链则在 K1 变体上运行。虽然正在进行的工作以无需信任且高效的方式验证 R1,但一些支持 Passkey 的产品正在通过 Lit 和 Turnkey 等服务一次性生成 K1 签名用户已使用其密钥进行身份验证。
这里值得关注的标准是EIP-7212,它建议将 R1 曲线作为预编译合约直接添加到 EVM 中,以便每个现代设备可以在没有第三方服务或中间人的情况下本地签署交易。
随着账户抽象交易量的增长,使用 BLS 签名进行签名聚合可能会导致智能账户费用比 EOA 便宜。4337 定义了聚合器辅助合约的接口,该合约验证批准多个 UserOps 的单个聚合签名,而不是单独验证每个用户操作。
中继器(例如 4337 Bundler)将交易或 UserOps 中继到内存池。在具有本机 AA 的链上,网络运营商和排序器扮演此角色,从而无需外部专用中继器。
与以太坊有多个客户端实现(如 geth、erigon、reth)的情况类似,4337 生态系统也有多个不同语言的捆绑程序实现,从而使网络更加稳健,避免单一实现的漏洞。4337 规范包括一个测试套件,以确保整个网络的捆绑程序兼容性。实现者包括 Stackup(Golang)、Pimlico、Biconomy、Etherspot(Typescript)、Candide(Python)、OKX(Java)和 Alchemy(Rust)。
捆绑者的激励模型与区块构建者类似,从其捆绑的用户操作而不是交易中收取费用。在实践中,捆绑器需要一个进入块构建器的 API 来查看当前块并创建一个对该块有效的捆绑包,因此应将其视为块构建器的一部分。
随着 4337 吸引力的增长,我们可以预期构建者也将成为捆绑者,因为这种混合模式将比单独的构建者更有利可图,因为他们可以从交易池和 UserOps 池中进行选择.
Paymasters 通过允许 dapp 为用户赞助 Gas、允许用户使用非原生代币支付费用或通过传统支付轨道进行链下结算来实现费用提取。 Paymaster 服务有 2 个主要组成部分:
Paymasters 可分为链上或链下:
帐户工厂和帐户工厂框架提供“无头”智能帐户实现和 SDK,dapp 和钱包客户端可以在其上构建,代表用户创建自我托管嵌入式帐户。账户本身是智能合约钱包,有自己的签名验证、执行和重放保护(随机数管理)逻辑。所有者使用其密钥授权来自其智能帐户的用户操作。
在较高层面上,智能账户供应商提供 3 个核心内容:
根据 ERC-4337,UserOp 的“sender”字段是指进行交易的智能账户。如果帐户尚未部署,EntryPoint 会从“initCode”中指定的工厂合约部署帐户。用户的密钥可用于申领智能账户以进行后续的 dapp 交互。
Safe、Zerodev 和 Biconomy 等账户提供商与密钥管理器和身份验证基础架构集成,让 dapp 可以选择如何让用户管理智能账户。例如,通过 Safe 的 Web3Auth 集成,用户可以使用社交网络或电子邮件使用账户,而通过 Zerodev 与 Turnkey 的集成,用户可以选择使用 Passkeys 管理账户。
Safe 以其久经考验的智能钱包产品而闻名,被个人、团队和 DAO 广泛使用。迄今为止,已在 12 多个链上部署了 500 万多个保险箱,执行了超过 2200 万多个交易.在 v1.4.1(2023 年 7 月发布)之前,开发人员已经能够使用 Gelato 中继来启用 Gas 抽象交易。这种组合目前为 Gnosis Pay 和 BasedApp 等加密借记卡产品提供支持,其中用户可以使用其保险箱中的资金从任何接受 Visa 的供应商处进行购买。 v1.4.1 通过模块引入了ERC-4337 支持,为中继提供商提供了额外的选项。
ZeroDev 是今年早些时候推出的智能账户提供商,从一开始就为 ERC-4337 构建。 Zerodev 聚合了多个捆绑器提供商来抽象 UserOp 中继服务,并公开一个 Gas 管理器仪表板,开发人员可以在其中定义为用户提供费用的范围和速率限制逻辑。 Zerodev 和 Biconomy(也运行自己的捆绑器网络)目前在启用 4337 的帐户中占据着市场份额。
Alchemy 的 AccountKit 具有符合 4337 标准的智能帐户实现“LightAccount”,它基于 EF 的实现并添加了EIP -1271 支持(验证来自智能合约的签名)以及所有权转让、密钥轮换和命名空间存储。
账户模块是智能合约,充当智能账户的可安装组件。尽管模块基础设施仍处于非常早期的阶段,但我们预计模块将可以通过以下方式发现和安装:
通过 AA 正式分离 UserOp 验证和执行的处理方式,模块可以包含仅验证或仅执行逻辑。
虽然一些钱包(例如 Candide 已经开发了用户可以直接安装的模块,但我们预计可以在类似应用程序商店的钱包界面,或由 dapp 开发人员组成“入门”嵌入式钱包。
智能帐户框架在设计时已考虑到模块。 Safe的核心合约处理模块管理添加和删除模块的逻辑从帐户中删除,但将实际的模块相关逻辑和存储完全限制在单独的合约中。这种关注点分离降低了第三方模块覆盖相同状态、损害帐户安全和预期行为的风险。
Safe{Core} 协议 引入了一个包含模块、挂钩、管理器和注册表的开放框架,旨在培育一个可组合的智能帐户生态系统,其灵感来自 Safe 钱包产品的经验。
ZeroDev 明确地将其模块(“插件”)分类为验证或执行。执行器模块被设计为与验证器模块配对,允许自定义函数通过不同的验证器“路由”。例如,“NFT 转账”功能,仅允许通过 2FA 转账 NFT。
构建强大的模块化智能账户生态系统的一些注意事项:
互操作性。由于多个智能帐户供应商各自采用自己的方法来第三方如何向帐户添加新功能,因此模块开发人员正处于供应商锁定或拥有供应商的轨道上。管理开发相同功能以兼容多个帐户实施的技术开销。一些缓解这种情况的解决方案:
安全。让用户能够将第三方软件安装到他们的钱包中,随之而来的是界面应如何管理和公开模块的相关信息的重要问题。
可发现性。注册表可以通过开发者或最终用户安装的智能账户平台和钱包接口公开和查询。
扩展钱包功能的能力使账户成为开发者平台,并为 web3 产品和服务提供新的分销渠道。我们已经在 Metamask Snaps 上看到了这一点,它允许用户通过安全警报(通过 WalletGuard)、隐私功能(通过 Nocturne)以及与 Starknet 和比特币等非 EVM 链的互操作性来定制浏览器扩展钱包。
当 Chrome 使开发者生态系统能够通过扩展来扩展浏览器功能时,这促使他们在市场上占据了主导地位,尽管他们比现有的围墙花园年轻十岁。尽管我们大多数人都很难想象当模块化账户成为主流时钱包体验会是什么样子,但无需许可的创新已经为顺其自然铺平了道路。
进化后的钱包堆栈意味着:
如果您在 2018 年玩过以太坊 dapp,您可能会记得在加载网站后立即看到一个 Metamask 弹出窗口。这是由于在连接钱包和 dapp 方面缺乏良好的用户体验实践,开发人员经常采用硬编码检查来查看用户是否使用浏览器的“window.ethereum”对象安装了扩展钱包。如果用户安装了多个扩展钱包,这会导致不可预测的行为,迫使用户选择一个,并造成钱包市场竞争不那么激烈。
WalletConnect* 通信协议的出现让用户可以将任何钱包连接到任何应用程序,同时还出现了 Web3Modal 库,该库封装了按钮和模态组件,让用户可以选择使用哪个钱包的应用程序。
如今,Web3Modal 已成为 RainbowKit、Web3Onboard 和 ConnectKit 等多个钱包连接器库之一,为 dapp 开发人员简化了钱包检测和基于钱包的身份验证过程。这些库提供了开箱即用的主题选项、钱包搜索功能和屏幕,如果用户还没有钱包,它们会重定向用户安装钱包。
最近,作为 "window.ethereum "的替代钱包发现机制,EIP-6963 最终定稿,允许扩展提供的 dapp 和注入脚本以可预测的方式进行通信。有了这一标准,用户现在在选择扩展钱包连接 dapp 时就有了更多的选择余地,同时也为钱包打开了一个更具竞争力的市场。
虽然连接器库显着改进了 DevEx 和 UX,但用户已经或将安装额外软件来与 dapp 交互的期望仍然对采用构成了很高的障碍。
随着下一代钱包库(我们在这里称之为成熟的“入门 SDK”)的发展,我们已经看到了 dapp 入门 UX 的未来是什么样子。除了基于钱包的身份验证之外,这些 SDK 还提供其他注册和登录选项,例如电子邮件、社交、短信,并为用户创建嵌入式钱包,无需他们安装额外的软件或导航远离 dapp。
开发人员可以直接集成主要提供商提供的连接器(例如Magic、Privy、Web3Auth)或使用包装多个服务的服务(例如动态< a i=8>, Thirdweb, 0xPass) 提供即插即用功能- 在他们想要公开的身份验证选项和他们想要创建的钱包类型上发挥选择性,完全定制入职流程。入门 SDK 还可以与智能账户提供商集成,创建嵌入式智能钱包,提供进一步的用户体验增强功能,例如无 Gas 交易和进/出坡道。
随着“无头”钱包的普及以及嵌入式钱包的发展,钱包和 dapp 之间曾经清晰的界限开始变得模糊。
如今,Web3 用户习惯于通过 Metamask 等独立钱包或通过 WalletConnect 提供的钱包与 dapp 进行交互,将其资产和链上足迹累积到一个或几个账户。
随着越来越多的 dapp 通过嵌入式钱包和多个可用供应商吸引新用户,帐户管理对于 dapp 开发者和最终用户来说很快就会变得复杂。 Dapp 开发人员必须评估和管理多个供应商,同时尽量避免锁定。对于最终用户来说,为每个 dapp 创建一个新钱包将导致资产和身份管理体验支离破碎。
虽然特定于应用程序的钱包对于游戏等某些用例来说是理想的选择,但在很多情况下,用户可能会使用他们的第一个 dapp,使用其 web2 签名者或 Passkey 创建嵌入式钱包,并希望使用他们在该应用程序中积累的资产。通过使用同一签名者登录另一个 dapp 上的帐户。
AA 的另一个突出挑战是为现有用户(已经在多个 EOA 上积累了资产和链上历史记录)提供无缝迁移到智能账户的方式。
鉴于 AA 和 L2 活动的势头,我们可以预见,未来智能账户将成为 EOA 的主流,用户拥有跨多个链的资产。
EOA 的用户体验优势之一是用户可以使用相同的私钥自动访问不同 EVM 链上的相同地址。缺点是无法更改控制给定地址的密钥,并且如果用户丢失私钥,所有资金都可能丢失。
由于账户抽象将密钥存储与资产存储分开,因此可以轮换给定账户的密钥,而无需迁移资金,同时保持相同的地址。智能账户能够使用 CREATE2 跨链维护相同的地址,即使合约尚未部署在给定的平台上,用户也可以访问该账户链但使用相同的初始验证密钥和帐户实现。
然而,从长远来看,跨链维护相同的地址可能是一种反模式。
为多链 AA 提出的长期解决方案包括:
跨链账户和签名者管理仍是一个正在积极研究的领域。我们的最终目标是,用户可以更改不同链上多个账户的密钥,而无需进行大量交易。
我们相信这些发展会对整个生态系统产生重大影响:
钱包基础设施将继续促进 web3 的采用。我们 1kx 很自豪能够支持那些在本文讨论的想法上处于领先地位的团队,并将继续关注未来的发展。
如果您正在研究该领域的解决方案或对此主题有其他想法,请联系@nichanank - 很乐意和你们一起聊天。
*表示 1kx 投资组合公司。