溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

類Fomo3D攻擊實例分析

發(fā)布時間:2022-01-18 10:34:02 來源:億速云 閱讀:97 作者:iii 欄目:互聯(lián)網(wǎng)科技

本篇內(nèi)容介紹了“類Fomo3D攻擊實例分析”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

類Fomo3D

在分析整個事件之前,我們需要對類Fomo3D游戲的規(guī)則有一個基本的認(rèn)識。

Fomo3D游戲最最核心的規(guī)則就是最后一個購買的玩家獲得最大的利益

其中主要規(guī)則有這么幾條:

  • 游戲開始有24小時倒計時

  • 每位玩家購買,時間就會延長30s

  • 越早購買的玩家,能獲得更多的分紅

  • 最后一個購買的玩家獲得獎池中48%的eth

其中還有一些細(xì)致的規(guī)則:

  • 每位玩家購買的是分紅權(quán),買的越多,分紅權(quán)就會越多

  • 每次玩家購買花費的eth會充入獎金池,而之前買過的玩家會獲得分紅

  • 隨著獎池的變化,key的價格會更高

換而言之,就是越早買的玩家優(yōu)勢越大。

最終,資金池里的 ETH 48%分配給獲勝者, 2%分配給社區(qū)基金會,剩余的 50%按照四種團隊模式進(jìn)行分配。

游戲規(guī)則清楚之后,就很容易明白這個游戲吸引人的地方在哪,只要參與的人數(shù)夠多,有人存在僥幸心理,就會有源源不斷的人投入到游戲中。游戲的核心就在于,莊家要保證游戲規(guī)則的權(quán)威性,而區(qū)塊鏈的可信以及不可篡改性,正是完美的匹配了這種模式。

簡單來說,這是一個基于區(qū)塊鏈可信原則而誕生的游戲,也同樣是一場巨大的社會實驗。

可,問題是怎么發(fā)生的呢?讓我們一起來回顧一下事件。

事件回顧

2018年8月22日,以太坊上異?;鸨腇omo3D游戲第一輪正式結(jié)束,錢包開始為0xa169的用戶最終拿走了這筆約10,469 eth的獎金。

類Fomo3D攻擊實例分析

看上去好像沒什么問題,但事實真的是這樣嗎?

在Fomo3D的規(guī)則基礎(chǔ)上,用戶a169在購買到最后一次key之后,游戲的剩余時間延長到了3分鐘,在接下來的3分鐘內(nèi),沒有任何交易誕生。這3分鐘時間,總共有12個區(qū)塊被打包。但沒有任何一個Fomo3D交易被打包成功。

類Fomo3D攻擊實例分析

除此之外,這部分區(qū)塊數(shù)量也極少,而且伴隨著數(shù)個合約交易失敗的例子

類Fomo3D攻擊實例分析

這里涉及到最多的就是合約0x18e1B664C6a2E88b93C1b71F61Cbf76a726B7801,該合約在開獎的那段時間連續(xù)的失敗交易,花費了巨量的手續(xù)費。

而且最重要的是,該合約就是上面最后拿到Fomo3D大獎的用戶所創(chuàng)建的

類Fomo3D攻擊實例分析

在這期間的每個區(qū)塊中,都有這個合約發(fā)起的巨額eth手續(xù)費的請求。

攻擊用戶通過這種方式,阻塞了其他游戲者購買的交易,最后成功拿到了大獎。

那么為什么呢?

事件原理

在解釋事件發(fā)生原理之前,我們需要先了解一下關(guān)于區(qū)塊鏈底層的知識。

以太坊約14s左右會被挖出一個區(qū)塊,一個區(qū)塊中會打包交易,只有被打包的交易才會在鏈上永不可篡改。

所以為了獎勵挖出區(qū)塊的礦工,區(qū)塊鏈上的每一筆交易都會消耗gas,這部分錢用于獎勵礦工,而礦工會優(yōu)先挑選gas消耗比較大的交易進(jìn)行打包以便獲得更大的利益,目前,一個區(qū)塊的gas上限一般為8000000。

而對于每一筆交易來說,交易發(fā)起者也可以定義gas limit,如果交易消耗的gas總值超過gas limit,該交易就會失敗,而大部分交易,會在交易失敗時回滾。

為了讓交易不回滾,攻擊者還使用了一個特殊的指令assert(),這是一個類似于require的函數(shù),他和require唯一的區(qū)別就是,當(dāng)條件不滿足時,assret會耗光所有的gas。原理是因為在EVM底層的執(zhí)行過程中,assret對應(yīng)一個未定義過的操作符0xfe,EVM返回invalid opcode error,并報錯結(jié)束。

而攻擊者這里所做的事情呢,就是在確定自己是最后一個key的持有者時,發(fā)起超大gasprice的交易,如圖所示:

類Fomo3D攻擊實例分析

當(dāng)攻擊者不斷的發(fā)起高手續(xù)費的交易時,礦工會優(yōu)先挑選這些高花費的交易打包,這段時間內(nèi),其他交易(包括所有以太坊鏈上發(fā)起的交易、Fomo3D的交易)都很難被礦工打包進(jìn)入。這樣一來,攻擊者就有很高的概率成為最后一個持有key的贏家。

整個攻擊流程如下:

  • Fomo3D倒計時剩下3分鐘左右

  • 攻擊者購買了最后一個key

  • 攻擊者通過提前準(zhǔn)備的合約發(fā)起大量消耗巨量gas的垃圾交易

  • 3分鐘內(nèi)不斷判斷自己是不是最后一個key持有者

  • 無人購買,成功獲得大獎

“類Fomo3D攻擊實例分析”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI