本文發布于NEST愛好者,作者:Yuheng&Yuyi。
與單純基于可信任第三方的中心化預言機不同,NEST分布式預言機希望能夠讓盡可能多的鏈上用戶參與到價格轉換關系確定的過程中來,從而進一步提升預言機輸出數據結果的可靠性以及整個預言機系統的安全性。
而正是因為這種特性,分布式預言機往往會遇到數據無法得到有效驗證的問題,比如有惡意礦工提供惡意報價來影響價格。為了解決這種問題,NEST設計了報價—吃單的提交驗證機制,即允許驗證者根據報價的價格進行交易得到報價者所抵押的資產,并重新提出一個報價進行修正。通過這種方式,NEST分布式預言機能夠在一定程度上有效地對惡意報價進行限制,同時也能夠及時地對惡意報價進行修正。
慢霧:Inverse Finance遭遇閃電貸攻擊簡析:據慢霧安全團隊鏈上情報,Inverse Finance遭遇閃電貸攻擊,損失53.2445WBTC和99,976.29USDT。慢霧安全團隊以簡訊的形式將攻擊原理分享如下:
1.攻擊者先從AAVE閃電貸借出27,000WBTC,然后存225WBTC到CurveUSDT-WETH-WBTC的池子獲得5,375.5個crv3crypto和4,906.7yvCurve-3Crypto,隨后攻擊者把獲得的2個憑證存入Inverse Finance獲得245,337.73個存款憑證anYvCrv3Crypto。
2.接下來攻擊者在CurveUSDT-WETH-WBTC的池子進行了一次swap,用26,775個WBTC兌換出了75,403,376.18USDT,由于anYvCrv3Crypto的存款憑證使用的價格計算合約除了采用Chainlink的喂價之外還會根據CurveUSDT-WETH-WBTC的池子的WBTC,WETH,USDT的實時余額變化進行計算所以在攻擊者進行swap之后anYvCrv3Crypto的價格被拉高從而導致攻擊者可以從合約中借出超額的10,133,949.1個DOLA。
3.借貸完DOLA之后攻擊者在把第二步獲取的75,403,376.18USDT再次swap成26,626.4個WBTC,攻擊者在把10,133,949.1DOLAswap成9,881,355個3crv,之后攻擊者通過移除3crv的流動性獲得10,099,976.2個USDT。
4.最后攻擊者把去除流動性的10,000,000個USDTswap成451.0個WBT,歸還閃電貸獲利離場。
針對該事件,慢霧給出以下防范建議:本次攻擊的原因主要在于使用了不安全的預言機來計算LP價格,慢霧安全團隊建議可以參考Alpha Finance關于獲取公平LP價格的方法。[2022/6/16 4:32:58]
然而,這種針對于價格修正方式的順利運行基于的是吃單交易以及新的報價交易能夠在驗證期內及時地出現在鏈上的新區塊當中。眾所周知,目前整個區塊鏈網絡中的礦工群體早已不是像最開始那樣單獨工作了,為了保證收益的穩定性,礦工們會組織在一起形成礦池來達到算力的整合,因為在工作量證明的共識下,更大的算力也就代表著獲得收益的概率越高。
慢霧:Avalanche鏈上Zabu Finance被黑簡析:據慢霧區情報,9月12日,Avalanche上Zabu Finance項目遭受閃電貸攻擊,慢霧安全團隊進行分析后以簡訊的形式分享給大家參考:
1.攻擊者首先創建兩個攻擊合約,隨后通過攻擊合約1在Pangolin將WAVAX兌換成SPORE代幣,并將獲得的SPORE代幣抵押至ZABUFarm合約中,為后續獲取ZABU代幣獎勵做準備。
2.攻擊者通過攻擊合約2從Pangolin閃電貸借出SPORE代幣,隨后開始不斷的使用SPORE代幣在ZABUFarm合約中進行`抵押/提現`操作。由于SPORE代幣在轉賬過程中需要收取一定的手續費(SPORE合約收取),而ZABUFarm合約實際接收到的SPORE代幣數量是小于攻擊者傳入的抵押數量的。分析中我們注意到ZABUFarm合約在用戶抵押時會直接記錄用戶傳入的抵押數量,而不是記錄合約實際收到的代幣數量,但ZABUFarm合約在用戶提現時允許用戶全部提取用戶抵押時合約記錄的抵押數量。這就導致了攻擊者在抵押時ZABUFarm合約實際接收到的SPORE代幣數量小于攻擊者在提現時ZABUFarm合約轉出給攻擊者的代幣數量。
3.攻擊者正是利用了ZABUFarm合約與SPORE代幣兼容性問題導致的記賬缺陷,從而不斷通過`抵押/提現`操作將ZABUFarm合約中的SPORE資金消耗至一個極低的數值。而ZABUFarm合約的抵押獎勵正是通過累積的區塊獎勵除合約中抵押的SPORE代幣總量參與計算的,因此當ZABUFarm合約中的SPORE代幣總量降低到一個極低的數值時無疑會計算出一個極大的獎勵數值。
4.攻擊者通過先前已在ZABUFarm中有進行抵押的攻擊合約1獲取了大量的ZABU代幣獎勵,隨后便對ZABU代幣進行了拋售。
此次攻擊是由于ZabuFinance的抵押模型與SPORE代幣不兼容導致的,此類問題導致的攻擊已經發生的多起,慢霧安全團隊建議:項目抵押模型在對接通縮型代幣時應記錄用戶在轉賬前后合約實際的代幣變化,而不是依賴于用戶傳入的抵押代幣數量。[2021/9/12 23:19:21]
礦池的出現所引發的本質問題是其對交易打包權的壟斷。因為在公有鏈中只有挖到區塊的礦工或者礦池能夠決定下一個區塊中應該包含哪些交易,而礦池相較于單一的個體礦工又往往具有壓倒性的算力優勢,在這種情況下那些具有算力規模更大的礦池會選擇打包一些對自己有利的或者交易費較高的交易,即使這些交易可能并不是最先被公布到鏈上的。
慢霧:Polkatrain 薅羊毛事故簡析:據慢霧區消息,波卡生態IDO平臺Polkatrain于今早發生事故,慢霧安全團隊第一時間介入分析,并定位到了具體問題。本次出現問題的合約為Polkatrain項目的POLT_LBP合約,該合約有一個swap函數,并存在一個返傭機制,當用戶通過swap函數購買PLOT代幣的時候獲得一定量的返傭,該筆返傭會通過合約里的_update函數調用transferFrom的形式轉發送給用戶。由于_update函數沒有設置一個池子的最多的返傭數量,也未在返傭的時候判斷總返傭金是否用完了,導致惡意的套利者可通過不斷調用swap函數進行代幣兌換來薅取合約的返傭獎勵。慢霧安全團隊提醒DApp項目方在設計AMM兌換機制的時候需充分考慮項目的業務場景及其經濟模型,防止意外情況發生。[2021/4/5 19:46:39]
而當這種情況出現在NEST分布式預言機中時,則會導致提交的新報價無法在驗證期內得到及時地驗證,最終會導致NEST輸出錯誤的價格數據,從而使得部分礦池捕捉到套利機會,進而威脅到整個DeFi生態的環境安全。本文接下來會具體介紹這種針對NEST分布式預言機的礦池拒絕打包攻擊的詳細內容。
Force DAO 代幣增發漏洞簡析:據慢霧區消息,DeFi 量化對沖基金 Force DAO 項目的 FORCE 代幣被大量增發。經慢霧安全團隊分析發現: 在用戶進行 deposit 操縱時,Force DAO 會為用戶鑄造 xFORCE 代幣,并通過 FORCE 代幣合約的 transferFrom 函數將 FORCE 代幣轉入 ForceProfitSharing 合約中。但 FORCE 代幣合約的 transferFrom 函數使用了 if-else 邏輯來檢查用戶的授權額度,當用戶的授權額度不足時 transferFrom 函數返回 false,而 ForceProfitSharing 合約并未對其返回值進行檢查。導致了 deposit 的邏輯正常執行,xFORCE 代幣被順利鑄造給用戶,但由于 transferFrom 函數執行失敗 FORCE 代幣并未被真正充值進 ForceProfitSharing 合約中。最終造成 FORCE 代幣被非預期的大量鑄造的問題。 此漏洞發生的主要原因在于 FORCE 代幣的 transferFrom 函數使用了`假充值`寫法,但外部合約在對其進行調用時并未嚴格的判斷其返回值,最終導致這一慘劇的發生。慢霧安全團隊建議在對接此類寫法的代幣時使用 require 對其返回值進行檢查,以避免此問題的發生。[2021/4/4 19:45:30]
攻擊流程及分析
為了方便講解這種攻擊方式,我們首先假設所有參與挖礦的成員都是礦池,各個礦池具有不同大小的算力占比,且彼此之間都知道各自的算力占比。
首先在發動攻擊之前,惡意礦池可以通過閃電貸等方式預先囤積好之后用于套利的加密貨幣。例如,惡意礦池會預先囤積大量的ETH,緊接著操縱ETH和USDT之間的價格比例來實現套利。
接下來,惡意礦池會向NEST提出一個報價,該報價會和當前的實際市場價格存在著巨大的差別。由于該報價和實際市場價格之間存在著巨大的差別,也就代表著存在著巨大的套利空間。因此在持續時間為S個區塊的驗證期內,根據NEST本身的吃單驗證的協議,必然會有驗證者提出吃單的交易并對該報價進行最合理的修正以獲得最大的收益。
而此時,在組裝每一個驗證期的區塊時,所有的挖礦礦池面對著兩個相同抉擇,將該交易打包進自己組裝的下一個正在組裝區塊當中或者不將該報價打包進下一個正在組裝的區塊中。由于各個礦池都知道彼此之間的算力占比以及彼此之間所能夠采取的策略選擇,因此在驗證期內,每個礦池是否選擇對該報價進行修正實際上可以看成所有礦池所一起進行的多次相互獨立的完全信息靜態博弈。而能夠決定整博弈最終結果的,也就是所謂的納什均衡點,則是每個參與者在各種決策組合情況下的收益,因為每個參與者都會選擇在各種情況下自己收益都最大化的決策。囚徒困境就是一種典型的完全信息靜態博弈。
如果一個礦池選擇對于該報價進行修正,那么很明顯該礦池能夠立即得到收益,我們假設修正報價對應的收益為a。而如果一個礦池不選擇對于一個報價進行修正,看似該礦池無法立刻得到收益,但是該礦池也可以根據該惡意報價所涉及到的加密貨幣進行囤積,最終在報價成立之后進行套利,我們可以設這個最終的收益為b并且通常有b>a。
但是我們需要注意到,在區塊鏈中只有挖到新區塊的礦池能夠獲得記賬權,也就是說即使一個礦池選擇立刻修正該惡意報價,它也只能在一定概率下獲得a的收益,并且這個概率是和該礦池的算力成正比的,因此我們可以將一個礦池選擇修正報價的收益表示為Pia。同樣的如果不修正報價,在報價成立之后,一個礦池所能夠得到的收益也為Pib。但是由于一旦報價被修正,那么之后的博弈也就不再存在,意味著所有的礦池都不會獲得b收益,因此實際上在驗證期礦池決定每個區塊的交易內容時,其所考慮的兩種收益實際如下:
其中T代表礦池的決策,Y代表修改該報價,N代表不修改該報價;Pn代表接下來所有驗證期區塊都不會出現修改報價的概率。
在組裝驗證期內對應的每一個區塊時,所有的礦池都會比較這兩種收益來選擇自己的決策。最后根據自己的算力占比,以及兩種收益a、b之間的比例關系選擇是否對于該報價進行修正,從而最終達到納什均衡狀態。
分析總結
正如上述所說,礦池有可能會憑借著自身算力的優勢對于報價的修正更新進行延遲和阻礙,從而利用NEST預言機進行套利。但是這也不僅僅是NEST預言機所面臨的問題,實際上整個區塊鏈的去中心化理念都在受到礦池這一現象的沖擊,因此如何解決好礦池所帶來的問題,是我們在走向真正的去中心化道路中不可避免的一個挑戰。
Tags:ABUORCFORFORCEABU幣Work Force CoinDeFi ForgeBanana Task Force Ape
本文由鏈聞根據Messari分析師JackPurdy的推文和發表的報告整理并補充活在加密貨幣世界,最不缺的是?數據?,最缺的,也是數據.
1900/1/1 0:00:00本文于2020年1月15日首發于金色財經,作者ETH中文網加密貨幣誕生的使命,就是要使得全世界的普羅大眾都能輕松使用貨幣和支付方式.
1900/1/1 0:00:00一、DCG的加密帝國之路在比特幣近幾個月的上漲行情中,連續增持BTC的灰度信托被認為是該行情最重要的支撐力量之一,每天都出現在公眾視野不斷刺激加密貨幣用戶的神經,也引發了市場對其巨大的興趣.
1900/1/1 0:00:00本文于2018年10月20日首發于鏈捕手公眾號,作者王阿刺 一、創世 2015年初,畢業于清華大學的中國芯片設計專家詹克團愁眉緊鎖,面對新的處理器不知從何入手設計,某天夜里.
1900/1/1 0:00:00本文于2018年11月13日發布于鏈捕手公眾號,作者為孫茳濤。 一、STO監管態勢 「人是生而自由的,卻無往不在枷鎖之中。自以為是其他一切的主人的人,反而比其他一切更是奴隸.
1900/1/1 0:00:00鏈捕手消息,DODOv2將于2月22號推出Beta公測版,上線以太坊和幣安智能鏈,同步開啟以太坊網絡的vDODO鑄造和會員獎勵.
1900/1/1 0:00:00