链抽象面临的严峻障碍

文章讨论了链抽象技术在统一以太坊用户体验和开发者体验方面的潜力,以及当前实现这一目标的主要障碍:应用无法感知用户跨链资产。提出了ERC-7811标准,旨在通过JSON-RPC方法让钱包共享用户的完整资产列表,从而解决该问题。文章还探讨了ERC-7811实施的挑战,以及替代方案ERC-7683。

为了链抽象转换互操作性,应用和钱包需要标准化的跨链余额通信方法

链抽象承诺“解决以太坊的烂摊子”。它是对由水平扩展策略导致的碎片化流动性层的解药。其主张是通过基于意图的跨链交易基础设施来统一以太坊的 UX 和 DX。它允许用户拥有一个统一的余额,可以通过一次原子交互立即在任何链上使用。对于开发者来说,承诺是类似的:一个用于集成任何链的工具包,将所有复杂性推给 API 提供商和求解器网络。

每个人想象的理想状态是,你,用户,拥有一个钱包(想想 Metamask,但可用性更好),允许你连接到任何链上的任何 dapp 并立即进行交易。无需配置底层网络。无需将资金桥接到正确的链。无需考虑 gas 代币。

然而,一个主要的障碍阻止了生态系统实现这种理想状态。当用户连接到 dapp 时,标准流程是 dapp 查询一个 RPC,它返回一个链相关的余额。因此,dapp 对已连接钱包的真实余额一无所知,并且完全不了解可能存在的任何链抽象系统。

因此,大多数链抽象系统都倾向于服务于嵌入式钱包和“超级应用”,这些应用聚合了许多协议和链(例如,Instadapp 和 DeFiSaver 类似体验),或者构建一个超级应用(Particle Network 的 UniversalX)。

进入 ERC-7811

ERC-7811 提出了一种 JSON-RPC 方法,供钱包共享用户的完整资产列表。该方法支持按链、代币类型(ERC20、原生、ERC721 等)和特定代币(USDC、USDT、ETH 等)进行过滤。

该请求将账户参数和可选过滤器作为输入。这些过滤器允许应用仅请求特定资产,而不是用户的整个投资组合。响应按链 ID 组织资产,每个资产包括其地址、余额、类型标识符和可选元数据。

这确实将复杂性推给了钱包提供商。但是,该标准有意不对钱包如何制定此跨链数据发表意见。每个链抽象系统可能会提供一个钱包服务,该服务充当中间后端服务,维护有关用户跨链余额的信息,并考虑资产余额和未决意图。

高级流程

该流程从应用通过 wallet_getAssets 请求有关用户余额的信息开始。这使该应用可以在受支持的网络上获得完整的跨链余额,从而使其能够根据总可用流动性(而不仅仅是链特定的余额)来呈现选项。

如果用户在目标链上有足够的资产,则交易正常进行。但是,假设所需的资产存在于不同的链上。在这种情况下,钱包已集成的链抽象系统会生成一个路径,用于获取所需的资产并在目标链上执行所需的交易。对于用户而言,这种跨链交互被视为一次原子交互。

为什么这是一个障碍

如果你早期使用账户抽象——例如,2022 年之前的 Safe 或 Argent 用户——你就会记得你无法将智能钱包连接到 OpenSea 和许多其他主要 dapp。这是因为大多数应用程序不支持合约的签名验证方法(ERC-1271,以及最近的 ERC-6942,用于未部署的合约)。

对 ERC-1271 的支持遇到了先有鸡还是先有蛋的问题。智能钱包无法连接到应用,因此没有人想使用智能钱包作为日常驱动程序。应用不愿支持 ERC-1271,因为智能钱包的可寻址市场太小。先有鸡还是先有蛋。

ERC-7811 将遇到同样的先有鸡还是先有蛋的问题。如果应用采用像 ERC-7811 这样的标准,那么链抽象对钱包来说最有价值,并且只有当达到临界数量的钱包采用链抽象时,集成 ERC-7811 才会对应用有吸引力。

钱包的余额服务

支持 ERC-7811 对钱包来说很复杂。它们需要一个多链索引器,了解用户所有正在进行的意图。这些正在进行的意图不会记录在链上,并且可能不是通过钱包的 UI 创建的,假设底层账户是自我托管和可移植的。

所有链抽象系统都需要一个余额服务,该服务具有一个 API 端点,用于报告给定用户的统一跨链余额。例如,Omni Account(一种基于意图的系统,用于对任何智能账户和智能 EOA 进行链抽象)具有编排器,这是一种后端服务,用于进行会计处理和排序意图。编排器还具有每个 Omni Account 的余额数据库和一个 API 端点,供钱包读取此余额。

简化应用的 ERC-7811

应用需要一种标准化的方式来与智能账户功能交互。随着越来越多的智能账户实现出现,这一点变得越来越重要,这些实现可能没有完全相同的接口和功能,但支持相同的功能。例如,每个账户实现可能具有不同的 gas 抽象或会话密钥实现,但最终的产品体验是相同的。

这与链抽象没有什么不同。钱包如何实现链抽象或任何其他账户抽象功能并不重要。应用程序只需要这些常用功能的通用接口。ERC-5792(钱包调用)提供了这种标准化。该计划是 Wallet_getAssets 作为此总体框架内的标准化方法存在,供希望与智能账户功能交互并利用智能账户功能的应用使用,而无需考虑底层实现。

ERC-7683 的替代方案

ERC-7683(辅助资金能力)提供了相同的功能,但更加精简,也可能更优雅。ERC 建议返回一个布尔值,该布尔值向应用发出信号,表明用户在另一条链上拥有辅助资金来支付交易费用,或者没有,而不是返回代币和余额的数组。

结论

链抽象是对钱包堆栈的强大升级。然而,由于应用程序发现资产的能力和钱包展示相关信息的能力受到阻碍,因此其对用户和应用程序的有效性受到阻碍。ERC-7811 提供了一种解药,但需要全生态系统的推动才能使其成为现实。因此,我们预计具有嵌入式钱包(对 UX 具有更大的垂直所有权)的多链应用程序将成为先驱,以及新兴钱包,在将其产品中嵌入链抽象功能时。

  • 原文链接: blog.rhinestone.wtf/chai...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
Rhinestone
Rhinestone
Infrastructure and APIs for seamless wallet abstraction. Built on smart accounts. Powered by intents. https://linktr.ee/rhinestonewtf