如今,隨著人們對DeFi的興趣日益濃厚,DEX風靡一時。它們解決了常見的CEX問題,那我們也會問,DEX夠安全嗎?
在上一篇說明了代幣本身的安全問題后|DEFI安全問題之基礎篇),現在來聊聊DEX在兌換代幣時可能產生的安全問題。目前DEX主要面臨的安全問題大致可分成兩類:
DEX項目本身存在的安全問題。
作為第三方協議,與其他DEFI項目交互時產生的安全問題。
本文將對第一類安全問題進行介紹。
Uniswap的重入漏洞的主要表現形式為:攻擊者在一筆兌換交易中利用Uniswap未及時更新價格前發起二次兌換,由于此時Uniswap未更新價格,使得二次兌換可兌出的代幣數量比正常兌換的多。此外,在Uniswap的重入攻擊中,攻擊者利用單筆交易可能只能獲得微小的收益,因此攻擊者往往傾向于使用閃電貸或者循環套利擴大戰果。
BNBChain Builder Grant公布2月份獲勝項目為Frank lin DAO和identity.com:3月21日消息,BNB Chain公布BNBChain Builder Grant計劃2月份獲勝項目,分別為Franklin DAO和identity.com。其中,Franklin DAO團隊由該領域各種DeFi協議和項目的代表以及專注于開發、研究和投資的委員會組成,該團隊計劃為其成員提供有趣的教育體驗。Identity.com是一個身份驗證非營利組織,提供開源、去中心化的生態系統,其網關協議使經過驗證的信息能夠以合規和安全的方式在鏈上訪問。
據悉,BNBChain通過BNBChainBuilderGrant捐贈計劃每月投入最高50萬美元定期支持潛力項目。[2023/3/21 13:16:47]
以imBTC攻擊事件為例,該事件是由于UniswapV1在調用ERC777系列代幣時,未充分考慮合約回調的情況。
算法穩定幣FRAX脫錨至0.95美元附近:金色財經報道,算法穩定幣FRAX脫錨至0.95美元附近。Curve上FRAX與USDT交易比例為0.947左右,Chainlink數據顯示FRAX價格約為0.952美元。[2023/3/11 12:56:50]
具體表現為:攻擊者使用imBTC代幣兌換ETH時,合約先通過self.getInputPrice函數計算正確的ETH數額并將ETH發送到目標地址,然后調用self.token.transferFrom函數時,會調用imBTC合約的_callTokensToSend函數,而_callTokensToSend函數會調用用戶指定存儲imBTC代幣的合約。因此,如果攻擊者部署存儲合約,并改寫其中TokensToSend函數,那么當兌換代幣時,pair(兩種代幣組成的交易對)合約調用攻擊者部署的存儲合約,就可以回調pair進行二次兌換,而二次兌換時pair合約賬本還未更新,使得計算的ETH數額比正常兌換要多,以此來獲利。
0xD945開頭地址昨日購入約252萬枚BLUR:金色財經報道,據Lookonchain監測,0xD945 開頭巨鯨地址昨日在 Uniswap 上花費約 2000 枚以太坊購入約 252 萬枚 BLUR,平均購買價格為 1.35 美元。[2023/2/20 12:17:40]
且正常第二次可兌換的ETH數量為:
但重入后第二次可兌換的ETH數量為:
由此可知,在重入后第二次兌換中只有ETH的儲備量減少,而imBTC儲備量未增加。這樣在分母不增加的情況下,導致了等量的imBTC可以兌換更多的ETH。
針對此類安全問題,成都鏈安建議:
當合約涉及到資產轉移時,使用“檢查-生效-交互”模式來處理邏輯,對關鍵的業務操作可以使用OpenZeppelin官方的ReentrancyGuard進行修飾。
路透社:數據顯示幣安已為Bitzlato轉移近3.46億美元的比特幣:金色財經報道,據路透社報道,區塊鏈數據顯示幣安為加密交易所Bitzlato轉移了近3.46億美元的比特幣。
此前1月19日消息,美國司法部將對俄羅斯交易平臺Bitzlato采取執法行動,創始人已被捕。彭博社報道稱,幣安被美國FinCEN列為Bitzlato的主要資金接收交易對手方之一,對此,幣安發言人在一份聲明中寫道,幣安“為支持這項調查的國際執法合作伙伴提供了大量協助,這體現了幣安致力于與全球執法伙伴合作的承諾。”[2023/1/24 11:28:45]
圖8合約進行k值校驗的Swap函數
該事件的具體攻擊步驟如下:
1.在準備階段攻擊者部署了AAA代幣合約,并使用閃電貸借來1000WBNB,兌換65140個項目方的IF代幣。
2.使用其中一半的IF代幣(32570個)與攻擊者自己部署的AAA代幣構建IF-AAA交易池。
3.執行AAA-IF-BUSD路徑的代幣兌換,且當Router合約調用AAA代幣合約的transferFrom函數時會執行攻擊者的惡意代碼,重入至IF-BUSD的pair合約,并將另一半IF代幣正常兌換出221897個BUSD。
4.回歸到AAA-IF-BUSD路徑的兌換,將之前計算的amounts值傳入_Swap函數中執行這筆兌換,用一半的IF又兌換了2521897個BUSBD。
5.歸還閃電貸,完成攻擊。
Part.3
-DecentralizedExchange
通縮代幣未設置pair為分紅例外
通縮代幣在交易時會產生額外的分紅與手續費。如果交易合約中包含了此類代幣,且沒有進行特殊處理,那么,就可能導致交易對合約記錄的代幣儲量與實際的代幣可用余額不一致。
以XSquid事件為例,XSquid是一種通縮代幣,未將其與WHT代幣組成的pair合約地址添加獎勵例外列表,造成了pair合約除了正常代幣兌換和流動性存儲外,還存有多余的XSquid分紅獎勵代幣。因此,攻擊者就可以調用Swap函數將pair合約多余的XSquid代幣轉換為WHT提取,或者通過skim函數將多余的XSquid代幣直接提取。
PART.1
詐騙交易池
這類問題主要是指項目方在自己發行的代幣里留有后門,創建與主流代幣的交易池,誘使投資者使用手里存在價值的代幣買入項目方代幣,并且不斷拉盤對投資者進行投資欺騙。
以下面的TRTC項目方為例,項目方創建了ETH-TRTC的交易池。但是在TRTC的代幣合約對transferFrom函數做了相關限制,要求代幣的轉出方為owner(管理員)或者為Uniswap。因此對于投資者,僅可以通過Uniswap買入TRTC代幣,而不能賣出TRTC代幣。最后由項目方把投資者投入的ETH提走跑路,給投資者帶來了巨大的損失。
圖15TRTC合約的transferFrom函數
PART.2
項目方RugPull
RugPull是指項目方卷走投資者資金跑路的行為,目前已成為DeFi生態系統的最大騙局類型,項目方刻意制造代幣價格暴漲的假象、許諾為提供流動性的投資者提供高回報等方式來大量聚集資金,一旦時機成熟就移除池子里的流動性或將代幣卷走。這樣的例子在DeFi屢見不鮮,AnubisDAO、MeerkatFinance、TurtleDEX、Squidtoken魷魚幣等都是在卷款跑路之后,注銷網站和社交媒體銷聲匿跡,導致投資者承擔了巨大的損失。
寫在最后
成都鏈安建議項目方使用鎖倉和多重簽名來控制代幣流動性,避免出現砸盤跑路的情況。投資者不要被天上掉餡餅的事情沖昏頭腦,防范虛假宣傳。
尊敬的XT.COM用戶:由於杠桿ETF產品MASK5L,FTM5L,FTM3L,DYDX5L,SOS5L,SNX3L,LRC3L和EOS3L觸發了XT杠桿ETF產品份額合並機製.
1900/1/1 0:00:00親愛的大幣網(Dcoin)用戶:為了服務質量,繼續優化合約交易體驗,大網將于2022年2月8日0:00進行持續提升合約系統升級維護。預計持續時間為1小時,請以官方公告為準.
1900/1/1 0:00:00尊敬的WEEX用戶您好!早春活動百萬交易員征集令 活動四:天天空投 活動方式: 活動期間每天抽出10位有完成合約交易的用戶隨機送8、18、38、68、88USDT,周一至周五不限幣種.
1900/1/1 0:00:00后疫情時代下,“保持社交距離”、“減少公共場所聚集與活動”、“減少國際航班”、“區域或個體隔離”等舉措使得消費和商業活動幾乎陷入停滯,全球實體經濟恢復緩慢.
1900/1/1 0:00:00尊敬的XT.COM用戶:應項目方要求,XT.COM將於2022年3月9日16:00(UTC8)隱藏1NFT/USDT交易對。於2022年3月13日16:00(UTC8)關閉其交易對.
1900/1/1 0:00:00「世上沒有兩片完全相同的樹葉」是我們最常能聽到的一句話。這句話也曾在我們的初中生物課本中出現過,其意在強調生物基因的多樣性和復雜性——正是如此,我們才會成為一個個獨一無二的個體,在這個美麗而又駁.
1900/1/1 0:00:00