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