原文作者:Ivan Vakhmyanin
編譯:PANews
2 x 2 = 5
很明顯,這是錯誤的數學題。當我看到 Uniswap V3 用戶界面上顯示的流動性和 TVL(鎖定總價值)的數據完全錯誤時,我的感受和看到 2 x 2 = 5 的感受是一樣的。
Uniswap 是以太坊和整個區塊鏈行業最大的去中心化金融(DeFi)項目。因為成千上萬的流動性提供者每天都在使用 Uniswap 的數字來建立他們的投資策略,這些數字怎麼可能不准確呢?
我試著找出我計算過程中的錯誤,但數小時都無成果,且實際情況比 TVL 不准確還更糟糕。
發現問題
首先,了解什麼是 TVL 以及如何使用 TVL?
TVL 是委託給區塊鍊或協議的所有加密貨幣資產的總價值,通常以美元計價。這些資產可能是去中心化交易所、跨連橋、借貸協議的總流動性,或者 PoS 的總質押資產。
TVL 被加密投資者廣泛應用,主要應用於以下場景:
1、判斷協議,熱門的協議一般都會展示它們的 TVL,因為更大的 TVL 意味著更大的用戶信任、更低的風險以及更穩定的利潤。
2、篩選協議,加密交易者一般會選擇更高的 TVL 的 DeFi 工具,如去中心化交易所或跨鏈橋。
3、監控協議,TVL 數據能快速增長的協議,是發展越來越好的信號。
TVL 如此重要,但我竟然發現最大的 DeFi 協議 Uniswap v3 TVL 的數據存在一些錯誤。不過對於我來說,最大的發現是官方的 Uniswap 圖表也存在一些問題,以下是我發現這個問題的全程:
以一個流動性分析項目為例,首先將 Uniswap v3 的官方數據與我使用原始區塊鏈數據的計算進行比較。此步驟對於數據質量標準至關重要,為了提高驗證的準確性,我選擇了一個熱門的流動性池 USDC-WETH(0.3% 的費用水平)。
Uniswap v3 上第三個池子的 TVL 高達 3.33 億美元(基於撰寫本文時的 Uniswap 官方圖表),每日交易量為 6100 萬美元。
但我計算出來的是 1.76 億美元,和 Uniswap v3 的官方數據並不一致,於是我決定到 ETH 的區塊瀏覽器上進一步驗證。理論上,每個 Uniswap v3 池子都是一個智能合約。因此,區塊鏈瀏覽器可以顯示池中擁有的代幣餘額,也就是這個池子的 TVL。
我預計區塊瀏覽器池子中的代幣餘額會比 Uniswap 的官方數據大一點,因為池子還包含流動性及還未領取的費用。但這個餘額幾乎是 Uniswap 官方數據的一半,最讓人驚訝的是,這和我的計算結果相同!
我再逐個檢驗其他資產的流動性,也出現類似的情況。這個時候,我意識到這個問題和應該不是我計算的問題。
為什麼會發生這個情況?經過研究,我發現 Uniswap 依賴於去中心化的區塊鏈索引服務 The Graph。使用此服務,任何開發人員都可以為特定的區塊鏈數據用例添加個人分析代碼(稱為子圖),並通過 API 提供分析。所以 Uniswap Labs 為 Uniswap 協議分析創建了自己的子圖,並通過 The Graph 提供給服務來組建相關數據。比較好的一面是 The Graph 的代碼是公開的,不好的一面是它的 TVL 計算錯誤。
我對其中的代碼進行了簡要的分析,發現它考慮了所有兌換和流動性事件,但沒有考慮費用。Uniswap 礦池對每次交換收取 0.01% 到 1% 的費用。該費用從交易資產中扣除,併計入流動性提供者。反過來,流動性提供者可以隨時收取應計費用。但是,當前的 Uniswap v3 子圖顯示的數字好像從未累積和收取任何費用。因此,Uniswap v3 TVL 數據在每次交換時都偏離了現實。
我第一反應是向 The Graph 提交工單進行反饋。但我在 Github 上發現,這個問題在 2021 年 11 月已經被核心開發人員提出了。我不知道 The Graph 為什麼一直沒有解決這個問題,但隨著時間的累積,TVL 將會和實際數據相差越來越大。如現在的 USDC-ETH 這樣的大池子,目前的 TVL 已經和真實的數據相差幾乎一半了。
驗證問題
不真實的 TVL 會如何影響我們的投資決策呢?在開始之前,我們來看看這些偏差如何影響 Uniswap v3 的總 TVL。在撰寫本文時,Uniswap v3 官方顯示是 120 億美元。
從上圖官方報導的數據可以看到,TVL 在 2022 年 3 月 6 日從 5 億美元穩步增長到 45 億美元。但發生了一些瘋狂的事情,在 2022 年 3 月 7 日,TVL 被報導為 2540 億美元。這比整個以太坊網絡有史以來最高的 TVL 還要多 2.5 倍,且在一天之內發生這樣的變化。顯然,這個數據的錯誤的。在接下來的幾週,官方報導 TVL 為 100-200 億美元。
此時,我對 Uniswap 的分析數據失去了所有的信任,但怎麼才能知道真實的 TVL 呢?
有以下兩個選擇:
選項 1 — 分叉並修復 Uniswap v3 子圖。這個選項的不好的地方是子圖重新索引需要幾天時間,而且我不喜歡 The Graph 使用的 GraphQL 語言。
選項 2 —— 使用 Datamint 的高性能分析數據庫,它適用於所有 Uniswap v3 和以太坊數據,可隨時用於復雜的在線查詢。
經過一些實驗,我創建了以下算法來進行準確的 TVL 計算,下面是分步過程。
1. 首先按照以下兩個步驟來計算所有現有的 Uniswap v3 的 TVL。
2. 將所有 ERC-20 代幣轉賬添加到礦池合約(包括所有無人認領的費用)並匹配 Etherscan 的代幣餘額。
3. 添加所有流動性事件,傳入和導出,然後添加所有兌換交易以計算費用。
4. 比較兩種方法並確保不存在無法解釋的差異。
5. 兌換少於 50 次或 0.00000000000001 代幣數量的廢棄池和空池(檢測到 7,863 個池,包括 2,083 對穩定池,我的算法刪除了 112 個空池和廢棄池)。
6. 為每個代幣找到穩定幣的路徑,將池中的 TVL 轉換為美元。
7. 移除美元價值受損的低流動性資金池,因為某些資金池在完全移除流動性後可能顯示價值不足(請查看下圖作為示例)。
8. 將所有剩餘貨幣對的 TVL 轉換為美元並添加。
計算過程很快,我喝咖啡的過程中就完成了,下面是最終的計算結果。
從上圖的計算結果可以看出,這幾乎比報告 TVL 的 118 億美元少了近 4 倍。
免責聲明:我的計算可能存在錯誤,在面向企業客戶時我們使用自動測試等其他工具來實現數據的高質量。但對於個人項目,這些工具並不適用。另外,這個研究主要是表現出現存數據的問題,但並非是最終數據。
修復問題
錯誤的數據會導致投資者做出一些錯誤的決策,我們認為實際上修復 Uniswap 的 TVL 並不難。Uniswap Labs 可選擇在子圖代碼中修復,或計算器開發人員開始使用其他數據源。但我們對計算器的預測數據的準確性保持懷疑,我做了一些簡短的計算來驗證我的觀點,結果和我的猜測一樣,發現沒有接近的數據。
這是一個非常大膽的猜測,我知道很多流動性提供者都是依靠現有的計算器來做出數万美元的投資決策。但為了便於您進一步做出自己的判斷,我們復原了以下的計算過程:
首先,讓我們回顧一下 Uniswap v3 協議的一些核心概念。
它的主要創新之一是集中流動性。本質上,使用 Uniswap v3,您可以選擇您希望資金用作流動性提供者的價格範圍。這是一個了不起的概念,可以為協議用戶帶來巨大的價值。流動性提供者限制了他們對無常損失的範圍,交易者可以在波動性較低時享受較小的價格滑點。但所有這些潛在的好處都是有代價的,那就是複雜性。
在 Uniswap v3 中,流動性提供者選擇提供流動性的價格範圍。一旦價格在此範圍內,他將獲得兌換費用的分成。流動性提供者希望其流動性頭寸的價格範圍盡可能寬。但是,流動性在此範圍內按比例分配。因此,範圍越廣,每筆交易的兌換費用就越低。
在此示例中,選項 A 顯示流動性提供者選擇了較寬的價格範圍,而選項 B 顯示了相同金額的較窄價格範圍。假設在這兩種情況下,價格都在所選價格範圍內,流動性提供者在選項 B 中獲得 3 倍以上的費用。但是,如果價格波動更大,流動性提供者最終可能在選項 A 中獲得更高的利潤。
因此,實際上,選擇正確的價格範圍應在錯過價格的風險和每筆交易獲得較低迴報之間找到最佳平衡。
此外,還有一個被經常忽視的參數也會影響流動性提供者的利潤。那就是 LP 利潤計算器,這個參數可以改變一切。如果你想知道 LP 的具體計算邏輯,可以參考以下示例:
在此示例中,兩個流動性提供者(LP1 和 LP2)擁有頭寸。LP1 的頭寸窄幅為 3 美元。LP2 擁有 5 美元的寬頭寸。在這種情況下,如果價格沒有超出 LP1 的持倉範圍,他將獲得比 LP2 多 3 倍的費用。因為 LP2 在這個範圍內只有 1 美元,而這 1 美元正在與 LP1 的 3 美元競爭。
如果您查看任何 Uniswap v3 池子的流動性分佈,你會發現它並不統一。
門檻越高,競爭越高,流動性提供者需要在選擇有競爭力的範圍和價格下跌概率較低的範圍之間找到平衡。這就是為什麼這種分佈在 LP 利潤預測和戰略制定中發揮重要作用的原因,但我並不確定這個分佈是否計算正確。
流動性資金
流動性提供者就是猜測價格、競爭狀態和交易量,如果 LP 有一個願望,那就是事先了解交易的未來以調整流動性頭寸,這是可以實現的。
在研究過程中,一些不尋常的流動性提供者引起了我的注意。他們每天多次添加和刪除大量流動性頭寸(超過 1000 萬美元)。更令人驚訝的是,他們總是在同一個區塊中添加和移除流動性。
我們可以看下面這個例子:
我們有三筆交易,都在區塊 15413416,位置 3-5,以自下而上的順序執行。第一個使用 Execute 方法的交易是一個名為「MEV Bot」的合約,為 USDC-WETH 池增加了 2200 萬美元的流動性。
MEV Bot 增加流動性
第二筆交易是通過 WETH 從 USDC 到 DogeChain 的交換,這是一筆價值約 16,500 美元的普通兌換交易。
標準兌換交易
第三筆交易又是「MEV Bot」,從 USDC-WETH 池中移除了 2200 萬美元的流動性。
MEV Bot 消除流動性
示例中發生的事情稱為「流動性狙擊」,讓我解釋一下這是如何工作的:
1. 有人發送了一筆交易,將 USDC 交換到 DogeChain;
2.MEV Bot 在內存池中檢測到此交易,並使用 Flashbots 技術或類似技術激活了與礦池的私有鏈接;
3.MEV Bot 向礦工支付了一筆兌換交易和兩筆按特定順序進行的交易,以允許提取價值;
4.MEV Bot 在一個非常窄的價格範圍內增加瞭如此多的流動性(2200 萬美元),因此有效地,從特定的 USDC-DogeChain 交易中獲得的所有費用利潤都累計到他的身上;
5.MEV Bot 移除流動性並賺取費用(約 35 美元)。
因此,他扣除 GAS 費後的毛利潤約為 30 美元。也許這個費用不是很多,但他每分鐘多次執行此策略,所有這些都加起來,就是不小的數量了。你也可以通過區塊瀏覽器,自己檢查這個過程。
作為流動性提供者,這對你意味著什麼呢?這意味著流動性狙擊手可能會大幅削減你的費用利潤。
結論
我相信 Uniswap 是一個具有巨大潛力的偉大項目,我也尊重 Uniswap v3 核心集中流動性的想法。然而,我發現 Uniswap 生態系統的分析部分還遠未成熟,我相信這個情況很快就會改變!最後,總結一下我的研究結果:
1.Uniswap v3 圖表中的 TVL 數據非常不准確,所有依賴官方 Uniswap v3 子圖的分析工具都存在相同的錯誤。
2.Uniswap v3 TVL 總額為 31.4b 億美元,而官方網站報告的為 118 億美元(數據截止至撰寫本文)。
3.Uniswap v3 流動性提供者的計算器對現實生活中的策略幾乎沒有價值,因為它們沒有考慮競爭和流動性狙擊手。

著名的呆伯特系列,經修改後以反應流動性提供者的現實情況
幸運的是,您現在可以更好地了解 Uniswap v3 流動性池在現實生活中的運作方式,並可以相應地調整您的研究。
雖然我無法提供投資建議,但我認為只有 2 個選項可以建立一個突出流動性的策略:
- 簡易版,使用歷史性能數據。嘗試一些小額流動性頭寸,看看哪些選項更有效,但這只有在市場穩定的假設下才有效。
- 進階版,進行研究並相應地優化 LP 策略。如上所述,這需要深入了解 Uniswap v3 協議、數學和博弈以及實時處理大量數據的強大數據分析工具。
這兩種選擇有一個共同點,那就是你的決定是基於數據的而不是直覺或隨機工具,有時處理數據很困難,但它有回報。
(以上內容獲合作夥伴 PANews 授權節錄及轉載,原文連結 )
聲明:文章僅代表作者個人觀點意見,不代表區塊客觀點和立場,所有內容及觀點僅供參考,不構成投資建議。投資者應自行決策與交易,對投資者交易形成的直接間接損失作者及區塊客將不承擔任何責任。
熱門市場動態與新聞傳送門:
區塊客致力於發掘和整理各種與區塊鏈技術有關的內容,只要與區塊鏈或區塊客網站有關的合作和/或建議,我們都非常歡迎。請您發電郵至 [email protected] 與我們聯繫。