前陣子在 YouTube 看到:How to Make 1000+/DAY With an Ethereum MEV Bot … ,看標題下意識覺得就是個騙局,但是不太清楚手法是什麼,又因為智能合約有公開,所以就稍微研究一下。
因此,這篇文章目的主要是研究手法並紀錄分析過程。
MEV (Miner Extractable Value) Bot:俗稱套利機器人
影片完整示範了,包含操作錢包、部署智能合約、啟用機器人以及提取收益等等內容,看起來就是一個非常平常且淺顯易懂的教學影片,即使是新手跟著影片操作也可以輕鬆完成,剩下的就是等待機器人協助獲利。但是,事情真的有這麼單純嗎?
以下幾點是我認為需要懷疑的地方:
影片標題所表明每天所能得到的收益高到不合理
YouTube 影片數及訂閱數偏少
YouTube 留言幾乎都是好評
GitHub 帳號及影片上傳時間都是近期創立/上傳
接著,來看看智能合約有什麼令人覺得可疑的地方。
影片下方詳細資訊所提供的智能合約:
如果已經將資產轉移至智能合約中,通常最在意的就是存進去的錢能不能提領出來,因此第一步是先檢查提領功能有沒有問題。
// 提領功能
function withdrawal() public payable {
emit Log("Sending profits back to contract creator address...");
// 將合約上餘額轉移至目標地址
payable(withdrawalProfits()).transfer(address(this).balance);
}
其中應該要關注的是目標地址,也就是 withdrawalProfits()
回傳的地址是什麼
實際追蹤 withdrawalProfits()
發現程式碼看起來很複雜,但是其實大部份只是混淆用的,只要耐心分析就可以得出地址。(這裡就不示範詳細過程)
如果仔細看上面 Transaction,會發現早在 withdrawal()
之前就已經發生 transfer,因此這裡在回過頭檢查一下 start()
程式碼寫了什麼
檢查流程同 01.,最後會得出:0x6b9dC8F5312243bc6FB5251E06Bcb1Ae7e8eb916
… 是另外一個地址,估計也是從某個地方抄來的程式碼自己在做了部分修改
整個分析到這邊就告一段落,整個流程大致上會是這樣:
使用者部署合約
使用者轉移資產
使用者 / 欺騙者,觸發 start()
/ withdrawal()
整個手法其實很單純,只是透過智能合約轉移資產,而且也根本不是 MEV Bot。
不要相信來路不明的影片,也不要使用來路不明的程式碼。不管是自行研究智能合約,或者詢問有經驗的人提供意見,建議一定都要做好研究。
如果去搜尋一下可以發現有很多其他類似主題的影片,基本上也都是騙人的。
本文寫於 2022 年,但 2024 年依然有類似情況,此次詐騙手法已進化為偽裝成使用 ChatGPT 的教學影片。更多詳情可參考以下連結:
最後,再次提醒,不要相信來路不明的影片,也不要使用來路不明的程式碼。