ERC7683:跨链意图标准

这篇文章分为两个部分。首先,我描述了我认为链抽象基础设施对于加密货币的消费者采用至关重要,并且基于意图的架构是最好的工程方法。其次,我描述了更广泛采用意图的主要障碍:求解器solver网络的活跃性。

我以一个解决方案结束这篇文章,并介绍了 Across 和 Uniswap 合作开发的标准,使用了从 CAKE 工作组得出的反馈。这个标准旨在优化求解器用户体验,降低进入通用求解器网络的门槛,最终实现更大规模、更具竞争力的求解器网络的繁荣。

问题

  1. 定义终态:什么使加密应用程序“可用”

  2. 为什么“链抽象”是一种解决方案,它是由模块化区块链的基本拓扑结构引起的用户体验问题

  3. 为什么可用的加密应用程序必须建立在链抽象基础设施之上

解决方案空间

  1. 意图为基础的架构如何引发链式抽象

  2. 了解当解决者网络庞大且竞争激烈时,意图市场表现最佳

  3. 引导意图求解器网络需要启动更多将产生意图的应用程序

提案

为什么我们需要一个跨链意图标准,优先考虑“求解器用户体验”,以使求解器和意图市场增长到足够大规模,以实现网络效应

不能在没有链抽象的情况下构建可用的加密应用程序

我们最优秀的人才是否在建设多余的基础设施?

许多人对最优秀的加密工程师和大多数基于思想家过度分配注意力和精力向最终用户提供更多的区块空间感到遗憾。这种批评是有道理的;相对于对它们的需求,为最终用户提供的 L2 太多了。

然而,我拒绝认为现有没有任何有用的加密应用程序。

去中心化金融为个人提供了自我托管数字资产的能力,使他们能够绕过严苛的服务提供商,并使用他们的数字资产购买在现实世界中有价值的东西。自我托管数据的承诺还为那些越来越不信任 FAANG 垄断企业保护其数据安全的个人提供了乌托邦的替代方案。

在我看来,真正的问题不是缺乏有用的加密应用程序,而是终端用户尝试访问它们时遇到的摩擦。终端用户在与加密应用程序交互时应该能够体验到以下内容:

速度:应用程序应该感觉像 web2 应用程序一样快。

成本:与 web2 不同,所有 web3 交互必须产生一些成本,但“每次点击的成本”应该可以忽略不计。

抗审查性(“无需许可”):任何拥有钱包的人都应该能够与应用程序交互,只要他们能负担得起点击。

安全性:点击应该做用户期望它们做的事情,而不是恢复 – 所有 web3 更新应该是永久的。

这些是“可用”的加密应用程序的特性。

我们一直在努力构建可用的加密货币

今天的模块化区块链解决方案为消费者提供了所有这些特性,但它们并不都在同一个地方提供。

在 2020 年,区块链是单一的,为最终用户提供了三个属性中的两个:速度、成本或安全性。然后,我们设想了一个以 Rollup 为中心或模块化的未来,可以同时解锁所有三个属性。

今天,我们已经为这种以滚动为中心的基础设施奠定了基础。L2 提供廉价且快速的区块空间,大多数 L2 提供无需许可的区块空间。相反,L1 提供抗 WW3、安全的区块空间。(您可以在我的简短调查文章中了解更多关于 L1 和 L2 提供的安全-用户体验权衡)。这些 L2 通过规范的消息路径与 L1 安全连接,为一个模块化但可互操作的网络奠定基础。在过去的四年里,我们已经建立了区块链之间的光纤,这将有一天支持有用的加密应用。但为什么模块化区块链如此难以使用?

模块化区块链网络的必然性在于资本资产将累积在最安全的层,而用户点击将累积在更快速和更便宜的层。

模块化区块链拓扑结构鼓励将安全的区块空间提供在不同的层上,而不是廉价和快速的区块空间。用户自然倾向于将他们的价值存储在最安全的网络上,但他们会要求与最廉价和快速的网络频繁交互。按设计,L2 和 L1 之间的规范路径是缓慢和/或昂贵的。这些现象解释了为什么用户必须通过这些规范路径来支付使用 L1 资产进行 L2 交互。这导致了“无法使用”的加密用户体验。

链抽象的目标是减少通过这些协议路径发送价值时与用户之间的摩擦。链抽象者假设用户更倾向于将他们期望的最终状态作为“意图”告知 dapp,而 dapp 则有责任实现他们的意图。用户不应该为了获得低费用和低延迟而牺牲其资产的安全保管。

因此,链抽象在很大程度上取决于用户能够安全、廉价、快速地在网络之间传输价值。如今一个常见的用户流程是,一个在“安全”链上(如以太坊)拥有 USDC 余额的用户想要在新的链(如 Blast 或 Base)上铸造 NFT 或交换新代币。为了尽可能少地执行这个过程,可以依次执行桥接→交换→铸造一系列交易(或交换→桥接→铸造)。

在这个例子中,用户的意图是在安全链上使用他们的 USDC 来在另一条链上铸造一个 NFT。 只要他们收到 NFT 并且他们选择托管的地方扣除了他们的 USDC 余额,用户就会满意。

基于意图的架构是构建链式抽象的唯一方式

链抽象依赖于跨链价值转移,但通过规范消息路径发送价值要么昂贵要么缓慢。“快速桥梁”为用户提供了跨网络发送价值的廉价和快速替代方案,但引入了新的信任假设。消息传递是构建快速桥梁最直观的方式,因为它是基于 TCP/IP 架构建模的;它依赖于桥协议充当 TCP 路由器连接两个链。

通过消息传递进行价值转移涉及桥接协议在原始链和目标链上的合约之间发送消息。当用户交易在原始侧触发此消息,并在消息的“有效性”得到验证后,消息将被中继到目标侧。

只有在发起消息的原始链交易已经完成后,消息才能被验证,这意味着交易已经永久地包含在原始链的规范区块链中。这种验证可以作为有效性证明完成,证明交易已经包含在原始链的共识中,作为一种乐观的提议,或者在原始侧累积了一定数量的见证签名后。一旦消息被中继到目标链上的桥接合约,代币就会释放给用户。

这种架构存在几个基本问题:

  • 验证机制必须等待完全确定性后,才能将消息发送到目标链协议合约。对于具有乐观确定性周期的 L2,这可能需要最多七天。
  • 每个桥接交易发送一个跨链消息,或者将消息批量发送,但批量只能在批量中的最后一个消息完成后发送。
  • 这座桥的能力有限,无法从外部获得流动性,以提供用户价格改进,因为它必须对用户意图的实现路径进行声明。

消息传递快速桥梁将根据验证机制的不同可能会不安全、缓慢或昂贵。意图市场是一种快速桥接的替代架构,源自一个关键的洞察:

价值是可替代的,对于接收者来说,价值是如何转移并不重要,只要他们收到资金。

桥梁能否将价值转移外包给一个复杂的代理以获得速度和降低成本?流动性在链上和链下是动态的,如果桥梁机制具有灵活性,在桥梁转移时选择最佳执行路径,价格改善是可以实现的。

意图机制允许用户指定精确的条件或契约,以便执行他们的价值转移交易。

最小可行意图是从链 A 支付 X 代币以在链 B 上接收 Y 代币的订单。

桥协议不需要在每个桥交易之间的域之间发送消息来满足用户的跨域意图。相反,该协议将价值转移外包给从无许可求解器网络中选择的代理,并且个体求解器将稍后从桥协议中寻求偿还。相比之下,消息传递机制明确指定了它们的交易应如何执行,并且不需要依赖代理的可用性。

意图结算协议

基于意图的桥接协议可以更精确地标记为意图结算协议,负责确保求解器不违反用户指定的条件。意图结算协议为求解器提供安全性,确保他们履行用户意图后会得到偿还和奖励。为此,意图结算协议需要向神谕求证意图履行的真实性。神谕的安全性可以建立在乐观的挑战期、见证门槛,或者基于零知识有效性证明等方式。

意图结算协议提供快速且廉价的价值转移,因为个体解决者可以承担最终风险并确定最佳执行路径

消息传递桥只能在源链达到最终性时才能进行通信。 乐观的 Rollups 上的最终性时间为七天,ZK Rollups 上为一小时。 尽管随着 ZK 轻客户端技术的更广泛采用和共享序列预确认技术的进步,这些最终性时间应该会下降,但所有区块链的最终性时间可能永远不会对用户感觉“即时”,这表明快速桥接解决方案仍然是必不可少的。 在不承担最终性风险的情况下,无法比最终性期间更快地中继消息——这超出了消息传递桥的范围——除非桥想要在中继路径中添加一个额外的可信代理,以弥补由于链重组而造成的损失。

意图驱动架构提供的加速是因为异构求解器网络中的单个求解器可以承担更多的最终风险,而消息传递协议无法做到,并在链重组风险完全消失之前满足用户的意图。求解器随后会向用户收取他们承担的最终风险,以换取更快的填充时间。

将跨链意图履行外包给代理商也平均为用户带来价格改善。在基于意图的桥梁中,前端用户订单到达目标链的解决者在其履行被验证后系统会进行补偿。这些意图结算可以批量处理以分摊成本。与用户不同,填充者不要求即时偿还,并将根据为其提供资金而向用户收费。批量结算并非基于意图的架构的独有特性,但该架构更适合批量结算,因为它将偿还步骤与意图履行步骤分开。

价格改善的更大来源来自于价值可替代的直觉,及时找到最佳路径通常会优于价值转移。(然而,有些路径在成本上是无法及时超越的,比如在将 USDC 跨越 CCTP 时。)

消息传递桥必须编码它们将如何向用户传递价值。一些选择以预定的汇率从流动性池中发送代币,而其他人则向需要的接收者铸造代表性代币,接收者需要随后交换所需的规范代币资产。

在满足用户意图时,代理可以从链上和链下流动性场所的组合中获取流动性。竞争求解器网络在理论上为用户提供无限的流动性来源(但即使这些流动性来源在链上事件的高波动性期间,如热门 NFT 铸造、空投和拉盘时,也可能很快被耗尽)。

将跨链订单作为意图提交,使解决者能够将订单生成的 MEV 内部化为价格改进。

基于意图的架构基本上是为安全而设计的

基于意图的桥梁可以安全地构建,因为它们将用户的紧急需求与结算网络的复杂需求分开。解决者可以等待偿还,而用户则不然,他们将根据结算协议让他们等待偿还的时间收取用户费用。因此,可以使用非常强大的机制验证意图结算,而不受严格的时间限制。从安全角度来看,这是可取的,因为验证意图履行直观上是复杂的。

作为生产中意图验证的一个例子,Across 在经过 90 分钟的乐观挑战期后,批量验证和偿还填充物。当然,结算网络应该努力尽快偿还填充物,以减少最终用户的费用。对乐观挑战机制的改进将是一种 ZK 有效性证明机制,这将需要将意图验证逻辑编码到一个 ZK 电路中。在我看来,验证证明机制将取代乐观挑战机制,并使意图结算网络能够更快地偿还用户。

那么,链式抽象是如何从基于意图的架构中产生的呢?

请记住,链抽象需要快速且廉价的跨链价值转移。它也不应要求用户在存储其资产的网络上提交链上交易。

如果用户的意图包括 Permit2 或 EIP3074 签名,则用户无需将其意图提交到链上。这对于基于消息传递和基于意图的桥梁都是适用的。这两种架构都可以利用 Permit2 模式,允许用户在链外签署他们愿意从原始链钱包支付的代币数量。

意图市场最好支持链抽象,因为它们提供了便宜和快速的跨链价值转移。想象一下,用户可以请求一个求解器为他们提供一个报价,以便在 Arbitrum 上进入 WETH 抵押头寸,使用他们在 Optimism 上的 USDC 作为支付。用户可以将这个意图离线发送到一个 RFQ 拍卖中,求解器可以对其进行竞标。拍卖的获胜求解器随后可以收到用户签署的意图,其中包含了在 Optimism 上花费他们的 USDC 的授权,他们在 Arbitrum 上希望收到的 WETH 金额,以及用于将这些 WETH 存入 Arbitrum 抵押头寸所需的 calldata。求解器随后可以在 Optimism 上提交此交易(代表用户)以启动跨链意图,并从用户的 Optimism 钱包中提取 USDC。最后,求解器可以通过向用户发送 WETH 并转发 calldata 来填充用户在 Arbitrum 上的意图,以便将用户输入到链上的抵押头寸中。

构建链抽象基础设施意味着使用户流程感觉即时和廉价,而无需他们提交链上交易。让我们通过讨论意图更广泛采用的障碍来结束本文。

为了从基于意图的链抽象中实现最佳用户体验,我们需要一个竞争激烈的求解器网络

基于意图的桥接取决于解算器网络效应,以表现比传递消息变体更好。这是意图与传递消息架构的核心权衡。现实情况是,并非所有产生意图的应用程序都需要访问一组完全竞争的解算器,并且有些可能更喜欢将其意图路由到寡头解算器网络。然而,当前的解算器网络状态尚不成熟,远未达到意图市场所依赖的解算器网络活跃性假设的履行程度。

我们不希望看到每个 dapp 都将意图路由到孤立的解算器网络的世界。用户体验的最佳情况是许多 dapp 与相同的解算器池进行通信,并且所有 dapp 都有自由更改将其意图发送到哪些解算器池。

我们如何启动求解器网络?

我们必须优先考虑求解器用户体验。

运行一个意图求解器是复杂的,需要在构建高性能软件以及管理跨链库存风险方面具有专业知识。自然地,将有限的利益相关方有兴趣支付运行此代码的启动成本。在最理想的情况下,为一个 dapp 编写的求解器,比如 UniswapX 求解器,可以被重复使用来解决其他产生意图的 dapp,比如 Across 和 CowSwap。

我们真的需要提高所有基于意图的 dapp 的求解器网络的总体资本效率。这将需要解决运行求解器的障碍。

为此,我们需要使产生意图的 dapps 对任何解决者可见,并确保所有解决者都能访问多个不同和竞争性的意图结算网络。这将使解决者有信心,他们可以选择将他们的意图履行路由到他们信任的结算网络。结算网络之间的竞争也将降低解决者的成本。

意向结算网络的价值主张是为解决者提供安全性以及其他功能,这些功能会影响解决者填写意向的能力。

求解者选择意图结算网络将影响他们向用户提供费用和执行时间保证的能力。一些结算网络可能会提供求解者独家期限,这将支持离链拍卖的发展,求解者和用户可以在那里协商并承诺中继费用。(这些意图拍卖可能还提供经济担保的预确认,进一步增强用户体验。要了解更多关于通过拍卖和预确认进行意图发现的用户流程,我推荐观看 Sorella 的 Karthik 的这次讲话。)

一些结算网络可能提供意向到期(即,在达到某个履约截止日期后将价值发送回用户)、意向支持(即,如果没有解决者,结算网络将使用自己的资产负债表来履行用户的意向)或灵活的偿还链(即,允许解决者选择他们偿还的链)。

最终,结算网络将竞相迅速、廉价地偿还解决者,而不会在安全性上妥协。反过来,解决者将把他们的订单流发送到允许他们向用户提供最低费用的结算网络,以赢得 dapp 订单流。结算和解决者网络的竞争取决于供应链中所有各方协调使用相同的语言,并且竞争将导致跨链价值转移的最佳用户体验。

很明显,我们需要一个跨链意图的标准

如果解决方案提供者可以假设意图将共享共同元素,那么他们可以重复使用他们的代码来解决由不同 dapp 发起的意图,并随后降低他们的设置成本。如果不同的 dapp 创建符合相同标准的意图,那么它们可以将它们的意图全部路由到相同的解决方案池。这将有助于引入下一代 dapp,使它们能够直接将它们的跨链意图插入到现有且成熟的解决方案池中。新的 dapp 不需要单独引入解决方案提供者,而是可以获得便宜、快速、安全和无需许可的价值转移。

如果它们符合标准,第三方跟踪软件也更容易跟踪任何新 dapp 的意图状态。

这个意图标准应该允许意图主体或解决者指定他们希望在哪个结算网络上结算他们的意图。

我设想竞争性的结算协议,如 SUAVE、Across、Anoma 和 Khalani,为意图解决者提供差异化的功能。根据结算网络向解决者偿还的情况,解决者可以向意图所有者提供不同的价格和时间保证。Dapp 和解决者可以同意将用户的意图路由到他们信任的结算网络,以避免审查,保持数据隐私,并且足够安全,可以信任偿还解决者。

通过将结算网络选择固定在意图订单中,求解器可以将这种确定性融入到他们向用户展示的报价中。求解器和用户在提交链上意图之前,可以消除有关桥梁定价的不确定性,从而降低成本。

与 Uniswap 合作,并根据 CAKE 工作组的反馈,Across 和我提议以下跨链意图标准,优先考虑解决方案用户体验:

这个标准的设计旨在简化解决者的工作。它做出的一个有主观色彩的选择是本地支持 Permit2/EIP3074,其中包括 nonce 和 initiateDeadline,并为填充者提供一些保证,比如他们将从结算网络中获得的退款金额以及他们可以跟踪的用户意图的格式。此外,标准中定义了一个 initiate 函数,关键地允许填充者(即将订单上链的人)在链上指定额外的“fillerData”,用户在签署 CrossChainOrder 时可能不知道这些信息。这使得填充者可以确保他们在提交用户的元交易时得到结算合约的奖励,并设置特定的还款信息,比如还款链。

该标准还旨在使 dapps 更容易跟踪意图履行状态,贯穿其生命周期。实施此标准的任何结算合约应创建一个自定义子类型 ResolvedCrossChainOrder,可以从任意的 orderData 字段中解析出来。这可能包括涉及交换的代币信息、目标链以及其他履行约束。标准中包含一个解析函数,以使 dapps 能够理解如何向用户显示意图状态,并使解决者了解他们正在处理的确切意图订单结构。

这个标准的设计目标是增强求解器的用户体验,使他们更容易支持多个结算网络,并确定性地计算他们的奖励。我相信这将使他们能够向用户提供更准确和更紧密的报价。您可以在这篇 X/Twitter 帖子和以太坊魔法师论坛上围绕它展开的讨论中阅读有关这个标准(代号 ERC7683)的更多细节。

结束思考

“意图”很令人困惑,因为它们没有被定义,这种缺乏定义正在导致真正的用户体验缺陷。

每个人都希望其他人使用他们对意图的标准定义,因此我完全承认,实际上很难建立标准。我认为首先定义一个意图结算系统,然后尝试吸引订单流是建立行业标准的正确方法。

在我看来,更为可行的方法是,那些已经拥有大量用户流量并产生许多用户意图的 dapps 将同意遵守一些最低标准,他们现有的解决方案将采纳这些标准。这将形成一个新的更大的解决方案池。通过获取来自已知场所的合并订单流,这个新的解决方案池将赚取更多利润,并能够向最终用户报出更好的价格。最终,新的 dapps 也将要求将他们的意图路由到这个解决方案池,并支持其意图标准。

为了让我们启动,Across 和 Uniswap 共同提出了一个标准,供所有意向供应链参与方在处理用户订单时使用,以便从链 A 发送 X 代币并在链 B 上接收 Y 代币。通过 UniswapX(在拍卖设计和意向发起方面具有比较优势)和 Across(在解决意向履行方面具有比较优势)流动的订单流可以合并并启动培育更大、更具竞争力的解决者网络的过程。

发表评论

电子邮件地址不会被公开。 必填项已用*标注