Uniswap V3給合約審計帶來的新挑战
萬衆期待的Uniswap V3終於面世了,它的白皮書(https://uniswap.org/whitepaper-v3.pdf)及相關源代碼(https://github.com/Uniswap/uniswap-v3-core/tree/main/contracts)已經向業界全面公开。
這兩天各個專業人士發表了對V3的看法,這些看法主要集中在V3所具備的新特點、帶來的新體驗。作為在安全領域從業的我們則更加關注V3對合約審計尤其是去中心化交易所合約審計帶來的新挑战。
V3的問世毫無疑問將掀起新一輪DEX的升級大潮,因為它在資金效率、費用消耗、預言機優化等方面所作的改進將再次成為現有項目模仿的範本,也將成為衆多正在DEX賽道上創業團隊參照的藍本。
我們相信一批新的DEX合約會用到V3的實現方式,而這些新的DEX合約可能產生安全問題的源頭在以下兩方面:
1.由於V3引入了新的代碼許可協議,因此在商業方面將使得一些項目想直接照抄,拷貝變得有所顧忌,而不得不模仿它的實現方式,改寫它的源代碼。一旦改寫代碼就會給合約審計帶來挑战。
2.在整體安全性上Uniswap的合約還是相當不錯的,這其中最重要的一個原因就是它的代碼簡潔、功能刪繁就簡。而V3在一系列細節上進行了修改,這在功能及性能上比V2有了極大提高,但在安全性方面就增加了復雜度。如果模仿團隊對這些改動不求甚解、完全照搬、甚至和以前的實現方式混用則會引入潛在的風險。
那么具體V3在哪些方面對准備借鑑、參考它實現方式的團隊帶來了安全性方面的挑战呢?
我們認為有以下四大方面:
一、交易對由單個流動性池變為多個流動性池
V3的這個做法是為了提高資金效率,讓用流動性提供者將資金存入到交易量最大的價格區間。然而這就導致流動性池由單個變為多個。那么交易過程就會涉及到交易在多個資金池之間的切換,就會涉及到復雜的合約交互。
此外,每個流動性池現在可以設置不同的費率,這其中的計算邏輯就會比單一流動性池要復雜,這其中稍有不慎就會涉及到邏輯實現和計算過程的錯誤。
二、LP代幣由同質(ERC-20)通證變為非同質通證
在V2中,流動性池的代幣都被設計為同質通證,而在V3,它被設計為非同質通證。為了因應這個變化,V3中累積的費用會存在另外的池子中。但凡多了資金池,就多了被黑客攻擊的對象、就多了風險隱患,因此對這類新增加的資金池在安全方面的保障和維護就成為團隊必須要考慮的問題。
三、 UNI治理權可以轉交給其它地址
本質上這種方式如果使用得當、管理周全倒也不會對系統造成嚴重的風險。但權力是“固定”的、人卻是“靈活”的。如果這個治理權被轉移到不當地址(比如非DAO社區、非多籤錢包等)則後患無窮。
四、預言機的優化
V3對預言機進行了大膽的優化:其最重大的變化在我們看來就是價格計算方式的變化以及由計算方式帶來的一系列實現方式、流程邏輯的變化。
V3將價格的計算由算術平均值(arithmetic mean)變為幾何平均值(geometric mean)。用通俗的話說就是由加法運算變為對數運算。理論上,這極大拓展了價格的覆蓋區間,使得傳統上利用外在因素在極短時間引發價格劇烈波動從而操控交易的方式進一步失效。
但“福兮禍也”,這會不會在看上去一片大好的情況下引發新的問題?現在還不得而知,只能有待時間來證明。
此外,在V3白皮書中提到,這種方式讓其它合約調用預言機時能從某個交易對的多個流動性池中得到更可靠的數據。對此我們的擔心在於,如果某個池子被攻擊時,這個預言機所報的數據會不會不僅無效,而且誤差被更加放大?
對此,我們依然建議項目方在處理預言機喂價方面要謹慎又謹慎,盡量從多個數據源取數據,而不要依賴單一數據源,無論這個單一的數據源在理論計算上看上去多么美好、多么健壯。
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。
Hypernative 榮獲1600 萬美元融資,如何打造 Web3 安全防线
隨着 DeFi 的不斷發展,安全性仍然是該生態系統面臨的重大挑战,每年因安全問題而導致的資產損失高...
特朗普強勢入局加密市場!DeFi項目首度曝光,創始團隊引發軒然大波
World Liberty Financial 白皮書中列出的四名團隊成員之前曾在 Dough F...