Uniswap 還是一個預言機協議嗎?
作者:Alex Kroeger
翻譯:Block unicorn
今年 5 月,Vitalik 在 Uniswap 治理論壇上創建了一個帖子,名為"UNI 應該成為一個預言機代幣"。他認為預言機需要提供鏈下數據,並且 UNI 處於有利地位,可以為高價值、容忍延遲的用例提供 Chainlink 的替代方案。
雖然這是一個有趣的想法,但正如我最近在該帖子中所反映的那樣,我一直在思考 Uniswap 如何已經是一個預言機協議。它已經從以太坊上最大的 DEX 提供了價格信息。UNI 已經是一個預言機代幣,UNI DAO 只是在這個事實方面做得不多,至少到目前為止。
Uniswap 作為預言機的歷史
自 v1 以來,Uniswap 一直是一個預言機協議,儘管當時是一個非常粗糙的協議。Uniswap v1 是一系列具有簡單 x * y = k 定價機制的 ETH-ERC20 礦池。您可以在任何池中查詢 ETH 和相應 ERC20 代幣的值,並且,您有一個現貨價格預言機。
然而,v1 作為預言機協議還有很多不足之處。首先,一切都以 ETH 定價。為了獲得非 ETH 報價,比如以 USDC 表示的 BAT 價格,您需要將價格鏈接在一起(在這種情況下,BAT-ETH 和 ETH-USDC)。
其次,價格是一個簡單的時間點(更具體地說,更悲慘的是,一個區塊的點)現貨價格。這很容易受到操縱,因為"不幸的是"流動性撤出和大量交易可能會大幅波動價格。我不建議依賴該價格來執行敏感任務,例如確定借入頭寸是否在底部。
v2 改進了 Uniswap 作為預言機的實用性。首先,v2 允許任意 ERC20-ERC20 對。其次,在任何交易或流動性變化發生之前,每個礦池都會對起始區塊的價格進行快照,這使得操縱更加困難。最後,它存儲的價格值(價格乘以自上個區塊以來的秒數的運行累加器)允許用戶計算時間加權平均價格 (TWAP),而不是簡單的現貨價格。
然而,從 v2 池中獲取 TWAP 並不是開箱即用的------它需要集成商將運行累加器的過去值存儲在單獨的合約中以進行計算。
Uniswap v3 保留了 v2 提供的好處,但也通過提供存儲一系列累加器值的能力來解決上述缺陷(默認僅存儲 1 個值,但任何願意支付 gas 成本的人都可以擴展跟蹤值的數量最多 65,535 個觀察值,或約 9 天的價格)。
Oracle(預言機) 使用情況
Uniswap v3 已經在各種環境中用作鏈上預言機,許多項目從他們的合約中調用 Uniswap v3 的預言機功能,包括:
- Popsicle Finance(LP 收益優化協議)
- keep3r 網絡(去中心化的任務運行協議)
- Frax(一種算法穩定幣)
- Lixir Finance(Uniswap v3 的 LP 管理器)
- Rari Capital(Fuse 借貸協議的創建者)
- Babylon Finance(去中心化資產管理)
- Unipilot(LP 產量優化協議)
- Angle(一種穩定幣協議)

這些 oracle 調用是跨多種對進行的。我們可以在下圖中看到,雖然 USDC-WETH 是最常被調用的貨幣對,但它僅占預言機調用的 17%。使用預言機功能的資產有很長的尾巴。其中許多與上述協議直接相關(例如 FRAX、KP3R)。然而,更多的是 Uniswap 可能是最重要的流動性來源之一的資產(例如 ENS,當然還有 ELON)。

Uniswap DAO 作為預言機的守護者
oracle 功能已經被使用,儘管關於 Uniswap oracles 性能的材料相對缺乏(儘管我向您推薦了 Michael Bentley 撰寫的關於攻擊 v3 oracle 的成本的優秀線程)。

在德爾福與神諭一起工作的牧師會收到她的話語並將答案傳播給請願者
然而,改善和維護預言機體驗的動力在哪裡?Oracle 的使用目前不會使協議的交易者、LP 或維護者受益。
協議交易費用已經是 v2 和 v3 中 DAO 現金流的可能來源(儘管迄今為止尚未收取任何費用)。
值得考慮使用價格預言機的費用。雖然這需要對協議進行一些更改,但這可以作為每次調用的 ETH 固定費用或在一系列已批准的預言機調用者上註冊項目合約的方式來實現。
作為這些費用的交換,Uniswap DAO 可以成為"預言機的守護者"。這在實踐中意味著什麼?DAO 可以:
- 充當"最後的流動性提供者"
- 向作為價格預言機的高價值礦池提供流動性激勵
- 提供有關 Oracle 性能的數據和研究
- 為有關 oracle 使用的最佳實踐提供更好的文檔
通過"最後的流動性提供者",我的意思是 DAO 可以創建一個自動化策略或指定一個 LP 經理為重要的預言機和流動性不足的池提供一定數量的被動流動性。這可以阻止攻擊以及響應跨越多個區塊的攻擊,這些攻擊涉及提取流動性或影響池的流動性平衡。
當前 Uniswap 預言機的局限性
如果不承認今天存在的使用 Uniswap 預言機的一些限制,這個討論就感覺不完整。
雖然不建議使用來自 AMM 的簡單現貨價格(而不是 TWAP),但 TWAP 會降低數據的新鮮度(根據定義,它更慢地適應不斷變化的市場條件)。在選擇衡量 TWAP 的時間長度時,您面臨著兩難選擇:
- 時間窗口越短,TWAP 就越容易受到操縱。
- 時間窗口越長,TWAP 對不斷變化的市場價格的調整就越慢。
以借貸協議為例。如果抵押品價格突然下跌,而 TWAP 直到下跌趨勢開始 30 分鐘後才反映頭寸抵押不足,屆時現貨價格可能會更低,這可能導致協議對現在可能的水下位置造成損失。
話雖如此,Uniswap 預言機的吸引力在於它們相對自主的工作。即使沒有 DAO 可以提供的額外保證,只要有市場參與者的激勵,它們就會繼續正常運行。
回到 Vitalik 的帖子,探索 DAO 如何使用當前的池 TWAP 模型作為 Oracle 解決方案中的一個成分,以添加更新鮮的鏈外價格數據源,這可能會很有趣。













