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) 授權UniswapX reactor 合約代其使用代幣

這些訂單由MEV 搜索者、做市商和/或其他鏈上代理(統稱為填單者filler)共同接收,並將其發送給Reactor 合約。通過在鏈上提交兌換者的訂單,填單者代表他們支付Gas 費用。這些費用通過會反映到執行的價格中,以便收回Gas 成本。

Reactor 合約會調用填單者的Executor 合約(執行者), 指定填單邏輯, 一旦資產來源確定,Executor 合約就會將資產發送給兌換者,Executor 合約就會從兌換者的地址提取資金。最後,Reactor 會檢查訂單條件是否滿足。

UniswapX 並未規定填單者如何填充兌換者的訂單:流動性可來自Uniswap 或其他DEX 等鏈上流動性池、鏈下流動性或其他UniswapX 訂單。多個訂單可以捆綁到同一筆交易中,也可以在鏈上原子執行其他操作。

3 荷蘭式訂單

為了向兌換者提供最佳執行價格,UniswapX 使用了一種我們稱之為荷蘭式訂單的訂單類型,它與荷蘭式拍賣非常相似。荷蘭式訂單的衰減特性在填單者之間創造了一個競爭市場,以盡快為兌換者找到最佳價格,同時為自己保留一些微薄的利潤空間。

普通限價訂單總是以其限價執行,而荷蘭式訂單則不同,它的執行價格取決於它被納入區塊的時間。訂單的起始價格是對兌換者來說比當前估計市場價格更有利的價格–例如,如果當前市場價格是1 ETH = 1000 USDC,賣出ETH訂單的起始價格可能是1 ETH = 1050 USDC。該訂單的價格會隨著時間推移逐漸下降,直到達到兌換者願意接受的最差價格(例如1 ETH = 995 USDC)。

一旦有利可圖,填單者就有動力盡快填單。如果等待時間過長,他們就有可能將訂單拱手讓給其他願意接受較低利潤的填單者。

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: Request For Quote)投票選擇填單者。為了激勵這個填單者網絡提供盡可能好的價格,UniswapX 允許訂單指定一個填單者,該填單者在短暫的時間內享有填單的獨家權利,之後荷蘭式拍賣開始,任何填單者都可以執行訂單。

RFQ 系統可能會受益於配套的補償或懲罰制度,以限制濫用這種專有權為填單者提供的自由選擇,並確保兌換者的用戶體驗不受損害。與訂單參數化設計一樣,任何此類系統都超出了核心協議和本文的範圍【2】。

6 費用

Uniswap 治理可以對每個UniswapX 兌換收取最高0.05% 的費用,與Uniswap v2 的最高費用相同。治理必須以每交易對為單位指定費用,費用必須是以基礎點為單位的整數值。治理還必須按鏈激活費用。

接口和錢包可以選擇對通過其平台提交的互換收取額外的無上限費用。

7 先期工作

UniswapX 協議從過去和現在的許多協議中汲取靈感。這並不是一份詳盡的清單。

7.1 簽名訂單

許多協議已經認識到讓兌換者簽署訂單而使用實際交易,包括0x [20] 和Wyvern [21] 。包括CoW Swap [8] 和dYdX [13] 在內的一些協議都支持批量簽署鏈外訂單。 Seaport [17] 特別支持帶有衰減函數的鏈外簽名訂單。

7.2 荷蘭式拍賣

荷蘭式拍賣在DeFi 中有大量應用,包括Seaport 中的NFT 銷售、MakerDAO [14] 和Euler Protocol [11] 中的清算,以及DutchX [15] 等協議中的交易。 Stephane Gosselin 還曾在EIP 2593 中提議使用荷蘭式拍賣作為確定交易費用的方法[10]。

最近,1inch 在其Fusion 協議[1]中探索了簽名訂單與荷蘭式拍賣的結合。

7.3 聚合器

包括1inch、0x API 和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

Total
0
Shares
Related Posts