時間:2023-08-09|瀏覽:277
黃牛包下了店里所剩的全部新款AJ,于是你趕緊轉(zhuǎn)戰(zhàn)網(wǎng)購。然而并不意外,還是像原來一樣,網(wǎng)速更是沒有花錢去升級,于是網(wǎng)絡首批發(fā)售的AJ也全部搶購一空。
一雙原本原價小幾千人民幣的鞋子,突然在網(wǎng)上飆到了上萬人民幣,而賣價早已不是官方店家,而是這些黃牛。
這樣的事件也許在你剁手時屢見不鮮,然而區(qū)塊鏈領(lǐng)域也不斷有同樣的事情發(fā)生。
北京時間7月13日晚10點28分,BZRX在Uniswap上市,一位用戶通過智能合約于第一時間用650個ETH購入逾196.61萬個BZRX,兌換了流動池中39.3%的BZRX。兩分鐘后,幣價因為大量購買而上漲,該用戶開始進行一系列出售行為,共計獲利2030枚ETH和30萬個BZRX代幣。
不過,這個行為其實是攻擊者承擔了巨大的成本風險(runoutofgas)來進行的。在實際攻擊過程中,攻擊者并不清楚哪些交易會被礦工記錄到區(qū)塊中。
根據(jù)安全工程師Romanstorm的推特信息,實際上在所有發(fā)送的拋售BZRX的交易中,有14筆交易失敗了,并且這些失敗的交易每一筆都支付了昂貴的gas費用。當然其中15筆交易是成功的,這也就相當于成功的概率能有一半左右,在實施攻擊中其實是承擔了很大風險的。
如果攻擊者現(xiàn)在是在搶購限量AJ球鞋,每買一雙,都要支付手續(xù)費,并且在每一次購買的同時就要扣除手續(xù)費。然而并不是每次購買動作都能成功,一旦購買失敗,手續(xù)費也隨之打水漂。
從攻擊的思路上來看,其實這更像一個經(jīng)濟學問題: 1. 通過程序監(jiān)控獲得BZRX上線消息 2. 單筆大量購入低價BZRX 3. 急劇提升BZRX價格 4. 多次拋售BZRX
攻擊者以令人迅雷不及掩耳盜鈴之勢完成了這一系列操作,從而獲利。
今年6月底,有一類似事件想必大家有所耳聞。Balancer上兩個流動性池遭閃電貸攻擊,損失達50萬美元。CertiK天網(wǎng)系統(tǒng)(Skynet)檢查到BalancerDeFi合約異常后,對其進行了分析。
在BZRX代幣剛被Uniswap列入交易名單之后,攻擊者立刻大量買入BZRX。因為Uniswap的交易所設(shè)立的某種市場機制,當某一種代幣被大量購買后,單價會升高。然后攻擊者通過大量交易,多次將手中的高價BZRX賣出獲得ETH(每次售出BZRX會導致BZRX單價下降),最終獲得大量利潤。
這兩次事件的相同之處在于,攻擊者都是利用了DeFi金融模型的機制"缺陷",用低買高賣的方式進行套利。
而此次事件與Balancer攻擊不同的地方是,在Balancer攻擊中,攻擊者是惡意控制并壓低代幣的數(shù)量來對價格進行控制。而在此次攻擊中,攻擊者則是通過利用BZRX剛剛被Uniswap列入交易名單并且價格較低的那段時間,通過了正常的流程購買從而獲利的。
然而,與傳統(tǒng)智能合約不同的是,DeFi智能合約存在金融模型漏洞。
即便代碼沒有漏洞,合約部署沒有漏洞,問題也可能出在金融模型漏洞上。
聽起來有些防不勝防?
CertiK在此給出一些基本的方法措施,希望能夠幫助DeFi項目防范此類問題的再次發(fā)生: - 發(fā)售新幣時,可以參考交易所上幣的流程。交易所在幣開售之前,根據(jù)某種指標,給用戶一個購買額度,在幣開售之后,用戶只能購買某額度以內(nèi)的貨幣。這樣就不會出現(xiàn)一個用戶搶購了近40%的新發(fā)售的幣從而"哄抬物價"。 - 采用Ringtrading(環(huán)形交易)方法,設(shè)定交易活動間隔時間,分批次出售。 - 采用dFusion類似的批量拍賣,或是類似于荷蘭式拍賣等交易方式進行出售。
此次事件既不是DeFi項目被黑,也不是DeFi合約有漏洞。但其過程中被攻擊者鉆了巨大的空子,也側(cè)面反映出了DeFi在金融層面而非技術(shù)環(huán)節(jié)本身的不成熟。正如之前CertiK團隊專家分析的,這更像是一個經(jīng)濟學問題。
因此CertiK建議廣大用戶,除了要加強DeFi項目的風險排查,隨時監(jiān)測安全漏洞與風險,更有必要借助第三方安全公司協(xié)助其完成攻擊測試和全方位安全防御部署,幫助其排查其他任何原因所帶來的問題。
官方網(wǎng)站:https://cn.certik.io/
商務合作郵箱:bd@certik.org