獲利能力超千臺(tái)礦機(jī),攻擊者利用Fomo3D兩天薅了近60個(gè)ETH區(qū)塊鏈
PeckShield研究人員觀察到,攻擊者通過(guò)利用Fomo3D的空投機(jī)制在兩天時(shí)間內(nèi)薅了近60個(gè)ETH。這種獲利能力,可以比擬1000臺(tái)以上GPU顯卡礦機(jī)的挖礦能力。
Fomo3D過(guò)去的一周內(nèi)賺足了噱頭,一場(chǎng)光明正大的“龐氏”游戲瘋狂吸金,在鏈得得此前的報(bào)道中提到“Fomo3D的開(kāi)發(fā)者,是對(duì)生態(tài)有深刻理解的現(xiàn)實(shí)主義者。Fomo3D鼓勵(lì)黑客去黑掉智能合約,來(lái)證明以太坊有多脆弱。”Fomo3D核心成員Justo直指v神:“我已經(jīng)發(fā)現(xiàn)了可以毀滅以太坊虛擬機(jī)(EVM)的‘核武器漏洞’。”
開(kāi)發(fā)者雖然狂妄,但是卻被看作是足夠聰明的人。不過(guò),以太坊基金會(huì)的核心成員peter szilagyi在twitter上表示,F(xiàn)omo3D的空投機(jī)制要被智能合約自身存在的漏洞戲弄了。
(來(lái)源:peter szilagyi的twitter)
鏈得得注:Fomo3D玩家購(gòu)買(mǎi)的key金額高于0.1ETH時(shí),有機(jī)會(huì)獲得空投。例如,文字顯示:“下次購(gòu)買(mǎi)0.1ETH時(shí)有5%的機(jī)會(huì)獲得一個(gè)ETH !”空投的ETH直接打入你的投注地址。接收空投的機(jī)會(huì)從0%開(kāi)始,每一筆超過(guò)0.1ETH總額的Key訂單會(huì)增加0.1%的幾率。。
但是由于智能合約本身的漏洞,羊毛黨可以準(zhǔn)確捕捉到這個(gè)“隨機(jī)數(shù)”,從而在投入很小的前提下獲得將近100%的空投。PeckShield研發(fā)總監(jiān)吳家志告訴鏈得得作者,這是一個(gè)成功薅羊毛的案例。世界上是做不到完全隨機(jī)的,通常是利用時(shí)間當(dāng)作種子計(jì)算出一個(gè)相對(duì)隨機(jī)數(shù),但是在區(qū)塊鏈中可以預(yù)測(cè)到這個(gè)“相對(duì)隨機(jī)數(shù)”。
吳家志說(shuō):“每一個(gè)智能合約的運(yùn)作必然發(fā)生在某一個(gè)塊中,塊的時(shí)間可以運(yùn)算出,加上FoMo3D計(jì)算種子里使用的錢(qián)包地址,可以被偽造成可預(yù)測(cè)的合約地址,所以可以把小概率事件變得很大。”
Fomo3D在合約的最初設(shè)定中把“投注者的錢(qián)包地址”放到監(jiān)測(cè)名單,他們知道地址可以生成很多,但是攻擊者不可能用不同的地址去測(cè)試、押注空投的獎(jiǎng)池,這是一個(gè)成本非常大的事情。而這個(gè)事件中最核心就是Fomo3D在判斷錢(qián)包地址中存在的差錯(cuò),這也是Peter關(guān)注到的地方。
Peter作為跟隨V神多年的以太坊核心成員,他十分了解以太坊的技術(shù)架構(gòu)。攻擊者可以通過(guò)把錢(qián)包地址當(dāng)作隨機(jī)計(jì)算的部分來(lái)避開(kāi)Fomo3D的判斷。吳家志告訴鏈得得作者,設(shè)計(jì)Fomo3D的人沒(méi)有想到,在其合約的airdrop函數(shù)中,產(chǎn)生隨機(jī)數(shù)的種子是通過(guò)當(dāng)前塊信息(例如,第1416行的timestamp、第1417行的difficulty等)和msg.sender一起計(jì)算出來(lái)的(隨機(jī)變得不隨機(jī)),攻擊者可以在攻擊airdrop函數(shù)之前在合約中預(yù)先計(jì)算出結(jié)果(必然會(huì)開(kāi)獎(jiǎng))。
如果能夠得到一個(gè)針對(duì)當(dāng)前airDropTracker_的可用種子,攻擊者總是可以使airdrop函數(shù)返回true(第1424行),從而在正確時(shí)間點(diǎn)實(shí)施“薅羊毛”行動(dòng)。(合約地址可以不停嘗試新的合約地址,試到可以時(shí)便可進(jìn)行精準(zhǔn)投注,這樣就會(huì)確保一定能得到空投,其隨機(jī)性就遭到抑制,所以就會(huì)變得很像挖礦)。如下圖:
(Fomo 3D的airdrop函數(shù))
PeckShield研究人員觀察到,攻擊者通過(guò)利用Fomo3D的空投機(jī)制在兩天時(shí)間內(nèi)薅了近60個(gè)ETH。這種獲利能力,可以比擬1000臺(tái)以上GPU顯卡礦機(jī)的挖礦能力。最關(guān)鍵的是這個(gè)行為沒(méi)法制止,如果有好的編程能力,這是一個(gè)比挖礦還容易的“賺錢(qián)”方式。
事實(shí)上,在Fomo3D推出之后,市面上頓時(shí)出現(xiàn)大量的以FOMO Short、FOMO Lightning和RatScam等為代表復(fù)制版Fomo3D。他們也僅是對(duì)Fomo3D的合約進(jìn)行了復(fù)制,所以都會(huì)存在這樣的問(wèn)題。
(攻擊者發(fā)起的事務(wù))
但這種漏洞既然存在,為什么無(wú)法停下來(lái)?PeckShield吳家志告訴鏈得得作者,基于智能合約的游戲一旦運(yùn)轉(zhuǎn)起來(lái)就無(wú)法更改,除非有一天沒(méi)人繼續(xù)玩了,游戲會(huì)按照合約設(shè)定停下來(lái)。不過(guò),F(xiàn)omo3D游戲現(xiàn)在炙手火熱,很多玩家投注不少在其中,且獎(jiǎng)勵(lì)池金額不斷刷新,在巨額獎(jiǎng)勵(lì)誘惑下,每個(gè)人都在爭(zhēng)搶做最后一名投注者,所以暫時(shí)還看不到停下來(lái)的可能。
1.TMT觀察網(wǎng)遵循行業(yè)規(guī)范,任何轉(zhuǎn)載的稿件都會(huì)明確標(biāo)注作者和來(lái)源;
2.TMT觀察網(wǎng)的原創(chuàng)文章,請(qǐng)轉(zhuǎn)載時(shí)務(wù)必注明文章作者和"來(lái)源:TMT觀察網(wǎng)",不尊重原創(chuàng)的行為T(mén)MT觀察網(wǎng)或?qū)⒆肪控?zé)任;
3.作者投稿可能會(huì)經(jīng)TMT觀察網(wǎng)編輯修改或補(bǔ)充。