首次深度揭秘:Fomo3D,被駭客拿走的2200萬

買賣虛擬貨幣
01、駭客拿走大獎以太坊上近期最火爆的Dapp應用FOMO 3D 第一輪大獎於北京時間8月22日下午14點48分揭曉。錢包地址尾號為5的獲獎者(以下簡稱5哥)獲得了價值2200萬元人民幣(10,469以太坊)的大獎。

而從錢包交易歷史來看,該獲獎人僅僅付出了6000元人民幣左右的成本(2.7個以太坊)。

該玩家於8月15日開始進入遊戲,經過6天時間,145筆交易的努力,在數十萬的玩家中殺出重圍,以小博大,斬獲大獎,獲得了4000倍的收益。

為何價值北京二環兩套房的大獎能被5哥奪走?是命中註定還是暗箱操作?

DapDap的小夥伴們深入調查了中獎事件和5哥錢包相關的交易記錄,發現事情果然不是5哥撞大運這麼簡單。

幾乎可以斷定是駭客行為。

駭客5哥所做的準備工作,也遠比表面看起來的買買買這麼簡單。

02、真正的高階玩家

接下來,我們層層剝開事件真相。

首先,我們簡單介紹一下獲得大獎的規則。

規則1:最後一個購買KEY的人獲得獎池中的大獎

規則2:每有人購買一個KEY,倒計時時間會增加30秒

規則3:遊戲啟動後從24小時開始倒計時

也就是說,只要你是最後一個購買KEY的人,就可以捧走北京兩套二環房。


當然有人會懷疑團隊有暗箱操作的可能。但是由於FOMO 3D 的智慧合約全程開源,公開透明,因此可以查到駭客5哥是使用正常的購買功能進行購買的。

所以不存在官方暗箱操作的可能。

相關連結請見文末。

那作為想要獲得2200萬大獎的玩家,會怎麼去做呢?

如果你是小白玩家:

你可能會24小時盯著電腦,每次在倒計時快要結束的時候,花一點錢買一個KEY,然後祈禱後面不要再有人購買。

如果你是程式設計師玩家:

你可能會寫一個指令碼,設定在倒計時快要結束的時候,自動花一點錢買一個KEY,然後不斷重複該過程。

如果你真的這麼做了,只能說明你很傻很天真。

因為高達2200萬的大獎,只要一旦接近倒計時結束,就一定會有人去購買,甚至已經有上百個指令碼會等著購買。

真正的高階玩家是這麼做的:

買了KEY之後,以各種手段確保後面沒有人能夠再買進來。

這也是駭客5哥,拿走大獎的關鍵原因。

03、中獎的兩個手段

如下圖所示,從駭客5哥的近期錢包交易記錄看,他只是每隔一段時間就會買一個KEY。


所以不少人猜測駭客5哥只是寫了個指令碼,然後正好趕上了以太坊擁堵,或者遊戲熱度下降沒人關注,然後運氣好中了獎而已。

但是如果進一步仔細觀察,就會發現在駭客5哥購買KEY之後長達3分鐘、12個區塊的時間裡,僅有一人有過一次失敗的購買。

除此之外,再無任何人發出過購買的指令。

這和之前每次倒計時3分鐘的時候就會大搶一番完全不同,顯得異常的冷清。

那麼在以太坊上,如何可以做到這一點呢?主要有以下兩個途徑:

1)和礦主合謀,讓礦主在我的交易後,不再打包其他購買KEY的交易;

2)在自己成功購買KEY之後,把以太坊堵塞,讓其無法打包其他購買KEY的交易。

04、以太坊工作原理

這裡給區塊鏈小白簡單科普一下以太坊網路的工作原理。

一般家用計算機每秒都在執行很多程式。但是以太坊可以理解為平均每14秒才執行一次,專業術語叫做“打包交易”。

負責執行程式(打包交易)的計算機被稱為“礦機”,擁有礦機的人叫做礦工或礦主。

這個世界上有上萬臺以太坊礦機,而由哪臺礦機來打包交易,會受到礦機算力和全網算力的影響。爭奪打包交易權力的行為被稱作“挖礦”。


一旦礦機挖礦成功,將會獲得以太坊獎勵,並且可以決定打包哪些交易,以及如何打包這些交易。

每時每刻都有很多使用者提交自己的程式命令希望被礦機打包,被礦機打包交易需要支付給礦工一定的手續費,而礦機一般會選擇付費最高的使用者。

因此,通俗的講,想要獲得大獎的玩家,有以下兩個途徑:

1、選擇和各大礦主協商好,請礦工挖礦成功後,不要打包別人買KEY的交易;

2、可以透過某種技術手段,配合高額的交易手續費,讓礦機自動選擇只打包我的交易,而不打包別人的交易。

礦主在這個過程中甚至毫不知情。

05、與礦主合謀的可能性

首先看與礦主合謀的可能性。

如下圖,以太坊的礦機算力分佈相對較為分散。

擁有最高算力的礦池Ethermine也僅佔有29%的比例,其他大礦池所佔比例也僅為10%左右。


出自:ethgasstation.info
由於倒計時一旦低於2分鐘後,必然有大量的玩家受大獎刺激入場購買KEY。
所以大獎玩家,必須在倒計時結束前至少兩分鐘購買KEY,然後和挖到接下來的8-12個區塊(14秒一個區塊,每分鐘4個,2-3分鐘8-12個)的礦主協商好,讓對方阻止所有要購買KEY的使用者,保證自己是最後一個。但這個做法不但在理論上較難實現,在此次事件的實際操作中,也幾乎不可能達成。如下圖所示,從駭客5哥購買KEY直至確定大獎歸屬之間的12個區塊,分別屬於Ethermine、SparkPool、Nanopool、BitClubPool、bw等8個不同的礦工。駭客5哥必須提前和這8個礦主都談好,然後正好是這8個礦主挖礦成功學過概率的同學都可以很快算出來這可能性幾乎為零。


分析到這裡,我們基本排除了串謀礦池的可能性。

06、異常的交易資料

在分析過程中,我們也驚奇地發現,5哥購買KEY直至中獎的這3分鐘、12個區塊裡的交易筆數異常的低,幾乎為平時的1/10不到,而交易費用卻數百倍高於平時水平。


這異常的資料讓我斷定其中必有貓膩,而結合接下來做的一系列資料分析,我們確認:

5哥在自己購買KEY後,使用高額的以太費用和技術手段讓以太坊堵塞了3分鐘。

進而使得其他玩家無法打包購買KEY的交易,從而獲得了最後的大獎。

以下是實錘和步驟解析:

首先,我們把中獎前以太坊12個區塊的一共353筆交易全部提取出來。經過各維度分析,我們有了以下發現:

1、交易次數最多的眾多賬號中,有一個剛剛建立不到4天的未開源合約賬戶。該賬戶在短短3分鐘時間內,交易了32筆之多。


2、我們進一步深挖發現,該可疑合約賬戶就是由駭客5哥在差不多3、4天前建立的。

也就是說,5哥購買KEY之後,自己用智慧合約向以太坊傳送了大量的交易。

到這一步,雖然我們還不確定合約內容到底是什麼,但是基本可以斷定5哥是在買到KEY之後做了手腳。

具體做了什麼手腳,我們還需進一步分析。



3、接著我們統計了在中獎前的12個區塊裡的GAS消耗。

我們發現5哥所建立的可疑合約賬戶所耗GAS佔據了這段時間GAS消耗的絕大多數。

尤其是在最後的6個區塊中,差不多1分半鐘的時間裡,5哥給出了190到501的天價GAS費用,一舉壟斷了所有以太坊所有的算力。


其他使用者幾乎無法在以太坊上執行任何操作。


07、駭客動機

這裡簡單講解一下以太坊的原理以及為什麼駭客5哥要這麼做。

上面我們說過以太坊平均每14秒左右出一個塊,該區塊中會打包一些交易。而每個區塊能夠進行的運算量是有限的,一般為800萬GAS左右。

超過這個限額的交易,將被延後至後續區塊進行交易。

打個比方,以太坊上的每個區塊都像一個水桶,使用者提交交易請求就像往水桶裡倒水,一個桶一旦倒滿了水,就無法再處理其他交易請求。

水桶一般會優先處理出價高的交易。

所以5哥在這裡做的事情,就是給他購買KEY之後6191898至6191908那十幾個區塊中挖到礦的礦機,支付了大量的金錢,讓其優先打包5哥所發出的交易。

然後5哥所發出的交易佔了過高的資源,把十幾個區塊幾乎都佔滿了。

其他所有以太坊使用者,包括玩FOMO 3D和不玩FOMO 3D的使用者,在那3分鐘的時間裡,都無法和以太坊進行互動。

由於沒有玩家可以進來和駭客5哥競爭,5哥成功守到倒計時結束的那一秒。

08、來龍去脈

於是,整個事件的脈絡也就基本理清楚了:

1、FOMO 3D倒計時剩下3分鐘左右;

2、駭客5哥購買了1個KEY;

3、駭客5哥用其他錢包賬號向自己建立的智慧合約,傳送大量垃圾資訊,造成了以太坊擁堵3分鐘;

4、3分鐘過後,由於無人購買KEY,駭客5哥成功獲得大獎。

當然,整個事件當中還有一些有趣的地方和不容易想明白的地方。我們逐一進行討論:

1、駭客5哥是手動操作的嗎?

當然不是,駭客5哥提前寫好了指令碼以及和指令碼配套的智慧合約。

在整個過程中,5哥其實寫了10來個智慧合約,但最終成功使用的還是尾數7801這個智慧合約。看來5哥也一直在最佳化。

2、駭客5哥的成功之路並不十分順利

駭客5哥在7天前建立了用於贏取大獎的錢包,之後同時在FOMO 3D和 last winner執行了5、6天的指令碼,意圖爭奪最後大獎。

但無奈一直沒有成功,還白白損失了不少手續費。

直到1天前,駭客5哥靈機一動,做了一個小的改動,由原來fccbf85主賬戶購買KEY之後,自行給智慧合約傳送命令,改為fccbf85主賬戶只負責購買KEY,由其他若干個賬號給合約傳送命令。

改動前


改動後

這個改動應該大幅提高了效率,5哥差不多3小時後就迎來了FOMO 3D的大獲全勝。

而本次的成功,並不是一次就成的,而是在失敗了近千次之後,一次帶了一點點運氣成分的成功。

3、駭客5哥是誰?

應該是一名區塊鏈領域的職業駭客,我們分析了他的錢包賬戶往來,但是很遺憾並不能確定最終是誰。

駭客5哥的錢包一共有8個錢包地址向其匯入以太坊。


而這些賬戶除了5哥自己的賬戶之外,都是使用了疑似ShapeShift的錢包,而ShapeShift因難以被追蹤而被廣大區塊鏈駭客喜愛和使用。

同時,駭客5哥在整個過程中,使用了將近20個不同的錢包地址,用於程式執行(跑指令碼)。

這些錢包地址基本都無法查到其他來源。

4、賺來的錢去哪了?

分別被存入以下兩個錢包:

0xbd321d63a925b439a20ae3260f461c35cbf9b875

0x2c389a86a686ac7ee98ac2606802b5bb4a2186c1

目前暫時還沒有轉出

5、整個過程中沒有人競爭嗎?

其實是有的,在5哥買到KEY之後的三分鐘時間裡,曾經有一位成功的以5000+的GAS 價格擠了進來,嘗試購買KEY。

但是非常遺憾的是他所設的GAS上限太低,因此交易報錯。而該名玩家也因此損失了2.1以太坊,約合4000元人民幣。

其他時間5哥還是很強勢的。

6、交易是被f2pool魚池打包的,魚池是否有做手腳的嫌疑?

經過以上討論,駭客成功的關鍵要素是堵住購買KEY交易之後的十幾個區塊。而這些區塊和魚池無關,所以我認為和魚池無關。


但魚池的強勢出鏡,反而讓遊戲變得更加有趣了起來。

09、少數駭客玩的遊戲

Fomo 3D的設計技巧十分高超,我們之前甚至會有種錯覺:「這個遊戲永遠不會結束」

所以在聽到遊戲結束的時候,我們的第一直覺就是,事情沒有那麼簡單。

於是我們花了一晚上時間,對Fomo 3D的這次大獎進行了深層次的分析,結果種種跡象都證實了我們的猜測,確實是駭客所為。

Fomo 3D的第二輪已經啟動,幾個小時內,獎池的金額就過了6000以太坊。第二輪的大獎,將會在何時產生,是否還會有駭客行為,大家可以耐心等待和觀察。


《GAME啟示錄》中曾有這樣一段話:

真實的世界有太多不可預測的事,而遊戲則不然,遊戲就是基於規則設計的,雖有區域性的隨機性,但進度與結果之間的關係是確定的。

有人暴富,就必然有人血本無歸。

正如我們所寫的,這類資金盤遊戲,是「少數駭客玩的遊戲」,他們會對以太坊直接發出指令進行互動。

透過遊戲頁面去玩的,大多數人都是虧損的。

所以永遠不要以賭徒心態去玩這類遊戲。

因為,當你在凝視深淵時,深淵也在凝視你。

10、其他線索彙總

以下是事件的關鍵要素彙總:

1、獲獎人:5哥

2、錢包地址:

0xa169df5ed3363cfc4c92ac96c6c5f2a42fccbf85
3、成功購買交易地址:

0x7a06d9f11e650fbb2061b320442e26b4a704e1277547e943d73e5b67eb49c349

4、中獎打款交易地址:

0xe08a519c03cb0aed0e04b33104112d65fa1d3a48cd3aeab65f047b2abce9d508

5、駭客5哥建立可疑合約的交易地址:

https://etherscan.io/tx/0x21ebb34d74aa487f036d5b8b5cf9cbfc7083b9fec3614a312341a3ab01592293

6、購買交易的區塊高度:6191896

7、礦工:f2pool_2 (魚池)

8、區塊資訊:七彩神仙魚

9、其他參考資料、資訊來源:

https://etherscan.io/address/0xa169df5ed3363cfc4c92ac96c6c5f2a42fccbf85

https://etherscan.io/tx/0xe08a519c03cb0aed0e04b33104112d65fa1d3a48cd3aeab65f047b2abce9d508

https://etherscan.io/block/6191896


更多區塊鏈遊戲介紹:

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;