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

買賣虛擬貨幣

文//DAPDAP區塊鏈


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秒才執行一次,專業術語叫做“打包交易”。

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

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

出自: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. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;