NFT BAYC #2087曾經創下769以太的交易價
許多人想要嘗試踏入鏈上的金流分析,但繁複又沉冗的金流資料讓人霧裡看花,讓人不知道要從哪裡下手。為了練就像柯南一樣的偵探思維,本篇章阿原將以2021年麻吉大哥的被駭事件為例,帶大家一起還原當時鏈上金流發生了什麼~~
時間回到2021年聖誕節前夕,原本街上應該要洋溢著聖誕的快樂氛圍,卻因為疫情尚未趨緩,人人無法自由地逛大街,氣氛整個都抑鬱了起來...
這時人們的目光聚焦到虛擬貨幣的交易上,因為疫情的關係,對現實的關注轉移到了虛擬世界。虛擬貨幣市場正熱絡著,這樣的熱絡情況同樣也反映在作為NFT龍頭的無聊猿(Bored Ape Yacht Club, BAYC)上。
不過這對持續關心BAYC社群的麻吉大哥完全不是問題,黃立行 aka 麻吉大哥不只在BAYC發行初期,就Mint幾十隻無聊猿分送給演藝圈好友(柯震東、陳柏霖),還靠持續的買入賣出BAYC,為他賺進更多的財富,近日麻吉大哥更是大量
拋售137枚無聊猿,獲利約4億台幣。
事件發生了....
然而,就在2021年聖誕節左右,麻吉大哥(@machibigbrother)發了一篇充滿不尋常氣味的推文,跟據
blocktempo的一篇報導,一位twitter帳號fr0zenbuffal0的帳戶(本文發布時fr0zenbuffal0帳號已不存在),因為曾經跟麻吉大哥做過一次成功的BAYC交易,就放下了戒心。而不幸的是,此時麻吉大哥的twitter帳號卻很不巧的遭到駭客攻擊,駭客就以麻吉大哥的推特名義要求fr0zenbuffal0將一隻麻吉大哥早前向賣家出價 77 顆以太幣的BAYC以私下轉移的方式轉到駭客的私人錢包。
沒想到fr0zenbuffal0還真的轉過去了…..接下來駭客就快速的在把這隻BAYC再賣給麻吉大哥,而讓fr0zenbuffal0白白損失了這隻BAYC。
阿原看到這則
報導之後真的感到很好奇,fr0zenbuffal0真的這麼單純就把BAYC轉過去了嗎?是不是中間還發生了甚麼事? 為了考究事件的細節,阿原決定試著追查當時的鏈上金流,來還原當時到底發生了什麼事情。
阿原打開etherscan試著用麻吉大哥的私人錢包地址來調閱大哥的交易紀錄。。。
使用Etherscan查找交易紀錄
Etherscan中查找錢包交易的方法大致上可以分成幾種
- Transactions: 記錄由該錢包發起的交易內容
- Internal Transactions: 記錄由其他人發起的交易內容
- Token Transfers(ERC-20): 紀錄與該錢包相關的token(ERC-20)交易紀錄
- NFT Transfers: 紀錄與該錢包有關的NFT交易紀錄
為了釐清這次要查找的內容,阿原先將
報導的內容整理成可視化的內容:
上圖一個環是指一則交易事件;依據報導內容提到了三則交易事件,分別是綠色的第一起交易,由麻吉大哥與受害者進行NFT交易。藍色的第二起交易,由受害者轉移NFT給駭客。黃色的第三起交易,由駭客跟麻吉大哥進行NFT交易。
依據報導內容發生了三筆交易,分別是: (1)麻吉大哥在大約2021年12月24號(依照報導的時間)跟受害者(fr0zenbuffal0)交易了一筆金額75ETH的NFT交易,這使麻吉大哥獲得了一隻BAYC(暫名BAYC _1),受害者獲得了75ETH。接下來,麻吉大哥的twitter帳號被駭,駭客假冒麻吉大哥請求受害者轉移一隻BAYC(暫名BAYC _2)到自己的私人錢包,而該BAYC_2早先被麻吉大哥在opensea上掛價77ETH請求收購。(2)受害者同意駭客的請求,轉移到了駭客的私人錢包。不久後(3) BAYC_2又被駭客賣給麻吉大哥套現。
阿原想先查詢第一筆交易內容,並假設該交易由麻吉大哥發起,那這樣的話麻吉大哥的錢包地址應該可以在21年12月查到一筆75ETH的交易紀錄,不過卻沒有發現任何符合的交易紀錄。
etherscan可以依照用戶想要瀏覽的時間區間或是區塊區間(Block Number)進行交易資料的下載。
阿原轉而去搜尋麻吉大哥的NFT交易紀錄,發現在該月BAYC的交易紀錄只有5筆,這樣非常好地毯式搜尋,不過阿原先由最接近12月24號的那一筆開始查起。幸運地,阿原查的第一筆交易內容記錄了金額為77WETH,交易了一隻代號8038的BAYC(BAYC #8038),有很大的可能就是第三筆交易。阿原因此再接再厲往前查交易紀錄,發現第二筆交易的交易金額剛好是75WETH,交易了一隻代號3580的BAYC(BAYC #3580),有很大的可能是第一筆交易。現在阿原已經有第一筆、第三筆交易紀錄的底了,尚缺第二筆交易紀錄。
阿原下載麻吉大哥的NFT交易資料,並用excel過濾資料。
阿原想到由第一筆(受害方)或第三筆(駭客方)的地址溯源不乏是一種可行的方法,不過在這裡有一個更直接的方法,那就是使用NFT代號去進行搜尋,因為第二筆交易跟第三筆交易所交易的BAYC是同一隻。
BAYC #8038交易紀錄的部分截取,發現在21年12月23日當天在半小時內有三筆交易紀錄。
阿原搜尋BAYC #8038,發現在駭客交易給麻吉大哥當天BAYC #8038又有另外兩次交易紀錄,且這些交易都發生在短短的半小時內。首先是疑似受害者地址(該地址的標籤跟受害者twitter帳號差在0跟o)跟一未知地址的NFT轉移(研判是第2個交易)。應當注意這裡的轉移指受害者地址無償轉出BAYC給未知地址,爾後該未知地址又轉移BAYC #8038給另一未知地址,最後才再交易給麻吉大哥,麻吉大哥獲得BAYC #8038而未知地址持有者獲得77WETH。
整理一下獲得的資訊
經過查詢交易紀錄後獲得的資訊。最後發現,第一筆交易與第二、三筆交易時間上是不連貫的。第一筆交易由錢包開頭0x5ed65發起,且該錢包與受害者錢包關聯性不強。第二筆交易與第三筆交易之間,夾雜了另一筆交易,猜測是駭客用來規避合約機制的行為。
首先,12/19時地址開頭0x5ed65的私人錢包向麻吉大哥發起了一次NFT的交易,這次應該就是報導中交易了75ETH的那一次交易,只不過實際上他們都是用WETH來交易。最後麻吉大哥獲得了BAYC #3580。
接下來是發生在12/23半小時內的一連串詐騙事件。受害者(fr0zenbuffal0)先發起轉移BAYC #8038到地址開頭0x66b35的私人錢包接著又被轉移一次給開頭0x47137的私人錢包,隨後該錢包與麻吉大哥的地址進行交易,麻吉大哥得到BAYC #8038,而77WETH進了疑似駭客的錢包地址而不是原本持有NFT的受害人。
阿原查詢了有關
0x66b35與
0x47137兩個錢包的交易紀錄,發現兩個錢包的交易次數都很少(小於10次),且交易都僅限於該月。評斷兩錢包是駭客專門用作非法交易的臨時性錢包。
另外,地址開頭0x5ed65的錢包與受害者的錢包在該年10月到翌年3月(計6個月)都沒有直接地交易互動,研判兩錢包之關聯性甚小,與原
報導表述之兩錢包持有者應為同一人之意明顯有出入。連帶的不構成受害者因相信第一次與麻吉大哥的交易,而在第二次交易無償轉移NFT的動機。無論真相是如何,阿原認為能查清楚原報導指出的三個交易就算告一段落了…Orz
注意本段落的時間是UTC +0,與原報導所使用的時區不同
這則故事告訴我們,在任何交易之前一定要睜大眼睛看清楚交易的對象是誰?未知地址總是伴隨著風險,能先點進去看看這些未知地址的交易紀錄其實也對判斷交易詐騙不無小補。
___________________________________________________________________________
作者阿原目前從事區塊鏈資料分析工作,對區塊鏈的經濟架構、事件發展有很大的興趣,並希望能將相關的區塊鏈知識分析並且統整給大家。如果喜歡我的文章,或是想獲得更多區塊鏈大小事,歡迎關注
我的vocus帳號!
另外,我已經加入由
趨勢科技防詐達人所成立的方格子專題-《區塊鏈生存守則》,在那裡我會跟其他優質的創作者一起帶大家深入瞭解區塊鏈,並隨時向大家更新區塊鏈資安事件。
後記