2019年末,我發表了一篇題為「Takingundercollateralizedloansforfunandforprofit」的文章。在這篇文章中,我描述了對依賴于一個或多個代幣準確價格數據的以太坊dApps的經濟攻擊。現在是2020年底,不幸的是,許多項目已經犯了非常類似的錯誤,最近的例子是HarvestFinance黑客套利攻擊,導致協議用戶集體損失3300萬美元。
盡管開發人員熟悉可重入性等漏洞,但很明顯,人們并不經常考慮對預言機價格的操縱。相反,基于可重入性的漏洞開發數量近年來有所下降,而基于價格操縱的漏洞開發數量正在上升。因此,我認為是時候有人出版一本關于價格操縱的權威資源了。
這篇文章分為三個部分。對于那些不熟悉這個主題的人,有一個關于喂價預言機和預言機操縱的介紹。那些想要測試知識的人可以直接跳到案例研究部分,在那里我們回顧了過去與預言機相關的漏洞和利用事件。最后,我們總結了一些方法,開發人員可以應用到保護他們的項目免受預言機的價格操縱。
現實生活中的喂價預言機操縱
2015年12月1日,星期三。你的名字是大衛·斯巴格,你正在澳大利亞墨爾本的PekingDuk音樂會上。你想親自見樂隊,但在你和后臺通道之間隔著兩個保安,他們不可能讓這些普通人走進去。
你知道,如果你表現得好像你屬于這里,保安會怎么反應。家庭成員肯定會被允許參觀后臺,所以你所要做的就是讓保安相信你是他們的親戚。你想了一會兒,然后想出了一個只能用天才或者瘋子來形容的計劃。
DeFi教育基金就銀團貸款是否為證券要求SEC提供更多信息:金色財經報道,DeFi 教育基金(DEF)最近利用《信息自由法》提交了關于SEC決定不明確銀團貸款作為證券分類的更多信息的請求。2023年3月,美國第二巡回上訴法院要求SEC就Kirschner訴北美摩根大通一案提供看法,該案涉及銀團貸款的分類,SEC曾三次提出延長提交截止日期的動議,該截止日期最初為2023年4月13日。7月18日,SEC 致函法院表示不會提交法庭之友陳述。
DEF首席法律官Amanda Tuminelli表示,對于一個似乎決心將幾乎所有加密代幣歸類為證券的證券監管機構來說,不提供其關于更傳統的金融工具是否是證券的邏輯很奇怪,因此加密行業需要知道真相。
根據《信息自由法》,SEC不必在給定日期之前對DEF做出回應,也不必交出任何內部通訊或文件。[2023/8/3 16:15:03]
在迅速安排好一切后,你自信地走向保安。你自我介紹說你叫大衛·斯巴戈,PekingDuk的家人。當警衛要求證據時,你給他們看無可辯駁的證據——維基百科。
警衛揮手讓你過去,讓你等著。一分鐘過去了,兩分鐘過去了。五分鐘后,你在遲疑否應該在執法部門出現之前逃跑。當你準備「越獄」之時,ReubenStyles?走過來介紹了自己。你和他一起走到演員休息室,那里的樂隊對你的聰明才智印象深刻,最后你們一起喝了幾杯啤酒。之后,他們會在自己的Facebook頁面上分享所發生的事情。
什么是喂價預言機?
Spiral DAO向DeFi用戶空投的計劃將延遲3周執行:4月10日,據官方推特,Spiral DAO計劃將初始代幣供應的3-5%空投至現有的Balancer、CRV、FXS和SDT質押者以及其他DeFi用戶的計劃將延遲3周執行,持有金額大于指定閾值的用戶才有資格獲得空投。
據悉,Spiral DAO采取了一種新穎的DAO模型,將創新帶入流動性挖礦、賄賂市場和VeTokenomics。Spiral DAO向其用戶分發原生代幣獎勵,為流動性提供者(LP)提供額外的收益提升和激勵。[2023/4/10 13:55:00]
喂價預言機,總的來說,就是任何你咨詢的價格信息。當Pam向Dwight詢問SchruteBuck的現金價值時,Dwight就是在預測價格。
在以太坊網絡中,一切都是智能合約,喂價預言機也是如此。因此,區分喂價預言機是如何獲得其價格信息的更有用。在一種方法中,您可以簡單地從價格api或交易平臺中獲取現有的鏈外價格數據,然后將其引入鏈中。在另一種情況下,您可以通過查詢在鏈上的去中心化交易所來計算瞬時價格。
這兩種選擇各有優缺點。離鏈數據對波動性的反應通常較慢,波動性的好壞取決于您試圖將其用于何處。它通常需要少數特權用戶將數據推送到鏈上,因此您必須相信他們不會作惡,也不會被迫推送奇怪的更新。鏈上數據不需要任何特權訪問,并且總是最新的,但這意味著它很容易被攻擊者操縱,從而導致災難性的故障。
還能出什么岔子呢?
DeFIL已完成DFL首次銷毀,銷毀價值超21.39萬美金:8月25日,DeFIL2.0宣布已完成對平臺通證DFL的首次銷毀,共銷毀DFL174,531.25枚,價值213,936.50美金。DFL的銷毀資金由兩部分組成:平臺產生利息的30%;當全網FILST質押量低于60%時,算力挖礦收益的30%。根據官方消息,此后DFL將每日銷毀一次,DFL預計將進入持續通縮趨勢。[2021/8/25 22:36:58]
讓我們來看一些例子,在這些例子中,集成不良的喂價預言機導致DeFi項目遭受重大資金損失。
SynthetixsKRW預言機故障
Synthetix是一個衍生品平臺,允許用戶將資產質押為其他資產。為了促進這一點,Synthetix(當時)依賴于一個定制的離鏈價格供應源來實現,其中一個由一組秘密的價格供應源計算出來的總價格以一個固定的間隔發布在鏈上。然后,這些價格允許用戶對平臺支持的資產持有多頭或空頭頭寸。
2019年6月25日,Synthetix依賴的一個價格反饋錯誤地報告了韓元的價格比實際價格高出1000倍。由于喂價預言機系統的其他地方出現了額外的錯誤,這個價格被系統接受并發布在鏈上,在鏈上交易機器人可以快速進出sKRW市場。
盡管Synthetix團隊能夠與這個交易者談判,以bug獎金的形式交換回損失資金。但理論上的來說,機器人本次能夠獲得超過10億美元的利潤。
Synthetix正確地執行了預言機合約,并從多個來源下調了價格,以防止交易商在價格變化發布之前預測價格變化。然而,一個上游價格源故障的案例導致了毀滅性的打擊。這說明了使用離鏈數據的喂價預言機的風險:您不知道如何計算價格,因此您的系統必須仔細設計,以便所有潛在的故障模式都得到正確處理。
DeFi 概念板塊今日平均跌幅為10.02%:金色財經行情顯示,DeFi 概念板塊今日平均跌幅為10.02%。47個幣種中3個上漲,44個下跌,其中領漲幣種為:WICC(+1.35%)、WNXM(+0.42%)。領跌幣種為:CRV(-17.47%)、NAS(-17.42%)、BAL(-17.32%)。[2021/1/12 15:57:04]
低擔保貸款
如前所述,我在2019年9月發表了一篇文章,概述了使用依賴于鏈上數據的喂價預言機所帶來的風險。雖然我強烈推薦閱讀原文,但是這篇文章篇幅很長,技術細節很多,可能很難理解。因此,我將在這里提供一個簡單的解釋。
想象一下,你使用去中心化的借貸平臺。用戶可以將資產作為抵押品存入平臺,也可以借入其他資產,但最高金額取決于他們存入的資產的價值。讓我們假設一個用戶想用ETH作為抵押品借入美元,ETH的當前價格是400美元,抵押比率是150%。
如果用戶存款375ETH,意味著存入了150,000美元的抵押品。他們可以每1.5美元的抵押品借入1美元,所以他們可以從系統借入最多100,000美元。
但是當然,在區塊鏈上它不是簡單的聲明1ETH值400美元,因為惡意用戶可以簡單的聲明1ETH值1000美元,然后從系統中拿走所有的錢。因此,對于開發者來說,尋找最適合的喂價預言機是很誘人的,比如當前Uniswap、Kyber的現貨價格,或者另一個去中心化的交易平臺。
聚幣Jubi DeFi板塊治理代幣 JFI流動性挖礦上線:據官方消息,聚幣Jubi DeFi在質押JT借貸挖礦JFI后,已于2020年9月30日19:00(UTC+8)正式推出JFI的流動性挖礦。用戶在Uniswap上鏈接錢包,搜索JFI合約地址,授權并向JFI/USDT交易對注入流動性,即可獲得挖礦JFI代幣獎勵。
JFI總發行量21,000,000枚,其中10萬枚已空投給符合要求的JT持有者,90萬枚已全額銷毀,其余2000萬枚中一半通過質押JT挖礦產生,另一半通過去中心化流動性挖礦產生。JFI作為Jubi DeFi板塊的治理代幣,將以聚幣金融業務為價值依托,該板塊業務的利潤將實際為JFI價格賦能。[2020/9/30]
乍一看,這似乎是正確的做法。畢竟,只要你想買進或賣出ETH,Uniswap的價格總是大致正確的,因為任何偏離都會被套利者迅速糾正。然而,事實證明,去中心化交易平臺的現貨價格在交易過程中可能嚴重不正確,如下面的例子所示。
想想Uniswap儲備系統是如何運作的。價格是根據儲備金持有的資產數量計算的,但儲備金持有的資產隨著用戶在ETH和USD之間的交易而變化。如果惡意用戶在從你的平臺貸款之前和之后進行交易會怎么樣?
在用戶申請貸款之前,他們需要花費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:DEFDEFIEFIETHDeFi.chDeFinomicseFin Decentralizedeth官網登錄入口
比特幣行情分析: 比特幣四小時級別來看價格昨日保持16000美金下行通道運行,凌晨行情高位跳水跌破通道下行。價格跌至14366美金有所反彈。日內重點關注上方15500美金關口.
1900/1/1 0:00:00Gate.io直播間作為行業內首個交易所內置直播功能,通過多樣性的直播形式為平臺用戶帶來具有深度、興趣、開放的信息內容.
1900/1/1 0:00:00前言:VitalikButerin于2020年11月6日在Twitter發布了一篇名為:"WhyProofofStake?(Nov2020)"?的文章.
1900/1/1 0:00:00今日行情回顧: 回顧今天的行情,早盤日線收線,行情有所回調,早盤文章明確給出今天做空的思路,上午09:40直播間果斷給出BTC15530/ETH456的現價空單,白天一路下跌到15150附近.
1900/1/1 0:00:00幣圈總裁:11.10BTC午間操作策略小時圖上看,目前價格15400位置附近運行,上方壓力位在15366,雖然短時突破了壓力位但很難在上方站穩,是一個虛破的走勢,之后應該有一波回調.
1900/1/1 0:00:00礦工持幣量和凈轉讓量等鏈上指標顯示,礦工盡管仍控制著很大部分的比特幣供應量,但對比特幣網絡的影響正逐漸減弱.
1900/1/1 0:00:00