应用

基于意图的协议pt1:展开UniswapX

深度解析 UniswapX 协议的意图驱动设计,展示基于意图的 DeFi 协议创新。

在我们的基于意图的协议系列第一部分中,我们解析了 UniswapX。

tl;dr

  • UniswapX 支持链下交易对手发现和链上结算
  • 该协议使用荷兰式订单参数化 RFQ 系统,通过链上和链下流动性来源为交易者提供竞争性定价
  • 提升用户体验;抽象 Gas 费用,内化 MEV,补充 AMM 流动性及 V4 的钩子功能
  • 提供跨链交易,包括快速以太坊到 Rollup 资产转移

什么是 UniswapX?

UniswapX 是一个基于荷兰式订单的交易协议,用于路由和聚合流动性,使用离链签名订单,并在链上执行和结算。该协议为交易者(交换者)提供 Gas 费用抽象、内化 MEV 带来的价格提升、访问链上和链下流动性来源,以及跨链交易功能

调换者签署链下订单,这些订单由支付燃料费的填充者链上提交。填充者之间的竞争为调换者提供了最佳价格。荷兰订单通过 RFQ 系统进行参数化。用户在拍卖中收到的最差价格将是 Uni v2-v3 池中可用的最佳价格。

UniswapX 没有指定填充者如何为调换者订单提供流动性:流动性可以来自 Uniswap 等链上流动性来源、其他 DEX、链下流动性或来自其他 UniswapX 订单的组合。多个订单可以捆绑到同一笔交易中,该交易还可以在链上原子地执行其他操作。

跨链 UniswapX 是一种强大的原语,它利用原生资产交换和乐观挑战游戏来提供与任何消息传递协议兼容的快速桥接

简史

Uniswap 将自动化做市商的概念引入以太坊,这一概念最初由 Hanson 为预测市场提出的对数市场评分规则(LMSR)所普及。自动化做市商(AMMs)是汇集流动性并根据算法向交易者提供流动性的代理。AMMs 对于创建专业做市商因需求不足而无法参与的对子市场非常有用。

在 Uniswap 中,流动性提供者(LPs)通过将两种代币存入特定代币对的钱包合约来进行做市,并获得凭证代币,该代币使他们有权获得交易费,这些费用按比例分配给交换时在范围内的所有流动性。

v1

Uniswap v1 引入了以太坊上的智能合约系统,该系统实现了一类名为恒定产品做市商(CPMM)的自动化做市商。

x∗y=k

CPMMs 允许在不依赖可信第三方的情况下进行代币交换。这些市场用户的主要担忧之一是去中心化交易所的价格能否准确跟随流动性更高的中心化交易所的价格。

Uniswap v1 交易对存储两种资产的总储备,为这两种资产提供流动性,并维持不变量,使得储备的乘积不能减少。v1 中的所有代币都与 ETH/ERC20 对进行配对。

v2

Uniswap v2 引入了任意 ERC20/ERC20 代币对的创建。它还提供了一个价格预言机,允许以太坊上的其他合约估算一对的时间加权平均价格。此外,v2 引入了闪电交换 - 允许交易者在交易中支付之前先接收资产并在其他地方使用它们。首次引入了协议费 - 它未来可以通过 DAO 治理开启。v2 还重新设计了协议合约以减少攻击面。

v3

Uniswap v3 引入了多项新功能,包括集中流动性。集中流动性通过允许 LP 在可以模拟任何自定义 AMM 曲线的刻度范围内提供流动性,提高了 AMM 的效率。其他新功能还包括灵活的费用层级、改进的价格预言机和协议费用治理(费用开关)。

v4

Uniswap v4 通过引入 hooks 提供了完全自定义的池。这允许使用自定义订单类型、动态费用和自定义曲线创建池。

Uniswap V4 为所有池使用一个共享的单例合约。当跨多个池路由时,这会带来 gas 效率的提升。另一个特性是单例合约的闪电会计,这简化了原子交换/添加和多跳交易。EIP-1153 将使闪电会计更加高效。最后,Uniswap v4 恢复了 ETH/ERC20 代币对。

动机

Uniswap 有两种类型的用户:流动性提供者(LPs)和交易者。通过高效的路径选择和自定义钩子,LPs 可以为其吸收有害订单流得到合理补偿。通过基于报价请求(RFQ)系统参数化的荷兰式订单,交易者利用填充者竞争来获得最佳价格。UniswapX 专注于后者,但与前者形成自然结合,而 V4 版本则解决了这一问题。

架构

路由问题

2021 年 9 月,Uniswap 推出了自动路由器,该路由器可以同时将交易分配到多个池中。自动路由器优化了在 Uniswap v2、v3 以及即将推出的 v4 中的路由。

随着做市商协议(AMMs)变得更加灵活,由于流动性碎片化加剧,路由变得更加困难。如今,Uniswap 协议拥有数万种代币、四个不同的协议版本、在多个链上的部署以及多个流动性来源。随着 Uniswap v4 和钩子(hooks)的出现,路由问题变得更加复杂。

UniswapX 试图通过创建一个竞争性的流动性路由市场来解决这个问题。这个市场可以在链上或链下运行。参与寻找最佳路线、最佳池、发现所有不同流动性的人越多,交易者在长期内能获得的交易价格就越好。

内化 MEV

UniswapX 内部化 MEV,通过将订单产生的任何盈余以价格改善的形式返还给交易者,从而减少价值损失。这借鉴了原始的 MEV 捕获 AMM(McAMM)设计。

荷兰订单

UniswapX 使用一种订单类型,荷兰订单,它与荷兰式拍卖非常相似。荷兰订单的递减特性在填充者之间创造了竞争性市场,促使他们尽快为交易者找到最佳可能价格,同时为自己保留一些微小的利润空间。

荷兰订单执行的价格取决于其被纳入区块的时间。订单以一个估计对交易者比当前市场估计价格更有利的起始价格开始。订单的价格随时间衰减,直到达到交易者愿意接受的最低价格。填充者被激励在订单对他们来说变得有利可图时立即执行订单。如果他们等待太久,他们就有可能失去订单给另一个愿意接受较小利润的填充者。

这个概念与 EIP-2593、Agoric 论文以及 thegostep 提出的费用递增设计相似。

序参数

  • 输入标记
  • 输出标记
  • 输入(输出)数量
  • 起始输出(输入)金额
  • 最小输出(输入)金额
  • 衰减函数
  • 声明截止日期
  • UniswapX 反应器合约的授权

报价请求

UniswapX 协议不强制执行特定的衰减函数。一种参数化荷兰式订单起始价格的方法是通过链下报价请求(RFQ)系统查询一组填充者。

为了激励这个填充者网络提供他们最好的价格,UniswapX 允许订单指定一个填充者,该填充者在短时间内获得独家填充订单的权利,之后荷兰式拍卖开始,任何填充者都能够执行该订单。任何价格优于 RFQ 最佳报价的订单仍然可以竞争赢得该订单。

RFQ 系统可以通过使用伴随的声誉或惩罚系统来限制填充者滥用这种排他性提供的免费选项,并确保交换者用户体验不受影响。

系统代理

  • 调换者 - 使用该应用程序并有意向的用户。始终能获得其订单的最佳执行结果。
  • 填充者 - 一组 MEV 搜索者、做市商和/或其他链上代理的组合,他们接单用户订单并将其发送至反应器合约。通过链上提交调换者的订单,填充者代为支付 Gas 费用。这些成本随后通过将 Gas 费用计入执行价格来收回。
  • 反应堆-该合约负责检查交易执行是否符合填充者策略的参数,以及不符合参数的交易将被撤销。
  • 执行者-订单填充合约,用于填充 UniswapX 订单。它们指定填充者完成订单的策略,并由反应堆调用。

意图生命周期

1、用户签署意向。

2、填充者在荷兰式拍卖中竞争订单。

  • 交换者的订单以高于当前市场估计价格的价格开始。
  • 订单随时间衰减,直到订单变得有利可图或交换者愿意接受的最低价格达到——这可能是由 v2 和 v3 AMMs 提供的最佳价格。
  • 填充者还可以通过"链下"的 RFQ 系统参数化荷兰式拍卖的起始价格。

3、赢得拍卖的填充者将订单提交给反应堆合约“链上”,该合约指定要调用的执行者合约。

4、执行者合约将输出代币发送给交换者。

5、执行者合约从交换者的地址提取输入代币。

6、反应堆合约检查所有条件是否满足。

示例

请注意,以下内容是此处示例的简化变体。

Alice 想要用 1 ETH 换取尽可能多的 USDC。Alice 向(潜在成交方)Bob 和 Carlo 询价:

  • 鲍勃提出以 1,000 USDC 的价格购买爱丽丝的 ETH
  • 卡洛出价 999 USDC
  • 爱丽丝也可以通过 Uniswap v3 直接用 1 ETH 兑换 997 USDC
  • 爱丽丝接受鲍勃的报价 1,000 USDC,并签署订单。该订单包括最大价值(由鲍勃的报价 1,000 USDC 设定)和最小价值 997 USDC(由 Uniswap 智能订单路由器 API 设定)。鲍勃可以使用自己的 USDC 或通过将爱丽丝的 1 ETH 路由到各种链上流动性场所(Uniswap v3、v2、Curve、Sushi)来履行爱丽丝的订单。鲍勃决定使用一些自己的 USDC 来履行爱丽丝的订单,并支付爱丽丝 1,000 USDC 以换取她的 1 ETH。

或者,如果鲍勃决定接受他的报价,爱丽丝无需提交新的订单和签名。相反,她的现有订单会自动更新,向任何愿意以 999 美元 USDC 换取 1 个以太币 ETH 的填充者提供 1 个以太币。一个区块过去了,其他填充者都不愿意以 999 美元 USDC 填充爱丽丝的订单。又过了另一个以太坊区块(12 秒),爱丽丝的 1 个以太币变得可以以 998 美元 USDC 出售。突然,卡洛意识到他可以在收取 1 美元 USDC 利润的同时,通过将爱丽丝的交易路由到 Uniswap v3 和 Curve v2 的组合中,以 998 美元 USDC 填充爱丽丝的 1 个以太币卖单。卡洛代表爱丽丝向 Uniswap v3 和 Curve v2 发送了 1 个以太币,退还给爱丽丝 998 美元 USDC,并保留剩余的 1 美元 USDC 收益。

这种相对于 Uniswap v3 的价格提升是通过从多个平台获取流动性,并通过先进的订单路由捕获原本可能被 MEV 搜索者获取的剩余价值来实现的。

跨链排序

简化

发起跨链订单时,交易者签署一个链下订单,该订单包含上述单链订单的相同参数,以及以下参数:

  • 结算预言机——一个单向预言机,能够证明某些目标链上发生的事件。
  • 规范汇总桥
  • 轻客户端桥
  • 第三方桥
  • 成交截止时间 - 订单必须在目标链上成交之前的时间
  • 填充债券金额和填充债券资产——填充者必须在原链上存入的债券
  • 证明截止时间 — 成交者必须在原链上证明其成交之前的时间

跨链交易生命周期

1、填充者通过首先声明交易者的订单,并将填充者保证金提交给原链反应器合约,然后通过目标链反应器合约将资产转移到目标链上的交易者地址来执行订单。

2、反应器合约记录订单在填充截止日期前已执行,并通过结算预言机向原链上的反应器合约发送消息,确认交易者订单的履行。

3、交易者的资产连同保证金随后被释放给原链上的填充者。如果填充者在证明截止日期前未执行订单,交易者将从原链上的反应器合约收回其输入资产和填充者的保证金。

乐观

结算预言机可能缓慢或昂贵。一个乐观的跨链协议可以缓解这些结算延迟问题,有效地在任何缓慢的桥梁之上构建一个快速且廉价的桥梁。乐观协议包括与简化协议相同的参数,以及这些附加参数:

  • 挑战保证金金额和挑战保证金资产——挑战者在原链上必须提交的保证金金额。
  • 挑战截止时间——挑战者在该时间之前可以挑战成交。这必须在证明截止时间之前。

乐观跨链交易生命周期

在乐观情况下,除以下情况外,所有内容均与上述描述相同:如果填充者在成交截止时间之前在目标链上填充了交换者的订单,并且在挑战期结束之前没有人挑战成交,则填充者在原链上获得交换者的资金,以及他们的填充保证金。

挑战游戏

  • 填单截止后、挑战截止前任何人都可以挑战填单者
  • 挑战需在原链上使用反应堆合约发起
  • 若填单被挑战,填单者必须在证明截止前向结算预言机提供证明
  • 如果填充者证明他们在证明截止日期前完成了订单,他们将获得挑战者的保证金
  • 如果填充者未能提供有效证明,填充者的保证金将在挑战者和交换者之间分割
  • 交换者的资金将被退还至原始链

未来考虑

费用

UniswapX 具有与 Uniswap V2/V3 相同的费用切换机制,该机制由治理机构控制。DAO 可以投票决定为特定代币对每笔交易开启 5 个基点的费用。该费用需要在 UniswapX 部署的每个链上单独激活。

填充者的问责制

意图为填充者提供了提高效率、用户体验和其他满足条件的自由度。这里我们引入了一个填充者的委托代理问题(PAP)。

目前填充者角色是授权的,他们可以采取的行动受到限制。是否存在一个问责框架,使得填充者可以无权限操作,同时确保他们不会合谋向用户提供次优填充,且这些行为可以被社区追踪?

Skip 团队正在 Cosmos 生态系统中积极思考这个问题,并最近为 dydx 验证者引入了一个声誉仪表板,用于监控订单簿差异。虽然 UniswapX 存在公共仪表板,但监测填充行为以保持其问责制将非常重要。

关于问责制、操作员和 MEV 的其他工作包括类似 Osmosis 治理提出的社交削减变体。慢游戏也是用户保持操作员诚实的一种问责机制,允许用户通过“强制”方式切换到非榨取型操作员。

MEV

UniswapX 可能会通过减少与链上流动性交易的无信息(零售)订单流,对 MEV 供应链交易供应网络产生实质性影响。由于链上交易活动减少,作为 AMM LP 提供流动性可能会变得更加难以辩护。

此外,UniswapX 的填充者可以优先查看零售订单并有机会执行这些订单。AMM 流动性提供者(LPs)则获得剩余的部分,包括专业做市商不愿执行的劣质订单流。V4 中的钩子功能可以通过引入动态费用等方式,帮助减少被动 LPs 暴露的 LVR。

或许由于可供目标的无主动流动性减少,以太坊上 AMM 之间的套利机会在减少。这降低了系统中暴露的 MEV 数量,从而减少了集成搜索者-构建者赢得大量区块的机会。

今天,集成构建者赢得了约 45%的区块。他们具有优势,因为他们能够捕捉中心化金融与去中心化金融之间的套利机会。当查看过去 7 天内构建者盈利的最新快照时,你会发现中立构建者的盈利能力普遍低于集成构建者。

如果由于市场结构变化(UniswapX + Hooks)导致构建者减少垂直整合的动力,转而通过捆绑合并和额外服务进行竞争,那么这或许能在中期为网络实现更可持续的均衡。

并非所有人都认同这一分析。未来交易供应网络将如何演变还有待观察。有些人认为,更多类似 UniswapX 的协议的开发将导致更整合的构建者,这与上述观点相反。

集成

###钩子

Uniswap v4 引入了一种新的原语,称为钩子(Hooks),它们是外部部署的合约,在池的执行过程中特定点执行一些自定义逻辑。钩子可以修改池参数或添加新功能。对钩子的一种简单理解是 AMM 池的 ABCI++。

一些功能包括动态费用、TWAMMs 和限价订单。每个新部署的池都可以有自己的自定义钩子。这可能会引发大量实验,但代价是流动性碎片化。UniswapX 可以在补充 AMM 流动性填充或完全通过 AMM 流动性寻找最佳路径时,通过 v4 池提供路由。

我们可能会看到流动性池竞相与填充者整合,以使其流动性和独特钩子被发现。钩子可能遵循幂律分布,其中少数钩子主导大多数流动性池,而其余的钩子则呈长尾分布。

额外构建者服务

通过钩子和额外构建者服务的结合,UniswapX 可以提供事件驱动交易、预确认和订单取消等功能。

SUAVE

SUAVE 是一个用于 MEV 机制的去中心化市场——SUAVE 应用。开发者可以在 SUAVE 链上部署 MEV 应用,并借助 SUAVE 的信誉和去中心化。这保护了用户免受垄断的影响,因为 SUAVE 为应用用户提供了低转换成本,这迫使机制运营商保持诚实。

UniswapX 就是这样一款应用,它可以从 SUAVE 的信誉和去中心化中受益。从长远来看,用户不再需要信任填充者——TEE(可信执行环境)即使在存在恶意运营商的情况下也能提供完整性和隐私保证。由于应用之间的低转换成本,用户可以追究填充者的责任,同时鼓励竞争

结论

UniswapX 协议改善了交易者的用户体验。UniswapX 解决了路由问题,以价格改善的形式内部化 MEV,并在不久的将来引入基于乐观机制的、最小化信任的跨链交换。关于隐私、填充者的问责框架以及未来集成仍存在一些开放性问题

规范参考

UniswapX

Uniswap v4 核心

Uniswap v3 核心

介绍 UniswapX 协议

Uniswapx 是如何工作的?

UniswapX 仓库

EthCC 6:链上交易

UniswapX 揭秘:DeFi 变革者