2019年末,我發表了一篇題為「Takingundercollateralizedloansforfunandforprofit」的文章。在這篇文章中,我描述了對依賴于一個或多個代幣準確價格數據的以太坊dApps的經濟攻擊。現在是2020年底,不幸的是,許多項目已經犯了非常類似的錯誤,最近的例子是HarvestFinance黑客套利攻擊,導致協議用戶集體損失3300萬美元。
盡管開發人員熟悉可重入性等漏洞,但很明顯,人們并不經常考慮對預言機價格的操縱。相反,基于可重入性的漏洞開發數量近年來有所下降,而基于價格操縱的漏洞開發數量正在上升。因此,我認為是時候有人出版一本關于價格操縱的權威資源了。
這篇文章分為三個部分。對于那些不熟悉這個主題的人,有一個關于喂價預言機和預言機操縱的介紹。那些想要測試知識的人可以直接跳到案例研究部分,在那里我們回顧了過去與預言機相關的漏洞和利用事件。最后,我們總結了一些方法,開發人員可以應用到保護他們的項目免受預言機的價格操縱。
現實生活中的喂價預言機操縱
2015年12月1日,星期三。你的名字是大衛·斯巴格,你正在澳大利亞墨爾本的PekingDuk音樂會上。你想親自見樂隊,但在你和后臺通道之間隔著兩個保安,他們不可能讓這些普通人走進去。
你知道,如果你表現得好像你屬于這里,保安會怎么反應。家庭成員肯定會被允許參觀后臺,所以你所要做的就是讓保安相信你是他們的親戚。你想了一會兒,然后想出了一個只能用天才或者瘋子來形容的計劃。
Polygon鏈上DeFi協議總鎖倉量為47.5億美元:金色財經報道,據DefiLlama數據顯示,目前Polygon鏈上DeFi協議總鎖倉量為47.5億美元,24小時減少3.04%。鎖倉資產排名前五分別為AAVE(20.1億美元)、Quickswap(6.12億美元)、Curve(3.23億美元)、SushiSwap(2.22億美元)、Balancer(1.56億美元)。[2022/1/31 9:23:42]
在迅速安排好一切后,你自信地走向保安。你自我介紹說你叫大衛·斯巴戈,PekingDuk的家人。當警衛要求證據時,你給他們看無可辯駁的證據——維基百科。
警衛揮手讓你過去,讓你等著。一分鐘過去了,兩分鐘過去了。五分鐘后,你在遲疑否應該在執法部門出現之前逃跑。當你準備「越獄」之時,ReubenStyles?走過來介紹了自己。你和他一起走到演員休息室,那里的樂隊對你的聰明才智印象深刻,最后你們一起喝了幾杯啤酒。之后,他們會在自己的Facebook頁面上分享所發生的事情。
什么是喂價預言機?
喂價預言機,總的來說,就是任何你咨詢的價格信息。當Pam向Dwight詢問SchruteBuck的現金價值時,Dwight就是在預測價格。
在以太坊網絡中,一切都是智能合約,喂價預言機也是如此。因此,區分喂價預言機是如何獲得其價格信息的更有用。在一種方法中,您可以簡單地從價格api或交易平臺中獲取現有的鏈外價格數據,然后將其引入鏈中。在另一種情況下,您可以通過查詢在鏈上的去中心化交易所來計算瞬時價格。
DeFi基準利率今日小幅波動至3.33%:金色財經報道,據同伴客數據顯示,07月29日DeFi去中心化金融基準利率為3.33%,較前一日下降0.87%。同期美國國債抵押回購率(Repo Rate)為0.06%,二者利率差為3.27%。
DeFi基準利率代表了DeFi融資難易程度,利率越高說明融資成本越高,利率越低說明融資成本越低。其與Repo Rate的利率差則便于DeFi與傳統市場作進行同類比較。[2021/7/29 1:22:54]
這兩種選擇各有優缺點。離鏈數據對波動性的反應通常較慢,波動性的好壞取決于您試圖將其用于何處。它通常需要少數特權用戶將數據推送到鏈上,因此您必須相信他們不會作惡,也不會被迫推送奇怪的更新。鏈上數據不需要任何特權訪問,并且總是最新的,但這意味著它很容易被攻擊者操縱,從而導致災難性的故障。
還能出什么岔子呢?
讓我們來看一些例子,在這些例子中,集成不良的喂價預言機導致DeFi項目遭受重大資金損失。
SynthetixsKRW預言機故障
Synthetix是一個衍生品平臺,允許用戶將資產質押為其他資產。為了促進這一點,Synthetix(當時)依賴于一個定制的離鏈價格供應源來實現,其中一個由一組秘密的價格供應源計算出來的總價格以一個固定的間隔發布在鏈上。然后,這些價格允許用戶對平臺支持的資產持有多頭或空頭頭寸。
2019年6月25日,Synthetix依賴的一個價格反饋錯誤地報告了韓元的價格比實際價格高出1000倍。由于喂價預言機系統的其他地方出現了額外的錯誤,這個價格被系統接受并發布在鏈上,在鏈上交易機器人可以快速進出sKRW市場。
獨家 | DeFi累計用戶數接近45萬:據DappBirds DeFi Data專題數據顯示,DeFi累計用戶數接近45萬,DeFi中鎖定資產總價值達98.31億美元,較昨日上升-0.60%,其中Uniswap,Aave,SushiSwap,MakerDAO,Curve分別以14.37億美元,13.24億美元,12.10億美元,10.98億美元,10.18億美元位列前五名。[2020/9/9]
盡管Synthetix團隊能夠與這個交易者談判,以bug獎金的形式交換回損失資金。但理論上的來說,機器人本次能夠獲得超過10億美元的利潤。
Synthetix正確地執行了預言機合約,并從多個來源下調了價格,以防止交易商在價格變化發布之前預測價格變化。然而,一個上游價格源故障的案例導致了毀滅性的打擊。這說明了使用離鏈數據的喂價預言機的風險:您不知道如何計算價格,因此您的系統必須仔細設計,以便所有潛在的故障模式都得到正確處理。
低擔保貸款
如前所述,我在2019年9月發表了一篇文章,概述了使用依賴于鏈上數據的喂價預言機所帶來的風險。雖然我強烈推薦閱讀原文,但是這篇文章篇幅很長,技術細節很多,可能很難理解。因此,我將在這里提供一個簡單的解釋。
想象一下,你使用去中心化的借貸平臺。用戶可以將資產作為抵押品存入平臺,也可以借入其他資產,但最高金額取決于他們存入的資產的價值。讓我們假設一個用戶想用ETH作為抵押品借入美元,ETH的當前價格是400美元,抵押比率是150%。
波場官方:Defi項目OKS與波場官方與孫宇晨本人沒有任何關系:波場官方今日發布聲明:波場社區近期盛傳Defi項目OKS,經查該項目為社區開發者自行開發Defi項目,與波場官方與孫宇晨本人沒有任何關系,合約并未經過官方審計,請投資者注意投資與黑客攻擊風險,波場與孫宇晨不負任何責任。經與P網溝通,OKS與P網IEO也沒有任何關系。OKS處于早期,投資風險極大,不鼓勵投資者參與該項目。[2020/7/2]
如果用戶存款375ETH,意味著存入了150,000美元的抵押品。他們可以每1.5美元的抵押品借入1美元,所以他們可以從系統借入最多100,000美元。
但是當然,在區塊鏈上它不是簡單的聲明1ETH值400美元,因為惡意用戶可以簡單的聲明1ETH值1000美元,然后從系統中拿走所有的錢。因此,對于開發者來說,尋找最適合的喂價預言機是很誘人的,比如當前Uniswap、Kyber的現貨價格,或者另一個去中心化的交易平臺。
乍一看,這似乎是正確的做法。畢竟,只要你想買進或賣出ETH,Uniswap的價格總是大致正確的,因為任何偏離都會被套利者迅速糾正。然而,事實證明,去中心化交易平臺的現貨價格在交易過程中可能嚴重不正確,如下面的例子所示。
想想Uniswap儲備系統是如何運作的。價格是根據儲備金持有的資產數量計算的,但儲備金持有的資產隨著用戶在ETH和USD之間的交易而變化。如果惡意用戶在從你的平臺貸款之前和之后進行交易會怎么樣?
Blockstream首席戰略官:Liquid Network可擁有與DeFi相同的功能:3月26日下午,Blockstream(c-lightning開發團隊)首席戰略官Samson Mow表示,“DeFi”這個詞有點模糊,定義也不清晰,因此很難確定什么是或不是DeFi。 閃電網絡是去信任化的、去中心化的,它確實為那些無法用比特幣主鏈解決的問題帶來了綜合的解決方案。
他還指出,液態網絡(Liquid Network)也將很快部署Simplicity智能合約語言,這意味著可以打造更多的創新項目,擁有與DeFi(即我們眼中的DeFi)相同的功能。像“DeFi”這樣的流行詞并不重要,重要的是打造出用戶需要切想要的產品。[2020/3/26]
在用戶申請貸款之前,他們需要花費200萬美元購買5000個ETH。Uniswap交易所現在計算的價格是1ETH=2,600美元。那么現在,他們的375ETH可以作為抵押品,抵押價值高達650,000美元的資產。最后,他們用200萬美元換回原來的5000ETH,這將重新調整價格至正常狀態。結果是,貸款平臺損失了550,000美元。
這個案例研究說明了在使用去中心化的交易作為喂價預言機時最常見的錯誤——攻擊者在交易過程中幾乎完全控制價格,并試圖準確地操縱價格就像在天平安定下來之前讀出秤上的重量。這樣的話,你可能會得到錯誤的號碼,并根據情況它可能會造成很大的損失。
SynthetixMKR操縱
2019年12月,Synthetix因為預言機價格操縱而再次遭受攻擊。值得注意的是,它跨越了鏈上價格數據和鏈外價格數據之間的障礙。
Reddit用戶u/MusaTheRedGuard注意到,一個攻擊者正在對sMKR和iMKR(反MKR)進行一些非常可疑的交易。攻擊者首先購買了MKR上的一個多頭倉位,然后從Uniswapeth/MKR對購買了大量MKR。等了一段時間后,攻擊者以iMKR的價格賣掉了他們的MKR,并把它們賣回了Uniswap。然后他們重復了這個過程。
在幕后,攻擊者通過Uniswap進行的交易允許他們隨意調整Synthetix上MKR的價格。這可能是因為Synthetix所依賴的非鏈式價格源實際上依賴于MKR的鏈上價格,而且沒有足夠的流動性讓套利者將市場重新調整到最佳狀態。
這個事件說明了一個事實,即使你認為你使用的是鏈外價格數據,實際上你可能仍然在使用鏈上價格數據,而且你可能仍然暴露在使用這些數據所涉及的復雜性中。
我該如何保護自己?
到目前為止,我希望你已經學會了識別共同的線索-它并不總是明顯的,你正在使用一個喂價預言機,如果你沒有遵循適當的預防措施,攻擊者可以欺騙你的協議,把你所有的錢寄給他們。雖然沒有可以規定的一刀切解決方案,但是這里有一些解決方案在過去曾經對其他項目起過作用。也許其中一個也適用于你。
淺水市場,不要潛水
就像一頭扎進游泳池的淺水區一樣,一頭扎進沒有流動性的市場是痛苦的,而且可能會導致永遠改變你的生活的巨大開銷。在您考慮計劃使用復雜的特定價格預言機之前,請考慮該標記是否具有足夠的流動性以保證與平臺集成。
一鳥在手勝過兩鳥在林
看到Uniswap的潛在代幣匯率可能會讓人著迷,但只有當你真正點擊交易并且交易成功后代幣在你的錢包里的時候,才是最終的結果。同樣,要確定兩種資產之間的匯率,最好的方法就是直接進行資產互換。這種方法很好,因為沒有后悔和假設。然而,它可能不適用于那些要求持有原始資產協議,如貸款平臺。
幾乎去中心化的預言機
總結依賴于鏈上數據的預言機模型的問題的一種方法是,它們有點太新了。如果是這樣的話,為什么不人為地推遲一下呢?編寫一份合約,在Uniswap這樣的去中心化交易平臺上用最新的價格更新自己,但只有在一小群特權用戶提出要求時才這樣做。現在,即使攻擊者可以操縱價格,他們也不能讓你的協議真正使用它。
這種方法實現起來非常簡單,而且速度快,但也有一些缺點——在鏈上擁堵的時候,你可能無法按照自己的意愿快速更新價格,而且仍然容易受到內外夾擊。此外,現在你的用戶需要相信,你實際上會保持價格更新。
減速帶
操縱價格預言是一個時間敏感的操作,因為套利者總是在觀望,并且喜歡優化任何次優市場的機會。如果攻擊者想要最小化風險,他們會想要在一個交易中操縱一個喂價預言機,這樣套利者就不可能在中間跳躍。作為一個協議開發人員,如果系統支持它,那么在用戶進入和退出系統之間實現短至1區塊的延遲就足夠了。
當然,這可能會影響可組合性,而且礦商與交易員的合作正在增加。在未來,壞的參與者可能會在多次交易中操縱價格,因為他們知道與他們合作的礦商將保證沒有人能跳到中間,從他們的收益中分一杯羹。
時間加權平均價格Time-WeightedAveragePrice(TWAP)
UniswapV2為鏈上開發人員引入了TWAP預言機。文檔對預言機提供的確切安全保證進行了更詳細的描述,但是一般來說,對于長時間的大型交易池,沒有區塊擁塞的情況下,TWAP預言機對預言機操縱攻擊具有很強的抵抗力。然而,由于其實施的性質,它可能無法對市場高度波動的時刻作出足夠迅速的反應,而且只適用于已經具有流動性的資產。
M-of-N記者
如今許多大型項目都采用這種方法:Maker運行一系列由可信實體操作的價格信息提要,Compound創建了Open預言機,并提供Coinbase等記者功能,Chainlink收集來自Chainlink運營商的價格數據,并在鏈上發布。請記住,如果您選擇使用這些解決方案之一,那么您現在已經將信任委托給了第三方,您的用戶也必須這樣做。要求記者手動在網上發布最新消息也意味著,在市場高度波動和鏈上擁堵的時候,價格可能無法及時更新。
總結
喂價預言機是一個至關重要的,但經常被忽視的組成DeFi安全的部分。安全地使用喂價預言機是困難的,有很多方法可以把你自己和你的用戶都搞砸了。在這篇文章中,我們討論了過去的價格預言者操縱的例子,并且確定在交易過程中閱讀價格信息可能是不安全的,并且可能導致災難性的金融損失。我們還討論了其他項目過去用于打擊價格Oracle操縱的一些技術。不過最終,每種情況都是獨一無二的,你可能會發現自己不確定是否正確地使用了喂價預言機。如果是這樣的話,盡管去尋求建議吧!
原文標題:《Soyouwanttouseapriceoracle》
原文來源:SAMCZSUN
Tags:DEFDEFIEFISWAPDeflect ProtocolDeFiSocial Gamingpinetworkdefi幣怎么退出熱門了MeganSwap
鏈聞消息,加密貨幣機構級交易通訊平臺Paradigm發布v0.44版本,并正式上線多元委托系統,可匿名報價并獲取多個經銷商報價中的最優價格,Maker報價執行窗口時長可設為60-300秒.
1900/1/1 0:00:00定投是“定期定額投資”的簡稱,指投資者在固定周期以固定的金額投資一個幣種或幣種組合。例如:小明,在BigONE設置定投策略為每周一,購買BTC和ETH各100USDT,在小明賬戶USDT充足的情.
1900/1/1 0:00:00交易之道,守不敗之地,攻可贏之敵;投資之旅,乘風而破浪,順勢而為之。亂市悠悠,隨波逐流而后嗚呼哀哉。感謝各位朋友的長期關注與支持.
1900/1/1 0:00:00摩根大通發布報告指出,金融機構放棄黃金ETF轉而購買比特幣;美國聯邦調查局在總統大選日沒收絲綢之路犯罪所得近10億美元比特幣;以太坊客戶端Lighthouse發布v4.0.0:金色財經報道.
1900/1/1 0:00:00AAX交易所平臺通證AAB已于11月10日正式上線區塊鏈數字資產錢包KeyFort(鎧付)錢包。用戶可以使用KeyFort冷錢包及APP錢包發送、接收、存儲AAB資產.
1900/1/1 0:00:00據彭博社消息,除申請破產保護外,加密借貸平臺Cred還與該公司一位前高管陷入法庭糾紛。Cred表示,「該平臺被前首席資本官JamesAlexander欺騙,后者涉嫌控制公司的一個部門,之后還卷走.
1900/1/1 0:00:00