# UniswapX 白皮书

By [FunPlay Group](https://paragraph.com/@funplay-group) · 2023-07-24

---

摘要 UniswapX协议是一种基于荷兰拍卖的非托管交易协议，实现在以太坊虚拟机上。UniswapX聚合了链上和链下的流动性，通过价格改进的方式内部化MEV，提供无需Gas费用的交换，并可以扩展支持跨链交易。

1 介绍

我们提出了一种基于荷兰拍卖的去中心化交易协议设计，使用离线签名的订单在链上执行和结算。 UniswapX协议提供了以下几个优点： • UniswapX将routing和batching外包给了一组无需许可的Fillers。这些Fillers可以将订单路由到链上和链下的流动性的组合，确保Swappers始终获得最佳的执行价格。 • UniswapX交易使用Permit2可执行的离线签名，允许Swappers隐式地支付交易费用作为其交易的一部分，从而不需要持有链的原生代币。 • Swappers不需要为失败的交换支付Gas费用，而批量结算和/或直接Fillers库存中填充的订单比核心Uniswap协议上的交易更节省Gas。 • 与AMM不同，UniswapX内部化了MEV \[9\]，通过将订单生成的任何剩余价值以价格改进的形式返还给Swappers，减少了价值损失。此外，UniswapX订单更不容易被前置交易。 • UniswapX可以扩展以支持跨链交易，使Swappers可以无缝地交易原始链的资产以获取目标链上的所需资产。 以下各节详细解释了这些变化以及用于实现它们的架构变化。

2 签名的订单

当Swapper通过Uniswap协议（v1、v2、v3和v4 \[3-6\]）进行交易时，他们创建并签署交易。这些交易指定一个输入、一个输出token、一个特定的执行路线和一个最小输出金额。然后，Swapper将其交易提交到mempool（无论是公共的还是私有的），然后由块构建者拾取并打包在块中。 UniswapX利用Permit2 \[19\]，这是一个token批准合约，引入了基于签名的批准和转移，适用于任何ERC20令牌。此外，UniswapX使用Reactor 合约进行链上结算，该合约负责检查交易的执行是否与用户期望的参数相匹配，并撤销不符合条件的交易。Swapper必须首先将token approve 到Permit2合约。然后，Swapper通过UniswapX协议进行交易而不是创建并发送交易，需要签名订单,指定以下内容：

（1）输入token

（2）输出token

（3）输入（输出）金额

（4）开始输出（输入）金额

（5）最小输出（输入）金额

（6）衰减函数

（7）认领截止日期

（8）授权UniswapX Reactor 合约代表他们消费token

这些订单由MEV搜索器、市场Makers和/或其他链上代理（统称为“Filler”）接收，它们将这些订单发送到Reactor合约。通过在链上提交Swappers的订单，Fillers代替其支付Gas费用。然后将这些成本通过将Gas费用计入执行价格来收回。

Reactor合约随后调用Filler的Executor合约，指定填充逻辑。一旦资产被获取，executor合约将资产发送给Swapper，executor从Swapper的地址中提取资金。最后，Reactor检查订单的条件是否已满足。 UniswapX不指定Filler如何填充Swapper的订单：流动性可以聚合Uniswap或其他DEX的链上流动性，也可以来自于链下流动性或其他UniswapX订单。多个订单可以捆绑在同一笔交易中，该交易还可以原子地执行其他操作。

3 荷兰拍订单

为了为Swappers提供最佳执行价格，UniswapX使用一种我们称之为荷兰拍的订单类型，它与荷兰拍卖非常相似。荷兰拍的衰减特性在Fillers之间创建了一个竞争市场，以尽快找到最佳价格，同时为自己保留一些小利润。 与始终以限定价格执行的普通限价订单不同，荷兰拍执行价格取决于其在区块中的时间。订单的起始价格估计为对Swapper而言比当前预估市场价格更好的价格 - 例如，如果当前市场价格为每个ETH的1,000 USDC，则卖出订单的起始价格可能从每个ETH的1,050 USDC开始。然后，订单的价格会随着时间的推移而下降，直到达到Swapper愿意接受的最差价格（例如，每个ETH的995 USDC）。 一旦Filler能够获利，他们就会有动力尽快填充订单。如果他们等待太久，他们就有失去订单的风险如果其他Filler愿意接受较小的利润。

4 跨链订单

UniswapX协议可以扩展到支持跨链交易，其中Swapper交易他们在起始链上持有的资产以获取目标链上的所需资产。 跨链UniswapX提供了几个好处： • 只要两者之间有消息传递桥梁，UniswapX就可以在任意两个链之间提供快速交换。 • 交换和桥接合并为单个操作，消除了Swapper直接与桥交互，维护任何其它链的Gas token或等待结算延迟的需求。 • UniswapX可以提供从L2到其父L1的几乎即时退出。 • Swapper可以指定他们在目标链上接收原生或其它的资产，而不是桥接资产。例如，主网上的ETH可以直接交换成Avalanche上的AVAX。 • 被动桥接风险最小化。当交换本地资产时，Swapper不承担任何桥接风险，而Filler只在通过桥梁在链之间重新平衡时承担桥接风险。

4.1 简化跨链订单

首先，我们将解释跨链UniswapX协议的简化版本，然后将其扩展到更高效的乐观协议。 为了启动跨链订单，Swapper签署一个离线订单，其中包含与单链订单相同的参数，以及以下附加参数：

（1）结算预言机 - 可以证明事件发生在某个目标链上的单向预言机。这可以是rollup与其父链之间的规范桥，轻客户端桥或第三方桥。

（2）填充截止日期 - 订单必须此时间之前在目标链上填充。

（3）Filler保证金金额和Filler保证金资产 - Filler必须在原始链上存入的保证金。

（4）证明截止日期 - Filler必须证明其在原始链上填充的最后时间。 Filler保证金金额，填充截止日期和证明截止日期的参数化超出了本文的范围。

与UniswapX协议的单链实现一样，Swapper的订单被传播到Fillers网络，Filler通过向原始链的Reactor合约提交订单，还有Swapper的资金和Filler保证金来竞争执行它。

Filler通过在目标链上转移Swapper所需的资产来填充订单。他们首先将资产发送到Reactor合约，然后将其转发到Swapper的地址。目标链上的Reactor合约记录了在指定截止日期之前填充订单的情况，并通过结算预言机向原始链上的Reactor合约传递消息，确认Swapper订单的履行。 Swapper的资产和保证金随后在原始链上释放给Filler。如果Filler在证明截止日期之前未执行订单，则Swapper会从原始链上的Reactor合约中获得其输入资产和Filler的保证金。

4.2 乐观跨链订单

有些结算预言机可能使用起来效率很低或成本很高。例如，从一个Rollup到另一个Rollup执行交换可能对Filler来说成本过高，需要超过七天的时间，并在L1上至少执行一次交易，才能取得Swapper的输入代币及其初始保证金。乐观跨链协议可以缓解这些结算延迟问题，有效地在任何慢桥的基础上构建一个快速和廉价的桥梁。 乐观协议包括与简化协议相同的参数，以及以下附加参数：

（1）挑战保证金金额和挑战保证金资产-挑战者必须在原始链上保存的保证金金额。

（2）挑战截止日期-挑战者可以在此之前挑战Filler的填充。这必须在Proof截止日期之前。

![单链交易示意图](https://storage.googleapis.com/papyrus_images/fe3b820d8d2cfd37120a9b6b3735df9895c31d29641255111851273df7a14a09.png)

单链交易示意图

![多链交易示意图](https://storage.googleapis.com/papyrus_images/54d2675270eb57237b866f4c0b2a007b00bf8b795d05bc7d013dff249a9b2fd4.png)

多链交易示意图

就像简化协议一样，Filler通过声明Swapper的订单并将Filler保证金提交给原始链Reactor合约，然后通过目标链Reactor合约将资产转移到目标链上的Swapper地址来执行订单。Reactor合约记录了订单在填充截止日期之前已经完成。

在理想情况下，Filler在填充截止日期之前在目标链上填充了Swapper的订单，没有人在挑战期结束之前挑战Filler，Filler在原始链上收到了Swapper的资金和他们的Filler保证金。 为了保持Filler的诚实，任何人都可以在填充截止日期过后，在原始链上使用Reactor合约，在挑战期限到期之前挑战Filler。如果Filler能够在证明截止日期之前证明他们在填充截止日期之前填充了订单，那么他们就会收到挑战者的保证金。如果Filler未能提供有效的证明，则Filler的保证金将在挑战者和Swapper之间分配，并将Swapper的资金退回到原始链上。

5 订单参数化

UniswapX 协议没有强制执行特定的衰减函数。 同样，该协议也没有规定设置荷兰拍卖初始价格的方法，但它包括一些可选功能，以实现不同的机制。 一种参数化荷兰拍卖起始价格的方法是通过离线请求报价系统对Filler的选择进行投票。为了激励这个Filler网络提供他们最好的价格，UniswapX 允许订单指定一个Filler，在这个Filler在短时间内获得独家填充订单权利之后，荷兰拍卖开始，任何Filler都可以执行订单。1 一个请求报价系统可能会从使用一个相应的声誉或惩罚系统来限制此独家权利提供Filler的滥用，并确保Swapper体验不受影响。与订单参数化设计一样，任何这样的系统都超出了核心协议和本文的范围。2

6 费用

Uniswap治理有能力在每个UniswapX交换的输出上收取高达0.05％的费用，与Uniswap v2相同的最大费用。治理必须指定每个交易对基础上的费用，并且费用必须是基准点的整数值。治理还必须在每个链的基础上激活费用。 接口和钱包可以选择在其平台上提交的交换中收取额外的无上限费用。

7 先前的工作

UniswapX 协议从许多过去和现在的协议中汲取灵感，以下是其中一部分。

7.1 签名订单

许多协议已经认识到使用Swapper签署订单而不是交易，包括 0x \[20\] 和 Wyvern \[21\]。一些协议，包括 CoW Swap \[8\] 和 dYdX \[13\]，支持批处理离线签名订单。Seaport \[17\] 特别支持具有衰减函数的离线签名订单。

7.2 荷兰拍卖

在DeFi领域有许多应用，包括Seaport中的NFT销售，MakerDAO和Euler Protocol中的清算，以及DutchX等协议中的交易\[15\]。Stephane Gosselin先前还提议在EIP 2593中使用荷兰拍卖来设定交易费用\[10\]。 最近，1inch在其Fusion Protocol \[1\]中探索了签署订单和荷兰拍卖的结合。Fusion Protocol是一个将签署订单和荷兰拍卖相结合的平台，用于在区块链和加密货币领域促进高效的交易。

7.3 DEX聚合器

项目包括1inch、0x API和Paraswap \[18\]，为交易者提供智能订单路由功能，涵盖了各种链上流动性场所。其中一些项目还通过RFQ系统允许链下市场制造商提供订单改进。

7.4 跨链荷兰拍卖

Summa \[12\]通过单向消息传递的预言机开创了基于荷兰拍卖的跨链交易的理念。

7.5 乐观跨链桥

Optics \[7\]、Nomad \[16\]和Across \[2\]都使用了反欺诈技术的结算设计，提供了无信任且快速的代币桥接。

8 结论

UniswapX是一个非托管且无需许可的交易协议，它使用荷兰拍卖在交易员之间创建一个竞争性的路由市场，并利用链上和链下流动性的结合。通过将订单结构化为Permit2可执行的链下签名，该协议为Swapper提供了无需Gas费的交易体验。UniswapX还可以扩展支持跨链交换，允许Swapper将资产从L2快速桥接到其父级L1链。

![不带挑战机制的乐观跨链交易示意图](https://storage.googleapis.com/papyrus_images/dfb4bba28179fdeb0df6c35066386e5c1a2615608853d89e0768679b077c7d4f.png)

不带挑战机制的乐观跨链交易示意图

![带挑战机制的乐观跨链交易示意图](https://storage.googleapis.com/papyrus_images/b73b40a7c4a8e4d70d970802f7fcb1612efa6dc4765e001ec24a4334eca203f6.png)

带挑战机制的乐观跨链交易示意图

**REFERENCES**

\[1\] 1inch Labs. 2022. The 1inch Network releases a major upgrade, Fusion. https:

//blog.1inch.io/the-1inch-network-releases-a-major-upgrade-fusion/

\[2\] Across. 2023. Across Overview. [https://docs.across.to/how-across-works/](https://docs.across.to/how-across-works/)

overview

\[3\] Hayden Adams. 2018. _Uniswap v1 Core_. Retrieved Jun 12, 2023 from https:

//hackmd.io/@HaydenAdams/HJ9jLsfTz

\[4\] Hayden Adams, Moody Salem, Noah Zinsmeister, Sara Reynolds, Austin Adams,

Will Pote, Mark Toda, Alice Henshaw, Emily Williams, and Dan Robinson. 2023.

Uniswap v4 Core \[Draft\]. (2023).

\[5\] Hayden Adams, Noah Zinsmeister, and Dan Robinson. 2020. _Uniswap v2 Core_.

Retrieved Jun 12, 2023 from [https://uniswap.org/whitepaper.pdf](https://uniswap.org/whitepaper.pdf)

\[6\] Hayden Adams, Noah Zinsmeister, Moody Salem, River Keefer, and Dan Robin

son. 2021. _Uniswap v3 Core_. Retrieved Jun 12, 2023 from [https://uniswap.org/](https://uniswap.org/)

whitepaper-v3.pdf

\[7\] Celo. \[n. d.\]. Optics Bridge FAQs. [https://docs.celo.org/protocol/bridge/optics](https://docs.celo.org/protocol/bridge/optics%02)

faq

\[8\] CoW Protocol. 2019. CoW Protocol Overview. [https://docs.cow.fi/?&utm\\](https://docs.cow.fi/?&utm%5C)\_

content=footer-link&utm\_medium=web&utm\_source=cow.fi

\[9\] Philip Daian, Steven Goldfeder, Tyler Kell, Yunqi Li, Xueyuan Zhao, Iddo Bentov,

Lorenz Breidenbach, and Ari Juels. 2020. Flash boys 2.0: Frontrunning in decen

tralized exchanges, miner extractable value, and consensus instability. In _2020_

_IEEE Symposium on Security and Privacy (SP)_. IEEE, 910–927.

\[10\] Dan Finlay. 2020. EIP-2593: Escalator fee market change for ETH 1.0 chain.

[https://eips.ethereum.org/EIPS/eip-2593](https://eips.ethereum.org/EIPS/eip-2593)

\[11\] Euler Finance. 2022. Euler Finance White Paper. [https://docs.euler.finance/](https://docs.euler.finance/)

getting-started/white-paper

\[12\] James Prestwich. 2018. Cross-chain Auctions via Bitcoin Double Spends.

[https://medium.com/summa-technology/summa-auction-bitcoin-technical-](https://medium.com/summa-technology/summa-auction-bitcoin-technical-)

7344096498f2

\[13\] Antonio Juliano. 2018. dydx: A standard for decentralized margin trading and

derivatives. _URl:_ [_https://whitepaper_](https://whitepaper)_. dydx. exchange_ (2018).

\[14\] MakerDAO. 2020. The Maker Protocol: MakerDAO’s Multi-Collateral Dai (MCD)

System. [https://makerdao.com/en/whitepaper#notes](https://makerdao.com/en/whitepaper#notes)

\[15\] Martin Köppelmann. 2018. DutchX - fully decentralized auction based ex

change. [https://ethresear.ch/t/dutchx-fully-decentralized-auction-based](https://ethresear.ch/t/dutchx-fully-decentralized-auction-based%02)

exchange/2443

\[16\] Nomad. 2022. Nomad Protocol Overview. [https://docs.nomad.xyz/the-nomad](https://docs.nomad.xyz/the-nomad%02)

protocol/overview

Version:0.9 StartHTML:0000000105 EndHTML:0000002352 StartFragment:0000000141 EndFragment:0000002312

\[17\] Opensea. 2022. Seaport Overview. [https://docs.opensea.io/reference/seaport](https://docs.opensea.io/reference/seaport%02)

overview

\[18\] ParaSwap. 2020. Welcome. [https://doc.paraswap.network/](https://doc.paraswap.network/)

\[19\] Uniswap Labs. 2022. Introducing Permit2 Universal Router. [https://blog](https://blog).

uniswap.org/permit2-and-universal-router

\[20\] Will Warren and Amir Bandeali. 2017. _0x: An open protocol for decentralized_

_exchange on the Ethereum blockchain_.

\[21\] Wyvern Protocol. 2020. Wyvern Protocol Documentation. https://

wyvernprotocol.com/docs

---

*Originally published on [FunPlay Group](https://paragraph.com/@funplay-group/uniswapx)*
