Fomo3D死亡3分鐘:黑客用0.8ETH贏下了10000個ETH區(qū)塊鏈
8月22號下午2點(diǎn),沉默已久的Fomo3D再次引發(fā)大家的關(guān)注,被認(rèn)為永不終結(jié)的賭局,結(jié)束了。
8月22號下午2點(diǎn),沉默已久的Fomo3D再次引發(fā)大家的關(guān)注,被認(rèn)為永不終結(jié)的賭局,結(jié)束了。
在2點(diǎn)48分22秒,一個地址為0xa169df5ed3363cfc4c92ac96c6c5f2a42fccbf85的玩家往Fomo3D的獎池里投下了0.0055個ETH。
令人奇怪的是,直到倒計時結(jié)束也沒人購買下一把key。
這位玩家成為了Fomo3D第一輪游戲的最后一個下注者,順利拿走了獎池里的10469個ETH,近300萬美金。
0xa169這個地址在8月15號才有第一筆交易,且在當(dāng)天就開始了Fomo3D的游戲,之后的有效交易也幾乎全部與Fomo3D有關(guān),可以肯定是沖著最后的大獎而來。
但0xa169效率很高,有媒體統(tǒng)計在取得最后的勝利之前,該玩家累計僅投入0.8個ETH,投資回報率高達(dá)13000倍。
為什么沒有人與0xa169爭奪最后的30秒?從該游戲的設(shè)計機(jī)制上看,這個游戲的宿命更應(yīng)該是“永不結(jié)束”。
Fomo3D的最后3分鐘
從Eetherscan去看看最后的30秒究竟發(fā)生了什么。Eetherscan上的數(shù)據(jù)表明,問題不僅是出在最后30秒,而是最后3分鐘——在這個時間以秒記的游戲里,整整3分鐘沒有下一個玩家出現(xiàn)。
交易圖顯示,在2點(diǎn)48分之前和2點(diǎn)51分之后,每一分鐘都會有多個玩家買入Fomo3D,但獨(dú)獨(dú)在48分和51分之間,交易完全停止了。
黃框內(nèi)為最后的贏家0xa169
以太坊在這3分鐘發(fā)生了什么?
2點(diǎn)48分,0xa169買key的交易完成,區(qū)塊高度是6191896;3分鐘后,2點(diǎn)51分,下一筆Fomo3D交易產(chǎn)生,區(qū)塊高度6191909,但這筆交易來的太遲,永遠(yuǎn)錯過了Fomo3D第一輪的競爭。
在區(qū)塊6191896和區(qū)塊6191909之間,是死亡三分鐘,也是所有問題的答案。
區(qū)塊的秘密
區(qū)塊6191896,一切正常,0xa169的這筆交易也赫然在列。區(qū)塊6191897在6秒之后被挖出,基本正常。
但在下一個區(qū)塊,6191898,出現(xiàn)了一個0x18e1b664c6a2e88b93c1b71f61cbf76a726b7801的地址,有2筆交易與其有關(guān)。
緊接著,區(qū)塊6191899中,3筆交易與其有關(guān);區(qū)塊6191900中,3筆;區(qū)塊6191901中,2筆;區(qū)塊6191901中,2筆;區(qū)塊6191902中,4筆;區(qū)塊6191903中,2筆。
接下來,區(qū)塊6191904,該區(qū)塊一共只打包了3筆交易,全部來自0x18e;區(qū)塊6191905中,全部7筆交易中的3筆;區(qū)塊6191906中,全部的3筆交易。
區(qū)塊6191907中,全部4筆交易中的3筆;區(qū)塊6191908中,全部5筆交易中的4筆。
終于,到了區(qū)塊6191909,0x18e消失了。
擺脫0x18e的區(qū)塊一口氣打包了166筆交易,多筆與Fomo3D相關(guān)的交易包含其中,但它們被耽擱的太久,游戲結(jié)束了。
0x18e有什么特別?為何死亡三分鐘里以太坊上所有的區(qū)塊都包含與它有關(guān)的2到4條交易?原因就出在它對gas的消耗上。
0x18e的一筆交易需要耗費(fèi)360萬或420萬的gas,兩筆交易加起來是780萬gas,而ETH一個區(qū)塊目前能容納的gas總量是800萬左右。
這樣一樣,因為0x18e總gas費(fèi)高,會被優(yōu)先選擇打包,又因為它占的gas量大,所以兩筆交易就能填滿整個區(qū)塊,容不下其他的交易。
于是,在交易消失的3分鐘里,在區(qū)塊6191896與區(qū)塊6191909之間,所有的節(jié)點(diǎn)都在打包與0x18e相關(guān)的交易(雖然這些交易全因gas超量失敗了,也就是說0x18e并沒有真正的為這些交易付費(fèi))。
而所有與Fomo3D有關(guān)的交易,同以太坊上其他的交易一起,被留在了交易池排隊等候。
3分鐘很短,但足夠結(jié)束一個以30秒為倒計時的游戲。
詭異的0xa169與0x18e
在0xa169買入最后一個key后,0x18e“堵塞”了以太坊3分鐘。是巧合嗎?不是。
0x18e在8月18號被創(chuàng)建,晚0xa169地址3天,之后兩者頻繁互動,應(yīng)該是在測試攻擊模型。
8月21號,兩者間的互動結(jié)束,8月22號,0xa169發(fā)起了最后一役,它主攻,0x18e掩護(hù)。
看看0x18e掩護(hù)0xa169的時間點(diǎn)。
在最后一次攻擊中,0xa169在6點(diǎn)48分22秒完成交易,0x18e在6點(diǎn)48分43秒至6點(diǎn)52分01秒之間發(fā)起攻擊,堵塞網(wǎng)絡(luò)。
但這不是他們第一次配合,0xa169曾在5點(diǎn)50分42秒發(fā)起一筆交易,0x18e在5點(diǎn)51分10秒至5點(diǎn)52分57秒之間發(fā)起攻擊;在此之前,0xa169在5點(diǎn)35分46秒發(fā)起交易,0x18e在5點(diǎn)36分49秒至5點(diǎn)37分28秒間發(fā)起攻擊。
0x18e為0xa169爭取到最多時間的一次,就是它們成功的一次。在0xa169拿走獎金之后,0x18e這個地址再無任何動作。
所以,如果你真以為有人用0.8個ETH贏了Fomo3D,未免天真。這是一場投入技術(shù)、金錢,被精心策劃、全力以赴的戰(zhàn)役。
不過,如果說這場勝利完全與幸運(yùn)無關(guān)也不全對。因為0xa169能拿走獎金還跟它的對手,一個倒霉的人有關(guān)。
錯失勝利的人
簡單講講這個運(yùn)氣不好的家伙。地址是0x32ad247B94E46bB75caC37B81e6CB53173002370,就是0xa169上方的這一位。
0x32ad是個狠角色,因為在這個地址上,它總共就出手一次,而且?guī)捉晒Α?/span>
它算準(zhǔn)在最后的時刻出擊,用極高的gas單價被選中進(jìn)入?yún)^(qū)塊打包(單個交易,gas費(fèi)551美金),它也是整個死亡3分鐘內(nèi)唯一闖入?yún)^(qū)塊打包環(huán)節(jié)的Fomo3D交易(區(qū)塊6191907)。
但它失敗了,緣于一個有趣的不幸。它設(shè)置的Gas Limit是379000,但交易耗費(fèi)的gas超過了379000。
在Fomo3D中,幾乎沒有g(shù)as超過379000的交易,但這一次,最重要的一次,偏偏就超了。
1.TMT觀察網(wǎng)遵循行業(yè)規(guī)范,任何轉(zhuǎn)載的稿件都會明確標(biāo)注作者和來源;
2.TMT觀察網(wǎng)的原創(chuàng)文章,請轉(zhuǎn)載時務(wù)必注明文章作者和"來源:TMT觀察網(wǎng)",不尊重原創(chuàng)的行為TMT觀察網(wǎng)或?qū)⒆肪控?zé)任;
3.作者投稿可能會經(jīng)TMT觀察網(wǎng)編輯修改或補(bǔ)充。