Uniswap:從零到無窮大

原文作者:lukewasm.eth

介紹

毫無疑問,Uniswap是使用最廣泛的去中心化應用程式之一。它堅持不懈地開拓創新解決方案,重新定義遊戲規則。在這篇文章中,我將深入研究Uniswap從過去到無限未來的令人敬畏的旅程。透過回顧Uniswap的每個版本的特性,本文揭示了它如何有效地應對新的挑戰並適應不斷變化的需求。此外,我還探討了加密技術的最新進展如何塑造去中心化交易所(DEX)的未來。

v0:概念驗證

在Uniswap之前,EtherDelta是唯一獲得關注的去中心化交易所(DEX)。然而,使用者體驗很非常差。

許多行業領袖(Gnosis和Vitalik的Alan Lu)提出了自動做市商(Automated Market Maker, AMM)的概念,與傳統的訂單模型相比,它為鏈上交易提供了另一種方法。

特性

恆定乘積AMM

Uniswap利用恆定乘積公式(x * y = k)來計算資產的價格。公式中,x表示基礎資產,y表示報價資產。當一個代幣從池中取出(購買)時,必須存入(出售)一定比例的金額,以確保保持常數k。池中代幣的比例決定了代幣的價格。

來源:Uniswap

值得注意的是,其他資產管理工具使用不同的數學公式來表示流動性曲線。例如,Curve的Stableswap和Balancer的加權池。

問題

Uniswap v0本質上是一個概念驗證,這意味著仍有許多未解決的問題。主要有兩個問題:

它只適用於單一ETH/ERC20交易對。

它只適用於單一的流動性提供者(LP)。

v1:功能性DEX

特性

Uniswap v1於2018年11月2日在以太坊主網上線。它支援多個流動性提供者使用內部代幣來追蹤費用和抵押品。它利用工廠合約,使任何人都可以添加任何代幣進行原生ETH交易。此版本提供了功能性DEX。然而,有一些問題需要解決。

問題

由於所有代幣都與ETH配對,用戶可以透過使用ETH作為單一交易中的中介,輕鬆地將任何ERC20代幣交換為另一個ERC20代幣。當涉及像DAI/USDT這樣頻繁的穩定幣交換時,依靠ETH作為每次交換的中介變得低效。在這種情況下,直接的代幣對更受青睞。

v2:金錢樂高

2020年5月,Uniswap v2發布,對Uniswap 協定進行了大量升級。這些增強功能提高了其靈活性並擴大了可能的交易範圍。

特性

ERC20 / ERC20交易對

在Uniswap V2中,有一個顯著的區別:不再僅僅將ERC20代幣與ETH進行配對,現在任何ERC20代幣都可以直接與任何其他ERC20代幣進行池化。該功能為流動性提供者帶來了巨大的實用性,因為他們現在可以維護更多樣化的ERC20代幣計價頭寸,包括穩定幣交易對。

價格預言機

Uniswap v2提供鏈上價格源,可以被許多DeFi應用程式使用。這些價格資訊不受操縱,因此非常有價值。該機制涉及將交易結束價格添加到核心合約中的累積價格變數中,該變數由特定價格存在的持續時間加權。該變數本質上代表了整個合約歷史記錄中每秒Uniswap價格的總和。

Uniswap

來源:Uniswap

外部合約可以利用該變數在任何給定的時間間隔內精確地追蹤時間加權平均價格(twap)。此過程包括在間隔開始和結束時從ERC20代幣對讀取累積價格。透過計算累積價格的差異並將其除以間隔的長度,可以產生該特定時期的TWAP。

閃電互換

Uniswap v2也引進了閃電互換,這是一種由借貸市場AAVE首創的閃電貸。此功能允許任何用戶在沒有前期成本的情況下,從池中提取盡可能多的ERC20 代幣,並執行任意操作,前提是在交易執行結束時返回等額資金(加上費用)。

閃貸功能聲名狼藉,因為它經常與針對DeFi 協議的各種攻擊聯繫在一起。但閃貸不是問題所在。真正的問題是協定中存在的漏洞。閃貸的原子性消除了通常與池間套利和獲得保證金槓桿等操作相關的前期資本要求。

問題

儘管AMM具有創新性,有利於在新市場中啟動交易和提高流動性,但它仍有低效率。例如,在處理低波動性代幣時,流動性只在一個狹窄的價格範圍內是必要的。然而,目前的設計是在所有價格範圍內均勻分配流動性。

v3:資本效率

由於其開創性的集中流動性設計,Uniswap v3旨在成為最靈活、最高效的AMM。

特性

集中流動性(CL)

在Uniswap v2中,流動性均勻分佈在x*y=k的價格曲線上,包括從0到無限大的所有價格。然而,在大多數資金池中,流動性並未充分使用。

在Uniswap v3中,流動性提供者(LP)有能力將其資本集中在特定的價格範圍內,從而在期望的價格上增加流動性。這種客製化使LP能夠建立符合他們偏好的個人化價格曲線。然後,這些單獨的頭寸被聚合到一個單獨的池中,創建一個統一的曲線,用戶可以根據該曲線進行交易。結果對交易者和流動性提供者都是有利的:由於流動性在定制範圍內的高度集中,交易者經歷了更少的滑點,LP獲得了更高的費用。

CL對穩定幣交易對(如穩定幣和流動性質押衍生代幣)具有不可思議的價值。這些資產往往在一個狹窄的價格範圍內交易。然而,對於更不穩定的代幣對,CL需要更先進的流動性管理技術。對於一般的散戶流動性提供者來說,持續有效管理其部位可能是一項挑戰。

範圍訂單

在CL中,引入了一種新的訂單類型,稱為區間訂單,以補充市場訂單。 LP可以在一個客製化的價格範圍內(高於或低於當前價格)存入單一代幣。如果市場價格在他們指定的範圍內,他們可以沿著平滑的曲線出售一種資產以換取另一種資產,同時賺取掉期費用。

區間單的功能類似於“限價單”,但缺點是可逆性——當價格反轉時,訂單也會反轉。然而,在此過程中,費用仍然是可以賺取的。 Barry Fried ( @BarryFried1 ) 在此線程中提供瞭如何使用範圍指令的詳細範例。

多種收費等級

Uniswap v3不再只有一個收費級別,而是為每對投資組合引入了三個單獨的收費級別——0.05%、0.30%和1.00%,這樣LP就可以因承擔不同程度的風險而得到適當的補償。

高級預言機

Uniswap v3提供了對價格預言機的重大改進。 v3不再只儲存一個價格累積變量,而是儲存一個變數數組,使得創建更高級的預言機(包括簡單移動平均(SMA)、指數移動平均(EMA)、異常值過濾等)變得更加容易和便宜。

問題

缺乏靈活性

雖然集中的流動性和收費等級為流動性提供者提供了更大的靈活性,並使新策略得以實施,但Uniswap v3未能適應AMM 和市場不斷發展的功能和創新。為整合TWAP訂單、限價訂單、高級預言機和動態收費等附加功能,有必要重新實現核心協議。

某些功能,例如最初在Uniswap v2中引入的價格預言機,使整合商能夠利用去中心化的鏈上定價資料。然而,這是以交換者增加的Gas費用和整合者缺乏自訂選項為代價的。

複雜的流動性管理

如前所述,對於不成熟的流動性提供者來說,集中的流動性是具有挑戰性的,特別是對於波動性交易對。雖然出現了幾種自動流動性管理協議,但它們大多是針對掛鉤資產設計的簡單再平衡策略。不幸的是,對於波動性較大的交易對來說,這些策略是無效的,因為長的區塊時間、Gas成本、對沖成本等都會限制它們的效果。

此外,由於每個流動性提供者的集中流動性位置不同,LP代幣本質上是不可替代的。它只能用不可替代代幣(NFT)來表示,這對其他希望與之整合的DeFi協議提出了挑戰。

許多優秀的項目正在積極解決這個問題,使用一系列策略,包括再平衡、貨幣市場動態對沖、永續合約和選擇權。 Atis Elsts (@atiselsts_eth)寫了一系列關於LP策略的優秀文章,強烈推薦。

價值洩漏

價值洩漏問題是所有問題中最重要的問題。雖然這不是Uniswap v3所獨有的,但由於自v3發布以來AMM的交易量增加和更廣泛的採用,它已經引起了人們的關注。該價值以以下形式從DEX 系統中洩漏:

1.由於搶先交易和三明治攻擊,交易者最終支付了比必要時更高的滑差。

2.流動性提供者透過CEX-DEX 套利損失價值(又稱損失與再平衡)

為解決這些問題,我們需要比Uniswap v3 目前提供的更多客製化和複雜的設計。我們需要一個更具表現力、更強大的DEX平台。

v4:終極平台

Uniswap v4建立在前幾代AMM模型的基礎上,透過引入“Hooks”,旨在成為高效、可自訂的終極DEX 平台。

效率

單例

在Uniswap v3中,每個池都是透過工廠合約作為單獨的合約創建的。另一方面,在v4中,所有池共存於單一智能合約(稱為單例)中。這種單例(Singleton)模型顯著降低了與創建池和執行多跳交易相關的費用。

快閃記憶體記帳

在v4中,單例使用快閃記憶體記帳來優化資產轉移。在v3中,每次交換後都會將資產移入和移出池,與此不同的是,v4系統僅根據淨餘額進行轉移。這大大降低了會計成本。瞬時儲存(在EIP-1153中提出)使得設定和清除儲存槽的成本更低,這是快閃記憶體記帳有效運作所必需的。

Uniswap

來源:Uniswap

原生以太坊

Uniswap v4重新引入了對原生ETH交易的支持,這帶來了幾個好處。交易者可以享受更便宜的轉移和消除額外的包裝成本,減少Gas成本。

客製化

Hooks

Hook合約(或Hooks)是外部部署的合約,在池執行期間的特定點執行預先定義的邏輯。這就是v4如此具有表現力和可自訂性的原因。 Hooks允許實現以前內建於協議中的功能,例如預言機,以及以前需要獨立協議實現的新功能。

Uniswap v4目前支援8個這樣的hook回呼函數:

1.初始化前/初始化後

2.修改位置之前/修改位置之後

3.交換前/交換後

4.捐贈前/捐贈後

下圖說明了Swap Hook的邏輯流程。在執行交換之前和之後,有一個專用的布林標誌,允許在這些特定的點執行自訂程式碼。這是開發高級功能的基礎,如預言機、動態收費結構、拍賣和高級訂單類型等。我們將在下文中更深入地研究這些概念。

Uniswap

預言機

在先前的版本中,預言機被整合到核心Uniswap協定中。雖然這使得其他協定的整合更容易,成本更低,但代價是客製化選項的減少和交換器的成本增加。然而,隨著Hook的引入,預言機的設計可能性得到了極大的擴展。這為創造抗操縱的預言機提供了機會。此外,現在可以自訂選擇誰承擔更新預言機的成本。例如,與其讓第一個交換者承擔成本,這可能是不可持續的,不如使用帶有ETH餘額的Hook合約來支付Gas。儘管有這些進步,設計預言機仍面臨挑戰。例如,TWAP預言機有時容易受到操縱,往往落後於當前價格。

Uniswap Labs推出了另一個有趣的價格預言機,即截斷式價格預言機。該預言機計算流動性池中資產的幾何平均價格,並對單一區塊內的價格變動施加限制。透過截斷價格,這種鏈上預言減輕了重大交易的價格影響,增強了對操縱企圖的抵抗力。

動態費用

雖然Uniswap v3引入了額外的收費等級供LP選擇,但這些收費結構仍然是靜態的,不考慮當前的市場狀況。因此,LP的服務沒有得到足夠的補償。

Alex Nezlobin (@0×94305)提出了一個簡單而有效的動態費用結構,考慮了前一個區塊的價格影響,並對買家和賣家適用不同的費用。下圖說明了一個例子:當CEX價格移動到p*,高於當前AMM價格p_AMM時,銷售費用減少δ,而購買費用增加δ。 δ的值與AMM價格的變化成正比。這種動態收費結構的目的是區分套利者和不知情的資金流。套利流動更可能與價格波動自相關。

Uniswap

設計一個健壯的動態收費結構提出了幾個挑戰。其中一個挑戰是如何整合鏈下訊號,如CEX價格、流動性深度和波動性。此外,各種鏈上訊號(包括位址、大小和執行時間)在區分知情流和不知情流時可能不可靠,因此難以評估其有效性。此外,重要的是要確保費用不低於零,以限制LP的損失。

拍賣

Hook也可以作為實施拍賣的手段,這有助於將價值重新分配給LP。根據時間的不同,拍賣可以分為事前拍賣和事後拍賣。

事前拍賣在拍賣前進行。這個概念最初是在一篇討論MEV捕獲AMM (McAMM)的研究文章中引入的。在這種方法中,在一個區塊被拍賣之前,在AMM中進行第一次交換的權利,隨後出價被重新分配。然而,這個投標過程也存在挑戰,因為它本質上涉及期權定價,這可能非常複雜。此外,由於區塊提議者擁有是否接受包含交易的區塊的最終決策權,因此可能會出現審查問題。確保投標價值的公平和有效分配也可能是一項複雜的任務。此外,誰也不能保證中標方會先行使掉選擇權,這可能導致其他交易者的體驗惡化。

事後拍賣是在波動性實現之後進行的,這意味著CEX價格已經發生了變化,但在後續區塊被承諾之前。這些拍賣的優點在於它們提高了效率。然而,它們帶來了挑戰,因為它們需要依賴可信方或不可信系統的鏈下基礎設施。如果使用可信方,就會出現審查和投標隱私方面的問題。另一方面,設計無信任系統要複雜得多。事後拍賣也面臨提議者可能與競標者玩遊戲的問題,例如將套利交易排除在及時納入的範圍之外。此外,在投標、對中標達成共識以及將這些投標分發給區塊構建者方面存在額外延遲的重大問題——所有這些都需要在提交後續區塊之前完成。最後,很難確保在這些拍賣中有足夠的競爭條件來獲得足夠的價值。 Sorella Labs (@SorellaLabs)利用其先進的基礎設施和機制設計,在應對這些挑戰方面處於領先地位。

Diamond Hook

Diamond協議最初被設計為最小化LVR 的AMM。在Diamond中,區塊生產者透過拍賣來獲取外部市場價格和自身價格之間的套利機會。這些拍賣的收益由Diamond礦池和區塊生產者以一種與區塊生產者保持激勵相容的方式共享。

正如本文所討論的,Diamond協議的一個變體涉及實現一個抵押品池,以根據區塊生產者承諾的價格維持區塊結束價格。只有當有足夠的抵押品使價格恢復到承諾的價值時,掉期才會執行。 Arrakis (@ArrakisFinance)目前正在與Diamond協議的作者之一ConorMcMenamin (@ConorMcMenamin9)合作,開發使用v4 Hooks的實施方案。

高級訂單類型

Hook還可以支援更高級的訂單類型,從而大大提高交易者的體驗。一些常見的訂單類型包括限價單、止損單、止盈單,以及TWAP。

限價訂單

交易者可以選擇向Hook合約提交鏈上限價單。當價格達到指定的點位價格時,將填寫訂單。然而,與傳統金融(tradfi)限價單相比,這些鏈上限價單具有顯著的劣勢。這主要是因為在不產生Gas費的情況下,取消鏈上訂單是不可能的。因此,這就產生了一個被稱為「低訂單交易比」的問題。

TWAMM (時間加權平均做市商)

一個可能的解決方案是實施時間加權平均做市商(TWAMM),以促進大額訂單的執行。這種方法包括將大訂單分成小塊,並確保它們作為第一批交易執行,從而防止三明治攻擊。此外,可以考慮降低TWAP訂單費用,因為它們通常涉及不知情的流程。然而,隨之而來的挑戰是高昂的Gas成本,以及決定誰應該承擔這些費用。

其他Hook

還有其他幾個特性可以使用Hook來實現。以下是一些建議:

1.一種產生收益的掛鉤,將超出範圍的流動性借入貨幣市場以提高資本效率。

2.既具有xy=k 流動性曲線又具有集中流動性的池子。

3.為LP提供提款費用的資金池,以減少即時流動性攻擊。

Suning(@msfew_eth)在Github上提供了一個很棒的Hook想法和實作。 Aiden (@aiden0x4)也為Hook發布了一個很好的開放目錄。

zkAMM 和zkHooks

ZK協處理器使智慧合約能夠存取類似於Dune Analytics提供的資料見解,所有這些都不會由於零知識(ZK)證明技術的應用而影響信任。 zk協處理器在AMM設計中的應用是一個新興的研究領域。 Hook的引入現在允許將zk證明無縫整合到Uniswap v4中,開創了零知識AMM / zkAMM 的新時代。

Hyper預言機演示了基於Uniswap v2的zkAMM的實現,其中addLiquidity計算是在鏈下。當用戶增加流動性時,需要計算代幣數量、價格和LP代幣份額。在這特定的實作中,Hyper預言機的zkGraph捕獲addLiquidity事件,執行必要的計算,產生證明,並發布它。 zkAMM的這種實作包括一個整合的自動化層,用於驗證證明並為用戶產生LP代幣。

Diego(@0xfuturistic)介紹了一種基於Uniswap v3的zkAMM(zkUniswap)實現,其中AMM交換計算的一部分被轉移到了Risc Zero(@RiscZero)zkVM上。當使用者在池中執行交換時,需要計算多個參數以完成交換。這些參數包括要交換的數量、費用和交換後的價格。最初,該計算是透過EVM在Solidity 合約中進行的。然而,在新的實作中,交換輸入由中繼器拾取,並且計算在鏈下進行。隨後,中繼器發布輸出和證明。 AMM驗證證明並解決交換。 zkUniswap實現了鎖拍賣機制,以確保並發控制。雖然它目前的性能與EVM相當,但透過批量交換的並行化可以顯著提高效率。

交易量證明是AMM的另一個用例。 Brevis (@brevis_zk)提供了一個有趣的例子,可以根據用戶的歷史交易量設計費用回扣掛鉤,類似於中心化交易所的基於交易量的費用回扣。 VIP交易者現在可以計算他們的每月交易量,然後向區塊鏈提交一個低成本的ZK證明,以非同步驗證他們的VIP狀態。一旦驗證,後續交易可以利用交換後掛鉤存取由ZK協處理器填充的「VIP費用等級表」。這允許自動應用適當的費用回扣。 Maru Network (@ marunnetwork)目前正在開發無信任的預言機,作為其zk協處理器網路的初始用例。透過實現一個無信任的交易量資料庫,DEX將能夠以公平和透明的方式分配獎勵。這種方法允許按比例激勵流動性和用戶活動,形成積極的飛輪效應。透過使用NEBRA (@nebrazkp) UPA (Universal proof aggregation)等零知識證明聚合服務,可以降低證明驗證的成本,NEBRA (@nebrazkp) UPA (Universal proof aggregation)將來自不同電路和不同參與者的證明聚合為單一證明,從而降低平攤驗證成本。

總而言之,zkAMM 的概念涉及利用zkCoprocessors 或zkOracles 將計算從EVM 轉移並驗證鏈上計算的證明。這些計算可能比與掉期和流動性調整相關的計算要複雜得多。例如,它們可能涉及根據最近的市場波動計算動態費用,證明給定池中的歷史用戶數量,或使用複雜的機器學習演算法實施再平衡策略。可能性是無限的,因為任何計算最終都會導致0(1)驗證成本,不再受EVM計算資源的限制。

v4挑戰

Uniswap v4為AMM設計空間引入了效率和客製化功能,支援創建具有各種特性和功能的池。然而,這一進步帶來了一個可預見的代價:由於池的激增,流動性碎片增加。因此,路由選擇變得更具挑戰性。

UniswapX

UniswapX旨在透過將路由的複雜性外包給第三方填充者的開放網路來解決流動性碎片化問題。這些填充者相互競爭,使用鏈上流動性(如AMM池或自己的私人庫存)執行交換。這種設計以意圖為中心,允許使用者簡單地陳述他們想要的結果,並依靠專業人員來實現。

這些填充者是高級的代理,配備了先進的路由演算法、高運算能力和大量的金融資本。它們在預定的拍賣機制下相互競爭,為用戶提供最好的執行。用戶還可以獲得價格改善,確保他們的執行至少與直接從Uniswap AMM池進行的交易一樣好。

UniswapX協定的體系結構如下所示。交換者透過Uniswap API提交其意圖訂單,其結構為Permit2可執行的鏈下簽署。 Permit2是一個優雅的模型,可確保用戶持有的代幣的安全移動。填料設計策略,使用任何可用的流動性場所來完成這些訂單,無論是鏈上還是鏈下。最後,訂單反應器解決UniswapX訂單。他們負責驗證特定類型的訂單,將其解析為輸入和輸出,根據填充者的策略執行它們,並驗證訂單的成功實現。

Uniswap

在目前Uniswap實驗室對UniswapX的介面實作中,協定被分成兩個階段。第一個是RFQ階段,白名單上的「報價人」用報價回應訂單。然後,報價的獲勝者有一個排他性期限來完成訂單。如果沒有,就進入第二階段,荷蘭式拍賣階段,這是任何填充者都可以參加的拍賣。計劃是在不久的將來使報價系統完全無需許可。

Uniswap

資料來源:Hayden Adams、EthCC 的鏈上交易

以意圖為中心的設計提供了以下好處:

聚合流動性來源以獲得更好的價格。

不需要Gas代幣,即使是跨鏈交換。

透過價格改善實現經濟效益的內部化。

交易失敗不會產生任何費用。

挑戰

使報價系統無需許可,例如使用有效的信譽系統。

吸引更多的填充者,以確保競爭和無許可的拍賣環境。

未來:無限遊戲

DEX的發展並未止步於此。為使加密實現大規模採用,還有幾個其他問題需要解決。來自PropellerHeads (@PropellerSwap)的Markus Schmitt (@_haikane_)與Frontier Research (@FrontierDotTech)合作,撰寫了一篇出色的文章,深入探討了優秀DEX 的構成要素,並確定了尚待解決的問題。根據他的觀點,一個好的交易所應該提供:

信任:確保交易前、交易中和交易後的透明度和最小化託管風險。

最優惠的價格:持續提供最佳或有競爭力的價格。

公平:防止濫用訂單,確保所有使用者在定價和費用方面享有平等待遇。

速度和可用性:提供快速交易處理並保持高可用性,以避免延遲和不便。

資訊:透過提供訂單監控、結算價格估計、限價單和滑點的有用建議,幫助使用者做出明智的決策。

流動性:在各種資產對之間展示強大的流動性池,為獲得優惠價格注入信心。

如果DEX的智能合約被認為是安全的,那麼信任就已經建立起來了。 DEX不持有用戶的資產。現在可供交易者使用的資訊相當廣泛。 AMM無需許可的特性使用戶能夠建立和交易任何資產對。但是,由於區塊鏈的特性,並不能總是保證確保最佳價格、公平性、速度和可用性。 Gas費用、陳舊的價格和去中心化的流動性都會影響使用者體驗。

為解決這些問題,我們正在見證L2和基於L2的DEX的激增。此外,我們還看到了更複雜的路由、訂單批次和報價請求系統。為防止搶先交易,確保公平的價值分配,我們正在採用更多具有MEV 意識的管道。此外,我們正在努力開發訂單流拍賣市場,以最大限度地減少DEX用戶的價值洩漏。 Hook和ZK協處理器的引入也大大擴展了AMM的設計可能性,允許更複雜的邏輯和繁重的計算,而不會影響信任。

此外,還有一套基於AMM的協議,有效地堆疊了「金錢樂高」。這些協議包括流動性管理器,幫助不成熟的用戶自動化流動性再平衡或槓桿化。也有協議利用集中流動性(CL)部位來創建保證金交易、永續交易、選擇權和結構性產品。

AMM 因其無許可資產上架、被動流動性和交易簡單等特點而實現了指數式增長。然而,這種便利性也帶來了我們目前已經探討過的幾個問題。 Uniswap一直在不斷突破邊界,以解決這些問題並增強使用者體驗。正如丹·羅賓遜(Dan Robinson)在SBC23的演講中恰如其分地指出的那樣,DEX設計是一場無限的遊戲。隨著未來去中心化交易所的採用越來越多,可能會出現新的挑戰和問題,需要創新的解決方案。

Total
0
Shares
Related Posts