UniswapX 协议白皮书

    摘要UniswapX协议是为以太坊虚拟机实现的基于荷兰拍卖的非托管交易协议。UniswapX聚合了链上和链下流动性,以不断优化价格的形式将MEV内化到协议中,为用户提供无需Gas兑换,并可扩展以支持跨链交易。1简介我们介绍了一种基于荷兰式拍卖的去中心化交易协议的设计,该协议使用链下签名订单在链上执行和结算。UniswapX协议有几个优点:UniswapX将路由和批处理外包给一组无许可的填单者(Fillers)。这些填单者可以将订单路由到链上和链下流动性的组合,确保兑换者的订单始终获得最佳执行。UniswapX交易使用Permit2可执行的链外代币,允许兑换者隐式把交易费用作为兑换的一部分,省去了要持有链上原生代币的余额的要求。与Uniswap协议上的兑换相比,兑换者不用为失败的交易支付费用,并且批量结算和/或直接从填单者库存中填充的兑换更省钱。与AMM不同的是,UniswapX将MEV内化了[9],通过将订单产生的任何盈余以提高价格的形式返还给兑换者来减少价值损失。此外,UniswapX的订单更不容易受到抢跑的影响。UniswapX可以扩展到支持跨链交易,使兑换者可以无缝地交易源链上的资产以换取目标链上所需的资产。以下各节将深入解释这些变化以及帮助实现这些变化的架构。2签名订单当兑换者通过Uniswap协议(v1、v2、v3和v4[[3-6])进行交易时,他们会创建交易并签名。这些交易指定一个输入Token、一个输出Token、一个特定的执行路径和一个最低输出量。然后,兑换者将交易提交到内存池(无论是公共的还是私有的),然后由区块构建者接收并包含在区块中。UniswapX利用了Permit2[19],这是一种代币授权合约,为任何ERC20代币引入了基于签名的授权和转让。此外,UniswapX还使用Reactor合约进行链上结算,Reactor合约负责检查交易的执行是否符合用户期望的参数,并撤销不符合参数的交易。兑换者必须首先授权Permit2合约。

    然后,通过UniswapX协议进行交易的兑换者不需要自己创建和提交交易,而是对交易订单前面,订单指定:(1)输入代币(即支付代币)(2)一个输出代币(即获取代币)(3)输入(输出)量(4)一个起始输出(输入)金额(5)最低输出(输入)量(6)一个衰减函数(7)兑换期限(8)授权UniswapXreactor合约代其使用代币这些订单由MEV搜索者、做市商和/或其他链上代理(统称为填单者filler)共同接收,并将其发送给Reactor合约。通过在链上提交兑换者的订单,填单者代表他们支付Gas费用。这些费用通过会反映到执行的价格中,以便收回Gas成本。Reactor合约会调用填单者的Executor合约(执行者),指定填单逻辑,一旦资产来源确定,Executor合约就会将资产发送给兑换者,Executor合约就会从兑换者的地址提取资金。最后,Reactor会检查订单条件是否满足。UniswapX并未规定填单者如何填充兑换者的订单:流动性可来自Uniswap或其他DEX等链上流动性池、链下流动性或其他UniswapX订单。多个订单可以捆绑到同一笔交易中,也可以在链上原子执行其他操作。3荷兰式订单为了向兑换者提供最佳执行价格,UniswapX使用了一种我们称之为荷兰式订单的订单类型,它与荷兰式拍卖非常相似。荷兰式订单的衰减特性在填单者之间创造了一个竞争市场,以尽快为兑换者找到最佳价格,同时为自己保留一些微薄的利润空间。普通限价订单总是以其限价执行,而荷兰式订单则不同,它的执行价格取决于它被纳入区块的时间。订单的起始价格是对兑换者来说比当前估计市场价格更有利的价格--例如,如果当前市场价格是1ETH=1000USDC,卖出ETH订单的起始价格可能是1ETH=1050USDC。该订单的价格会随着时间推移逐渐下降,直到达到兑换者愿意接受的最差价格(例如1ETH=995USDC)。一旦有利可图,填单者就有动力尽快填单。如果等待时间过长,他们就有可能将订单拱手让给其他愿意接受较低利润的填单者。4跨链订单UniswapX协议可扩展至支持跨链交易,即兑换者用其在源链上持有的资产换取目标链上所需的资产。跨链UniswapX有以下几个优势:只要两个链之间有信息传递桥梁,UniswapX就能在任何两个链之间提供快速兑换。兑换和桥接合并为单个操作,兑换者无需直接与桥对接,无需在任一链上维护Gas代币,也无需等待结算延迟。

    UniswapX可以提供从L2到其父L1的近乎即时的退出。兑换者可以指定在目标链上接收原生资产或标准资产,而不是桥接资产。例如,主网上的ETH可以直接兑换为Avalanche上的AVAX。被动桥接风险降至最低。兑换者在兑换原生资产时不会承担任何桥接风险,而填单者只有在通过桥接在链之间重新平衡资产时才会承担桥接风险。4.1简化的跨链订单首先,我们将解释UniswapX协议跨链的简化版本,然后再将其扩展到更高效的乐观版本。为了启动跨链订单,兑换者需要签署一份链外订单,其中包括与单链订单相同的参数,以及以下附加参数:(1)一个结算预言机-一个单向预言机,可以证明某个目标链上发生的事件。这可以是Rollup与其父链之间的官方桥、轻客户端桥或第三方桥(2)填单截止时间-订单必须在目标链上成交的时间(3)填单者保证金金额和填单者保证金资产-填单者必须在源链上存入的保证金(4)证明截止时间-填单者必须在这个时间之前,在源链上证明其完成了订单填单者保证金金额、填单截止时间和证明截止时间的参数不在本文讨论范围之内。与UniswapX协议的单链实现一样,兑换者的订单会传播到填单者网络,填单者向源链的reactor合约提交订单、兑换者的资金和填单者保证金以此来竞争执行订单。填单者通过在目标链上转移兑换者所需的资产来执行订单。他们首先将资产发送到reactor合约,然后由reactor合约将资产转发到兑换者的地址。目标链上的reactor合约会记录订单已在指定截止时间前完成,并通过结算预言机将消息传递回源链上的reactor合约,确认兑换者的订单已完成。然后,兑换者的资产连同保证金被释放给源链上的填单者。如果填单者没有在证明截止时间前执行订单,兑换者将从源链上的reactor合约处收到其支付的资产和填单者的保证金。单链兑换UniswapX简化的跨链兑换4.2乐观的跨链订单某些结算预言机的使用可能会过于缓慢或昂贵。例如,对填单者而言,执行从一个Rollup链到另一个Rollup链的兑换可能过于昂贵,需要超过七天的时间,并且在允许他们保管兑换者的输入代币及其初始保证金之前,至少需要在L1上进行一次交易。乐观的跨链协议可以缓解这些结算延迟问题,有效地在任何缓慢的桥梁之上构建一个快速而廉价的桥梁。

    乐观协议包括与简化协议相同的参数,以及以下附加参数:(1)挑战保证金金额和挑战保证金资产--挑战者必须在源链上支付的保证金金额。(2)挑战截止时间-质疑者可以对填单提出质疑的截止时间。该期限必须在证明截止时间之前。在协议简化版中,填单者执行订单的方式是:向兑换者索要订单,并向源链Reactor合约提交填单者保证金,然后通过目标链上的reactor合约将资产转移到兑换者在目标链上的地址。reactor合约会记录该订单已在截止时间前成交。在最乐观的情况下,填单者在填单截止时间前完成在目标链上兑换者的订单,在质疑期结束前无人对订单交易提出质疑,填单者在源链上收到兑换者的资金及其填单保证金。为了让填单者保持诚实,任何人都可以在填单截止时间之后、挑战截止时间之前,使用源链上的Reactor合约挑战填单者。如果填单者受到质疑,填单者必须在证明截止时间前使用结算预言机提供证明。如果填单者能证明他们在证明截止时间前完成订单,那么他们就会收到挑战者的保证金。如果填单者未能提供有效证明,则填单者的保证金将由挑战者和兑换者平分,兑换者的资金将在源链上返还给他们。UniswapX乐观跨链兑换,无挑战UniswapX乐观跨链不成功挑战5订单参数化方案UniswapX协议不强制执行特定的衰减函数。同样,该协议也没有规定设置初始荷兰式订单价格的方法,但它包含一些可选功能,以启用不同的机制。荷兰式订单起始价格参数化方案的一种方法是,通过链外询价系统(RFQ:RequestForQuote)投票选择填单者。为了激励这个填单者网络提供尽可能好的价格,UniswapX允许订单指定一个填单者,该填单者在短暂的时间内享有填单的独家权利,之后荷兰式拍卖开始,任何填单者都可以执行订单。RFQ系统可能会受益于配套的补偿或惩罚制度,以限制滥用这种专有权为填单者提供的自由选择,并确保兑换者的用户体验不受损害。与订单参数化设计一样,任何此类系统都超出了核心协议和本文的范围【2】。6费用Uniswap治理可以对每个UniswapX兑换收取最高0.05%的费用,与Uniswapv2的最高费用相同。

    治理必须以每交易对为单位指定费用,费用必须是以基础点为单位的整数值。治理还必须按链激活费用。接口和钱包可以选择对通过其平台提交的互换收取额外的无上限费用。7先期工作UniswapX协议从过去和现在的许多协议中汲取灵感。这并不是一份详尽的清单。7.1签名订单许多协议已经认识到让兑换者签署订单而使用实际交易,包括0x[20]和Wyvern[21]。包括CoWSwap[8]和dYdX[13]在内的一些协议都支持批量签署链外订单。Seaport[17]特别支持带有衰减函数的链外签名订单。7.2荷兰式拍卖荷兰式拍卖在DeFi中有大量应用,包括Seaport中的NFT销售、MakerDAO[14]和EulerProtocol[11]中的清算,以及DutchX[15]等协议中的交易。StephaneGosselin还曾在EIP2593中提议使用荷兰式拍卖作为确定交易费用的方法[10]。最近,1inch在其Fusion协议[1]中探索了签名订单与荷兰式拍卖的结合。7.3聚合器包括1inch、0xAPI和Paraswap在内的项目[18]为兑换者提供了跨各种链上流动池的智能订单路由功能。其中一些项目还允许链外做市商通过RFQ系统提供订单改进。7.4跨链荷兰式拍卖Summa[12]率先提出了通过单向消息传递预言机进行基于荷兰式拍卖的跨链交易的想法。7.5乐观桥Optics[7]、Nomad[16]和Across[2]都采用了防欺诈结算设计,提供无信任和快速的代币桥。8结论UniswapX是一种无托管和无许可的交易协议,它使用荷兰式拍卖在填单者之间创建一个有竞争力的路由市场,并利用链上和链下流动性的组合。通过将订单结构化为Permit2可执行的链外签名,该协议为兑换者提供了无Gas交易体验。UniswapX还可以扩展到支持跨链兑换,使兑换者可以近乎即时地将资产从L2桥接到其父链L1。参考资料[1]登链翻译计划:https://github.com/lbc-team/Pioneer[2]Tiny熊:https://learnblockchain.cn/people/15[3]learnblockchain.cn/article…:https://learnblockchain.cn/article/6200