為什麼說你所有的Uniswap v3流動性質押計算可能是錯誤的?
BlockBeats 律動財經 2022-09-26 12:30
Uniswap 是以太坊和整個區塊鏈行業中最大的去中心化金融 (DeFi) 項目。成千上萬的流動性提供者每天都在使用這些數據來制定自己的投資策略。那麼,這些數字怎麼會不準確呢?
讓我們一步一步來,從問題開始。
問題所在
首先,什麼是 TVL,它是如何使用的?簡而言之,TVL 被定義為當前用戶委託給區塊鏈或協議的所有加密資產的美元價值。這些資產可能是去中心化交易平台、跨鏈橋協議或貸款協議的總流動性,或 PoS 區塊鏈的總抵押資產。
加密貨幣市場投資者和其他參與者會在多種情況下使用 TVL:
評估協議的健康狀況。這就是為什麼流行協議會在主頁上吹噓他們的 TVL。更大的 TVL=更多的用戶信任=更低的風險=穩定的利潤。
比較協議。如果我是一個加密交易者,我更願意使用去中心化交易平台或跨鏈橋等具有更高 TVL 的 DeFi 工具。
衡量協議的增長。投資者如果看到一個協議或項目的 TVL 快速增長,會認為這是看漲該協議 Token 價格的信號。
這麼看來,知道準確的 TVL 數字很重要,對吧?
但是,如果我說關於 Uniswap v3 TVL 的最新數據是有誤導性的呢?不過,最讓我驚訝的是,官方的 Uniswap Chart App 也有問題!我是這樣發現的:
我當時正在做一個流動性分析項目,將 Uniswap v3 上的官方數據與我使用區塊鏈原始數據進行的計算進行比較。這個步驟對於遵守最高的數據質量標準至關重要。為了開始驗證,我選擇了一個流行的流動性池 USDC-WETH(費用水平 0.3%)。
看看 Uniswap v3 上的 3 號池——它有 3.33 億美元的 TVL 和 6100 萬美元的日交易量。
我馬上遇到了一個問題:我計算的 TVL 價值是 1.76 億美元,而不是 Uniswap 網站上報告的 3.33 億美元。好吧,bug 發生了。但在開始調試之前,我決定在最流行的以太坊區塊鏈瀏覽器 Etherscan 上驗證 TVL。嚴格來講,每個 Uniswap v3 池都是一個智能合約。因此,區塊鏈瀏覽器可以顯示池裡擁有的 Token 餘額,也就是 TVL。
我預計資金池的 Token 餘額會比 Uniswap 報告的 TVL 稍高一些。這是因為該資金池不僅持有流動性,還持有已累積但尚未被領取的費用。但結果餘額幾乎是 Uniswap 報告的一半,而且令人驚訝的是,它與我的計算數字相同!
逐一比較資產的流動性也顯示出了巨大的差異。這時,我意識到這個錯誤與我的數學能力無關。
但這怎麼可能呢?經過研究,我發現 Uniswap 依賴於去中心化的區塊鏈索引服務 The Graph。通過這項服務,任何開發者都可以為特定的區塊鏈數據用例添加個人分析代碼 (稱為 subgraph),並通過 API 提供分析。
Uniswap Labs 為 Uniswap 協議分析創建了自己的 subgraph,並通過 The Graph 託管服務將其提供。好在它的代碼是公開的。不過,糟糕的是它的 TVL 計算錯誤。
對代碼的簡要分析表明,它考慮了所有的 swap 和流動性事件,但沒有考慮費用。Uniswap 池對每一次 swap 有 0.01% 到 1% 的費用。這筆費用從交易資產中扣除,累加給流動性提供者。反過來,流動性提供者可以隨時收取應計費用。
然而,當前的 Uniswap v3 subgraph 顯示的數字就好像從來沒有累積和收取過費用一樣。因此,Uniswap v3 的 TVL 數據在每次 swap 時都與現實不符。
你可能會想:「在寫這篇文章之前,你在 GitHub 上提交了 issue ticket 嗎?」是的,這是我發現錯誤後的第一意圖。你知道嗎?該問題已經被記錄了,是由核心開發人員在 2021 年 11 月創建的!
那麼,為什麼這個問題沒有得到解決呢?我不知道。也許這個錯誤在發現時是可以忽略不計的。然而,這是一個隨著每次 swap 而增加的累積錯誤。因此,隨著池中費用和交易量的增長,由該錯誤產生的 TVL 差異將導致與現實的差異越來越大。我們可以看到,在像 USDC-ETH 這樣收費高達 0.3% 的大型資金池中,情況已經失控!目前這個數字幾乎是真實數字的兩倍。
讓我們驗證一下總 TVL
好了,我們現在知道了各個資金池中的 TVL 數字是扭曲的。下面我們將探討這會如何影響投資決策。但是在我們開始之前,讓我們看看這些錯誤是如何影響 Uniswap v3 協議的總 TVL 的。在撰寫本文時,TVL 被報告為近 120 億美元。
即使你不是一個數據科學家也能看出這裡有問題。
我們可以從上面看到,TVL 在 2022 年 3 月 6 日從 5 億美元緩慢但穩定地增長到 45 億美元。然後瘋狂的事情發生了,TVL 在 2022 年 3 月 7 日被報告為 2540 億美元。這是整個以太坊網路有史以來最高 TVL 的 2.5 倍——在一天之內!很明顯,數據有誤。在接下來的幾周里,TVL 被報告為 100-200 億美元。
此時,我失去了對 Uniswap 分析數據的所有信任。但我們怎麼知道真正的 TVL 呢?我有兩個選項。
選項 1:分叉並修復 Uniswap v3 subgraph。這個選項的缺點是,subgraph 重新索引需要花費幾天的時間。而且我並不喜歡 The Graph 使用的 GraphQL 語言。
幸運的是,我還有選項 2:針對所有 Uniswap v3 和以太坊數據的高性能分析數據庫 Datamint,可以隨時進行複雜的在線查詢。
經過一些實驗後,我創建了以下算法來精確計算 TVL。
1、使用這兩個步驟計算所有現有 Uniswap v3 池的 TVL。
2、添加所有 ERC-20
Token
轉賬池合約 (包括所有無人認領的費用),並匹配 Etherscan 上的
Token
餘額
3、添加所有流動性活動,然後添加所有的 swap 活動,以說明費用
4、比較兩種方法,確保沒有無法解釋的差異
5、刪除 swap 次數少於 50 或 0.00000000000001
Token
數量的廢棄池和空池 (檢測到 7863 個池 (包括 2,083 對穩定幣),我的算法將 112 個資金池作為空池/廢棄池移除)
6、為每個
Token
找到穩定幣的路徑,將資金池 TVL 轉換為美元價值
7、移除美元價值有問題的低流動性池,因為一些池在完全移除流動性後會顯示不充分的價值 (查看下圖作為參考)
8、將所有剩餘貨幣對的 TVL 轉換為美元價值並相加
經過多次交叉檢查,我得出了一個 TVL 結果:
它幾乎比報告的 118 億美元少了 4 倍。
免責聲明:我的計算可能包含錯誤。在面向企業客戶的數據項目中,我們使用文檔化方法、自動測試和許多其他工具來實現最高的數據質量。這些工具對於像這樣的個人研究項目來說是多餘的。本研究強調了現有數據中明顯的問題,而不是提供最終的解決方案。
好的,我們會修正 TVL 的計算。這會有幫助嗎?
問題不在於不正確的數字,而在於我們根據這些數字做出的決定。例如,大多數為流動性提供者提供的利潤計算器都使用這些數字進行預測。
然而,修正 TVL 的計算並不難。Uniswap Labs 要麼在他們的 subgraph 代碼中修復它,要麼計算器開發人員開始使用其他數據源。核心問題是我們是否能相信計算器的預測是正確的。
我做了一些計算,簡短的答案是——根本不可能。
我知道這是一個大膽的主張。許多流動性提供者使用現有的計算器,並影響成本高達數千萬美元的決策。但是讓我們來看看計算步驟,這樣你就可以做出自己的判斷了。
首先,讓我們回顧一下 Uniswap v3 協議的一些核心概念。
其主要創新之一是集中流動性。本質上,使用 Uniswap v3,你可以選擇希望資金用作流動性提供者的價格範圍。這是一個了不起的概念,可以為協議用戶帶來巨大的價值。流動性提供者限制了他們對無常損失的敞口,交易者可以在波動性較低時享受較小的價格滑點。但所有這些潛在的好處都是有代價的,那就是複雜性。
因此,我們想了解一下 Uniswap v3 流動性提供者的收益是如何計算的。
在 Uniswap v3 中,流動性提供者選擇要提供流動性的價格範圍。一旦價格在這個區間內,他就會得到 swap 費用的分成。乍一看,流動性提供者希望其流動性部位的價格區間越寬越好。然而,流動性是按比例分布在這個範圍內的。因此,交易範圍越廣,每筆交易的 swap 費用就越低。
在這個例子中,選項 A 顯示流動性提供者選擇了一個更寬的價格範圍,選項 2 顯示了相同金額的更窄的價格範圍。如果在這兩種情況下,價格都在選定的價格範圍內,流動性提供者在選項 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 萬美元的流動性。
第二筆交易通過 WETH 從 USDC swap 到 DogeChain。這是一份價值約為 16500 美元的普通 swap。
第三筆交易又一次是「MEV Bot」,從 USDC-WETH 池中移除了 2200 萬美元的流動性。
在這個例子中發生的事情被稱為「流動性狙擊」。讓我來解釋一下這是如何運作的:
有人發送了一筆交易,將 USDC swap 到 DogeChain
MEV Bot 在 mempool 中檢測到這筆交易,並使用 Flashbots 技術或類似的技術激活與礦池的私人鏈接
MEV Bot 向礦工支付報酬,讓他們按特定順序包含一筆 swap 交易和兩筆交易,以便提取價值
MEV Bot 在非常狹窄的價格範圍內增加了大量的流動性 (2200 萬美元),因此實際上,所有來自特定 USDC-DogeChain 交易的費用利潤都歸他所有
然後 MEV Bot 移除流動性並賺取費用 (約 35 美元)
所以,扣除 gas 費後他的毛利大約是 30 美元。不是很多,是嗎?是的,但他每分鐘都會多次執行這個策略,這一切累計起來就很多了。你可以自己去看看。
這對作為流動性提供者的你意味著什麼?這意味著流動性狙擊手可能會從你的費用利潤中抽走很大一部分。
結論
請不要誤解我的意思。我相信 Uniswap 是一個具有巨大潛力的偉大項目。我也尊重 Uniswap v3 的核心中集中流動性的想法。然而,我發現 Uniswap 生態系統的分析部分還遠未成熟。我相信這種情況很快就會改變!
讓我總結一下我的研究結果:
Uniswap v3 圖表中的 TVL 數據非常不準確。所有依賴官方 Uniswap v3 subgraph 的分析工具都存在同樣的錯誤。
Uniswap v3 的總 TVL 是 31.4 億美元,而官方網站報告的數字是 118 億美元 (在撰寫本文時)。
Uniswap v3 流動性提供者的計算器對於實際策略沒有什麼價值,因為它們沒有考慮競爭和流動性阻擊手。
幸運的是,你現在可以更好地理解 Uniswap v3 流動性池的實際運作方式,並可以相應地調整你的研究。
我無法提供財務建議,但我認為只有兩種方法可以建立一個突出的流動性提供策略:
簡單型。使用歷史數據。嘗試持有少量質押的流動性部位,看看哪種選擇效果更好。顯然,這隻有在市場穩定的前提下才有效。
進階型。進行研究並相應地優化 LP 策略。如前所述,這需要深入理解 Uniswap v3 協議、並擁有數學和博弈論的能力,以及實時處理大量數據的強大數據分析工具。
這兩種選擇有一個共同點——你的決策要基於數據而不是直覺或隨機工具。有時處理數據很困難,但它是有回報的。
暢行幣圈交易全攻略,專家駐群實戰交流
▌立即加入鉅亨買幣實戰交流 LINE 社群(點此入群)
不管是新手發問,還是老手交流,只要你想參與虛擬貨幣現貨交易、合約跟單、合約網格、量化交易、理財產品的投資,都歡迎入群討論學習!
- 從零開始學合約系列講座熱烈報名中
- 掌握全球財經資訊點我下載APP
文章標籤
上一篇
下一篇