在70% 的情況下,0x API 所提供的調整後價格優於 1inch、Dex Ag、Paraswap 和Uniswap。所謂的調整後價格,就是支付完交易費後的價格。 0x API 1.0 在gas 效率上處於市場領先地位。 0x API 提供一個經過高度優化的自定義架構。因此,用戶通過該API 訪問Uniswap 流動性的成本與直接訪問Uniswap 一樣低,甚至更低。聚合器通過承諾讓用戶獲得整個生態的最佳報價,來消除用戶在選擇交易平台時的心理障礙。然而,並非所有聚合器都相同:它們在定價、報價準確性、gas 使用量、回滾率(revert rate)和響應時間方面有不同程度的區別。最佳報價並不一定是最佳調整後價格。就像買機票一樣,可能還有一堆後續費用/成本。雖然基礎票價可能很便宜,但是當你把所有附加費用(行李費、優先登機費、指定座位費等)算進來後,實際費用可能會很高。 0x API 和 Matcha(後台使用了0x API)是0x Labs 推出的兩款產品,可以讓DeFi 開發者和交易者輕而易舉地以所有DEX 流動性來源中的最佳價格買賣資產。
DEX 流動性之戰和聚合器的崛起
過去幾週湧現出了大量新的流動性來源。有超過40 億美元的資金分佈在15 個來源上,而且每週還會有新的來源出現。因此,DEX 流動性變得比以往更加分散,讓DeFi 用戶更難為特定交易找到最佳價格。
這就推動了聚合器的崛起。過去12 個月以來,聚合器取得了巨大發展,其交易量在第三季度佔總交易量的9.6% 左右。但是,人們對聚合器有點誤解。例如,雖然報價通常被當作是比較聚合器性能的唯一指標,但是人們時常會遇到一些聚合器報價100 美元卻以90 美元結算的情況。報價並非實際的結算價格。這就引出了一個問題:究竟什麼才是衡量聚合器性能的正確指標?
本文旨在揭示聚合器行業的現狀以及如何客觀衡量並比較聚合器的性能。
調整後價格——比較聚合器的黃金指標
我們認為要構建一個高性能的專業級聚合器,必須遵循以下原則:
準確性:聚合器應該具備準確性,即,結算價格應等於報價。輕微的差異是可以接受的,因為交易提交的時間與交易在鏈上確認的時間之間往往存在市場波動。然而,在其它所有條件不變的情況下,報價越準確的聚合器越好。所見即所得。低成本:鏈上執行的操作越多,gas 使用量即越多,進而導致gas 成本越高。聚合器的目標應該是盡可能降低成本,以確保用戶獲得最佳成交價格。聚合器應該適應當前gas 價格市場,並相應調整路徑。在gas 上花的每一分錢都應該為用戶帶來更多價值。低迴滾率:為了保護用戶,聚合器必須將任意大小交易的回滾率控制在較低範圍內。如果遇上交易失敗的情況,用戶會感到非常沮喪,因為gas 費已經付過了。
最後,我們將上述原則總結成一個黃金指標:調整後價格。
雖然我們單獨分析了上述指標,但是本文主要聚焦於調整後價格。調整後價格指的是當交易在鏈上完成時,用戶支付完交易成本(gas 費和手續費)後的價格。其計算公式如下所示:
調整後價格= 已賣出資產的美元價值/(已買入資產的美元價值- 交易成本的美元價值)
我相信,這個指標更適合用來比較聚合器,因為這是用戶最終影響用戶收益的價格。讓我們來看一個例子:
某用戶想要花100 DAI 來買入USDC。聚合器1 的報價是100 USDC,交易成本為5 美元。根據上述公式,我們可以得出調整後價格= 100/(100 - 5)= 1.05 美元。
再看另一個聚合器。同樣的100 DAI,聚合器2 的報價是104 USDC,但是交易成本為10 美元。在這種情況下,調整後價格= 100/(104 - 10)= 1.06 美元。
在上述例子中,聚合器1 找出了一個更便宜的價格。雖然聚合器2 的報價更高,但是我們可以看出交易成本對調整後價格的影響。總而言之,多花5 美元買入4 USDC 顯然略貴一些。
我們模擬了59,975 個交易,併計算了不同交易所的調整後價格,得出了以下結論:
- 0x API、1inch、Dex Ag、Paraswap 和Uniswap 的調整後價格勝率。 0x API 提供的調整後價格在72% 的情況下優於其它聚合-
平均來看,0x API 在70% 的情況下表現優於其它交易所。也就是說,使用0x API 聚合器(如Matcha)的交易者獲得所有DEX 最佳價格的概率是70%。
就調整後價格而言,我們發現隨著交易額增加,交易所的獲勝率會發生變化。就小型交易而言,Uniswap 的表現較好,因為其交易成本相比大多數聚合器更低。隨著交易額增加,聚合器將履行其職能,開始將交易拆分給不同的來源。就任意大小的交易而言,0x API 都表現良好。隨著交易額增加,聚合器開始顯露競爭力。例如,就大型交易而言,1inch 相比0x API 更具競爭力,因為它的來源更多。
方法論
這一節中分享的數據來自我們0x Labs 構建的模擬工具。面對不同的代幣對、交易額和確認延遲,我們都可以通過該工具持續進行報價並執行交易。如果你懂技術,我一說你們就懂了:這種模擬是在Geth 節點上執行eth_call調用,並使用狀態覆寫來為交易提供資金並對其進行追踪,包括買賣數量和gas 使用量等指標。
我們追踪的交易所包括0x API、1inch、Dex Ag、Paraswap 和Uniswap。在這次研究中,我們選擇了這些DEX 上最常見的20 個交易對,並通過公開API 平均每個交易所取11,995 個交易作為樣本。交易額範圍在100 美元至100 萬美元之間,結算延遲在0 至180 秒之間(模擬交易池中的等待時間)。這次模擬持續大約78 小時,gas 價格在47 至194 gwei 之間波動,這樣可以保證我們的研究反映市場情況。
在本報告內的圖表中,綠色條形和Matcha 代表的都是0x API。只有調整後價格超出其它交易所0.005% 的交易所才會被視為最終贏家。如果差距在0.005% 以內,則視為平局。 “包括Metcha 在內的平局”指的是,0x API 和另外一家或多家交易所打平。 “不包括Metcha 在內的平局”指的是,除了0x API 以外的兩家或多家交易所打平。所有圖表採用的顏色都是統一的。
準確性、gas 使用量、回滾率和響應時間
在本研究中,我們分析了三個不同的價格。因此,我們給出以下定義:
報價:針對特定交易的初始廣告價格—— 用戶在UI 中看到的標價。實際價格:延遲後的實際結算價格。從交易提交到鏈上確認之間通常需要0 至180 秒。調整後價格:當一筆交易完成時,用戶支付完交易成本(gas 費和手續費)後的價格。換言之,就是實際價格減去成本。
我們先來看看報價和實際價格。
- 0x API、1inch、Dex Ag、Paraswap 和Uniswap 的報價和實際價格勝率。許多聚合器似乎針對報價進行了優化,但是最佳報價並不一定意味著最佳調整後價格-
在上圖中,我們可以看出,Uniswap 的整體表現並不突出。上圖與調整後價格勝率圖表形成鮮明對比。換言之,雖然Uniswap 無法提供最佳報價,但是就5000 美元以下的交易而言,它有時能提供最佳的調整後價格,因為交易費低。正如上文所述,隨著交易額增加,Uniswap 的勝率會大幅降低,因為聚合器能夠將交易拆分給不同的來源,從而找到最佳價格。
從這些圖表中,我們還可以看出,0x API 在報價和實際價格上的勝率遠遠低於它在調整後價格上的勝率—— 相差幅度平均為19%,如果考慮到平局情況,報價和實際價格的勝率分別為57% 和63%。 0x API 在調整後價格的平均勝率約為72%。 0x API 在報價和實際價格上的勝率之所以如此低,是因為我們在設計智能合約路由邏輯時作了明確的權衡,在計算訂單的交易路徑時考慮了gas 成本。通過在0x API 的智能訂單路由中考慮gas 成本,我們可保證價格優勢超過從不同來源獲取流動性的成本。
遺憾的是,許多聚合器似乎僅為在報價競爭中勝利做了優化,因為這能為他們吸引更多用戶。然而,正如上文的聚合器2 例子所示,不考慮交易成本的聚合器能提供更好的報價,因為他們願意支付更多錢,但是這實際上對用戶來說不是最優惠的方案。因此,最佳報價並不一定會帶來最佳調整後價格。
一個很貼切的比喻是訂機票。你有沒有因為某個航空公司的航班看似比其它公司的航班便宜而訂它的機票,最後卻發現需要為選座位支付額外的費用,行李托運的收費也貴一點?雖然基礎票價可能更便宜,但是加上雜七雜八的費用後反而支付了更多的錢。某些聚合器也是同樣的道理:看似報價比其它聚合器高,但是一旦交易完成,實際到手的錢卻低於預期。
但是,為什麼會出現這種情況?
以1inch 為例,因為它在報價和實際價格上的勝率最高。從報價到實際價格再到調整後價格,1inch 的勝率呈階梯式下降,從22% 降至19% 再降至14%。這意味著,1inch 看似有20% 的可能達成最佳交易。然而,一旦交易完成後扣除成本,事實往往並非如此。
通常來說,報價和實際價格之間產生差異的原因是,報價不准確,或者在報價到鏈上結算這段時間內市場價格發生變化,從而導致報價失效。實際價格和調整後價格之間的差異就是使用聚合器而產生的額外成本。
我們來看看所有交易所的準確性。交易所按照報價結算的概率是多少?
準確性很重要,因為它可以建立用戶信任,並反映聚合器的報價是否與終端用戶實際支付的價格相符。如果有足夠多的時間和样本,差異會趨於0。
正如上圖所示,0x API 和Uniswap 始終存在正偏差(即,大於零),也就是說交易的報價至鏈上結算之間的價格波動對用戶有利。也就是所謂的正向滑點。一旦發生這種情況,0x API 總是會將正偏差傳導給用戶。
有趣的是,1inch 的偏差始終小於零,也就是說無論市場價格如何波動,用戶都得不到更有利的價格。偏差小於零也表明,聚合器正在使用過時信息報價,或者響應速度不夠快。這些問題可能會導致交易回滾概率變高。如果發生交易回滾,雖然沒有發生代幣買賣,但是用戶依然需要支付交易費。後文會給出詳細解釋。
現在,我們再說回成本,在以太坊上是以gas 使用量衡量的。在下圖中,我們可以看出這些交易所的gas 使用量之間存在很大差異。
就聚合器而言,正應了那句老話“少即是美(less is more)”。如果聚合器能給用戶帶來更多價值,那麼成本高一點也無妨,但是正如我們之前在調整後價格勝率圖中所顯示的那樣,大多數聚合器都無法做到這點。優化代碼來降低gas 使用量會提高聚合器將交易分割給更多來源以獲取更多價值的可能性。
Uniswap 是gas 使用量最低的交易所之一,因此這是所有聚合商都應該追求的目標,尤其是對於那些小型交易來說。一筆價值100 美元的交易根本不可能分割到多個交易所上,即使gas 價格只有1 gwei 也是如此。
通常情況下,0x API 的成本比Uniswap 高。但是,正如調整後價格勝率圖所示,雖然0x API 在gas 使用量上略高一些,但是它有70% 的概率讓用戶獲得最佳調整後價格。其它所有聚合器的成本至少是0x API 的兩倍,也就是說,為用戶帶來了雙倍的成本,但是幾乎沒有創造額外價值。 1inch 和Paraswap 是gas 使用量最高的交易所,從它們在調整後價格上的低勝率也可看出這點。
為便於客觀比較,以下是所有價值500 至1000 美元的模擬交易的平均成本:
0x API — $6.431inch — $13.58Dex Ag — $13.41Paraswap — $18.59Uniswap — $3.93 (我們後面會說回這個數據)
過去8 個月來,減少gas 使用量一直是我們團隊的重點。我們最初的目標是將交易成本降低50%。然而,在0x API 1.0 中,我們成功將平均交易成本降低了76% 左右。就一筆5 萬美元的交易而言,0x API 1.0 的gas 使用量約為46 萬gwei,0x API 0.0 的gas 使用量約為150 萬gwei。這些優化已經將0x API 變成了最高效的聚合器,無論交易大小如何。
事實上,gas 價格在上個月已經遠高於100 gwei。我們想向你展示0x API 在這種情況下的調整後價格勝率。我們進行了第二次模擬,手動抬高了gas 價格,結果發現在gas 價格較高的情況下,0x API 的表現依然優於其它競爭者—— 在gas 價格高於400 gwei 的情況下,提供最優調整後價格的概率為80%。
現在,再回到0x API 和Uniswap 的gas 使用量上。通常情況下,0x API 在gas 使用量上高於Uniswap。然而,在70% 的情況下,0x API 提供比Uniswap 更高的調整後價格。 0x API 是如何做到這點的?我們的0x Labs 團隊構建了一個高度優化的合約,可以讓0x API 通過比默認Uniswap 合約更節省gas 的方式獲得100% 來自Uniswap 的流動性。這對於路由至單個來源的小型交易(小於5000 美元)來說尤為有利。
以下圖兩個交易為例:
圖左是直接路由至Uniswap 的ETH<>UNI 交易。圖右是通過0x API 100% 路由至Uniswap 的ETH<>UNI 交易。正如圖中的“交易的gas 使用量”字段所示,Uniswap 的交易成本約為11.4 萬gwei,0x API 的交易成本約為11 萬gwei,後者比前者低了3.7%。某些鏈上狀態和條件可能會改變結果(例如,如果用戶需要設定新的限額),但是通常來說,通過0x API 將交易路由至Uniswap 的成本只會比直接在Uniswap 上交易更低。
至此,我們已經討論過了準確性和gas 使用量,接下來該談談交易回滾了。當用戶在這些交易所上交易時,交易失敗的可能性有多大?
聚合器應該盡可能將回滾率維持在較低水平,因為在交易失敗後還要支付gas 對用戶來說體驗感很差。導致交易回滾的常見原因有:報價至鏈上結算這段時間內市場出現波動,以及報價不准確(尤其是在使用過時信息提供報價的情況下)。
我們的模擬工具始終在完美條件下執行交易,即,資金充足、不限量gas 和無搶跑交易(即,消息沒有洩漏到黑暗森林中)。我們排除了由這些原因以及現實生活中用戶行為導致的交易回滾。因此,對於所有交易所來說,模擬回滾率都低於實際回滾率。儘管如此,模擬回滾率可以很好地反映交易所的表現。
在上圖中,0 至10 秒的延遲是最有趣的。延遲低於10 秒則意味著交易立即執行,或交易剛提交後就被打包進了下一個區塊。因此,在該延遲時段內,高回滾率意味著報價不准確。
一般而言,我們發現Paraswap 的回滾率相比其它交易所是最高的,之後是Dex Ag 和1inch。在人類行為不會導致交易回滾的模擬環境中,發生回滾的可能原因之一是報價過時(如高延遲時段所示)或報價不准確(如低延遲時段所示)。如果你還記得,Dex Ag 和Paraswap 的準確率最低。
接著來看回滾率對終端用戶的影響。如果用戶在每個交易所上進行100 筆價值500 至1000 美元的交易,交易失敗所造成的平均損失為:
0x API — $6.891inch — $62.52Dex Ag — $3.47Paraswap — $119.22Uniswap — $0.21
在現實世界中,我們看到Uniswap 的日回滾率高達30%,然而在我們的模擬環境下,較長延遲情況下的最高回滾率為1.3% 左右。實際回滾率和模擬回滾率之間的差異意味著所有DEX 的用戶體驗都有很大的改進空間,不過這是另一個話題了。
模擬實驗的結果是,我們的0x API 的模擬回滾率在不同延遲情況下都是最低的。 0x API 的模擬回滾率範圍在0.6%(較短延遲)至1.8%(較長延遲)之間。在現實世界中, 我們發現Matcha 等集成0x API 的應用的周均回滾率範圍在3% 至4% 之間。
現在,還有一個我們尚未提及的重要指標:響應時間。 Matcha 等應用的終端用戶可能對這一指標沒有很深的感受。然而,當你在第三方基礎設施上構建產品時,必須盡可能保證該產品是可靠且快速的。速度更快的聚合器可以讓用戶更快完成交易,減低滑點率和回滾率,並改善用戶體驗。
由於我們的0x API 要從超過13 個來源(包括由專業做市商提供流動性的系統RFQ)取樣,保持較低的響應時間是一項技術挑戰。然而,我們的目標是讓0x API 成為最專業的流動性聚合API。目前,0x API 的響應時間約為1.5 秒,對此我們深感自豪。
在本研究涉及的所有交易所中,1inch 的響應時間是最長的,比0x API 的響應時間高了2.7 倍。 1inch 的響應時間為4 秒,大約是挖出一個新區塊所需時間的1/3,可能會導致時效性強的交易發生回滾,例如,在市場情況不斷變化的高波動時期。
鑑於上述所有信息,如何選擇最佳聚合器?我們可以計算各種交易場景下進行轉移的平均收益或損失,從而得出從一個交易所轉向另一個交易所產生的預期收益值。這就是用戶的預期收益。
對於那些從其他聚合器轉向Matcha 之類集成0x API 的應用的用戶來說,低於1 萬美元的交易的平均預期收益為:
1inch — $7.17Dex Ag — $10.36Paraswap — $14.89Uniswap —$17.14
總的來說,如果在1inch 上交易的用戶轉向Matcha 之類整合0x API 的應用,平均每筆交易預期可獲得7.17 美元的收益。如果他們是從Uniswap 轉向0x API 的,則平均每筆交易預期可獲得17.14 美元的收益。
總結
首先,很高興你們能看到這裡!
我們的目標是分享我們在構建0x API 方面的收穫,並闡明聚合器之間並不明顯的關鍵差異。正如我們在上文提到的那樣,我們想要讓這個行業變得更加透明,並引起關於如何客觀衡量和比較不同聚合器的性能的討論,讓DeFi 開發者和交易者可以做出明智的決定。
通過公開我們的數據,我們希望推進DEX 聚合器行業,並繼續為DeFi 開發者和用戶構建最佳應用。
如果你是交易者,不妨來Matcha 體驗一下!
如果你是DeFi 開發者,可以閱讀我們的 0x API 1.0 公告和 0x API 文檔。如果你已經將0x API 0.0 整合進了你的項目中,轉向1.0 的遷移過程非常簡單。為以防萬一,我們寫了這份指南。
如有媒體諮詢,請發送電子郵件至clay@0xproject.com。
非常感謝 Ben、Jacob、Kroeger、Lawrence 和Michael 對本文的貢獻和反饋。
(完)
(文內有許多超鏈接,可點擊左下”閱讀原文“ 從EthFans 網站上獲取)
原文鏈接:
https://blog.0xproject.com/a-comprehensive-analysis-on-dex-liquidity-aggregators-performance-dfb9654b0723
作者: Fulvia
翻譯&校對:閔敏&阿劍