DeFi版名偵探柯南:SushiSwap創始人Chef Nomi深度調查

買賣虛擬貨幣

本文來自Medium,原文作者:Peter Kacherginsky

Odaily 星球日報譯者 | Moni

十月初,AnChain.AI 上舉辦了最新的區塊鏈調查大賽,比賽持續兩週時間,許多玩家期間深入瞭解到以太坊區塊鏈交易和智慧合約資料。除了許多免費提供的工具外,Anchain 還為參與者提供了 CISO 區塊鏈分析平臺的免費許可,讓區塊鏈分析變得更加容易。

在本次大賽決賽圈中,Coinbase 首席安全分析師 Peter Kacherginsky 重點關注了前期 DeFi 行業內引發熱議的 “壽司” Sushiswap 創始人 Nomi 大廚退出騙局及其在 2020 年 9 月歸還資金事件。實際上,該事件也是本次大賽最困難的一個挑戰,本文會提及一些本次區塊鏈調查大賽時所使用的分析工具、技術、以及經驗教訓,並且分享調查 Nomi 大廚退出騙局及其在 2020 年 9 月歸還資金事件的相關步驟。

下面就讓星球君(微信:o-daily)和大家一起來揭開這一事件的真相吧:

2020 年 9 月 5 日,“壽司”Sushiswap 建立者 Nomi 大廚從協議中兌現了大約 1,400 萬美元資金,但之後又在 2020 年 9 月 11 日歸還了這筆錢。我們使用 Anchain 的 CISO 工具可以查詢到涉及相關交易的賬戶情況(如下圖所示)。如果調查上述交易就會發現,Nomi 大廚在 0xf942dba4159cb61f8ad88ca4a83f5204e8f4a6bd 和 0xf73b31c07e3f8ea8f7c59ac58ed1f878708c8a76 兩個地址之間轉移了 38,000 枚 ETH。

上圖展示了 Anchain CISO 追蹤 2020 年 9 月 11 日 Nomi 大廚轉移 38,000 枚 ETH 的相關交易。

2020 年 9 月 11 日,Nomi大廚在道歉推文中提供了確切的交易雜湊(如下圖所示),並暗示所有取出的ETH都已經退回到“壽司”Sushiswap 庫存賬戶:

讓我找出這個“0xf942db”開頭的這個地址:0xf942dba4159cb61f8ad88ca4a83f5204e8f4a6bd。Etherscan 將該地址標記為——SushiSwap:Deployer,其實從早期交易歷史來看,這個地址從 2020 年 8 月 26 日開始就部署了Sushiswap:SUSHI TOKEN 合約(如下圖所示):

事實上,Nomi 大廚是唯一有能力部署這個合約的人,因此我們可以肯定這個“0xf942db”開頭的地址與 Nomi 大廚有直接聯絡。另一個“0xf73b31”開頭的地址(0xf73b31c07e3f8ea8f7c59ac58ed1f878708c8a76)更加有趣,因為這個地址其實在 2020 年 9 月 3 日與“0xf942db”開頭地址部署的同一個多重簽名錢包:

上圖是多重簽名合約部署,資料來源:Etherscan

現在是不是覺得很有趣?!是的,Nomi 大廚將 38,000 枚 ETH 從一個已知的以太坊個人賬戶轉移到他們自己最初建立的多重簽名錢包裡。多重簽名合約的優點就在於能夠查到錢包所有者資訊。所以,我們可以使用 Etherscan 的便捷合約讀取功能來查詢該錢包的所有者:

我們使用多重簽名 getOwners() 輸出函式即可,如上圖所示,資料來源:Etherscan

從上面截圖顯示的結果可以看出,其中並沒有 Nomi 大廚“0xf942db”開頭的地址。不過 Nomi 大廚此前曾進行了一項交易,將錢包所有權從“0xf942db”開頭的地址更改為了 0xd57581d9e42e9032e6f60422fa619b4a4574ba79。在記錄這方面,我們不得不佩服 Etherscan,該平臺又為我們提供了詳細的交易事件日誌:

上圖是多重簽名錢包的所有權變更交易,資料來源:Etherscan

那麼問題來了,“0xD57581”開頭的地址所有者是誰的?如果我們在社交媒體 Twitter 上搜尋這個地址,會發現 Nomi 大廚的 Twitter 賬戶 @Nomichef 曾與加密貨幣衍生品交易所 FTX Exchange 執行長 @SBF_Alameda 在 Twitter 上發生過一次“有趣”的交流:

基於上述交流記錄,我們知道 FTX 執行長 @SBF_Alameda 同意接管“壽司”Sushiswap 專案,並在其官方 Twitter 賬戶上釋出了自己的以太坊錢包地址作為所有權證明。存款之後,@SBF_Alameda 使用“0xD57581”開頭的地址繼續向他剛在 Uniswap 上購買的多重簽名合約(“0xf73b31”開頭的地址)存入 557 萬枚 SUSHI 代幣:

上圖是透過 Anchain CISO 查詢到 @SBF_Alameda 將 556 萬枚 SUSHI 代幣存入到多重簽名地址。此後不久,@SBF_Alameda 繼續提取了 38,000 枚 ETH 作為補償,交易記錄如下:

由此可以看出,“0xf73b31”開頭的地址在整個“壽司” Sushiswap 生態系統中起著非常重要的作用,但並不清楚為什麼這些交易都要選擇這個地址。為了挖出這個問題的答案,讓我們再來看看獎勵系統如何在 Sushiswap 上運作。

最早在 Medium 上宣佈推出“壽司” Sushiswap 專案的文章現在已經刪除,從存檔網頁中我們發現 Nomi 大廚提到了 Sushiswap 有一個專案可持續/開發基金(如下圖 Medium 網頁截圖所示):

如果我們檢視該專案的原始碼,在 MasterChef.sol 中可以發現執行獎勵的邏輯,下圖是從 GitHub 上儲存的開發基金 SUSHI 代幣獎勵的原始碼:

開發基金的地址資訊儲存在變數“devaddr”(開發者地址)中,並在初始化時在智慧合約建構函式中定義,下圖是GitHub 上儲存的開發基金地址初始化原始碼:

根據 Medium 的歷史文章顯示,MasterChef 合約部署在 0xc2EdaD668740f1aA35E4D8f227fB8E17dcA888Cd 上。下面讓我們看一下 Etherscan,透過第一筆交易可以瞭解合約部署時是如何設定的:

不幸的是,輸入資料很難解密,但是我們可以再輸入資料地步找到建構函式初始化資料,如下圖深色區域所示:

每個建構函式變數的大學均為“uint256”,可以輕鬆被拆分成單個引數:

上圖是建構函式引數。

簡單地說,這些引數都與原始碼相匹配,因此我們可以獲得 devaddr(開發者地址)的引數,結果會發現這個地址已經被明確地設定為 Nomi 大廚的地址,下圖是 GitHub 上的 Masterchef.sol 建構函式變數:

基於上述分析,我們發現“0xf942db”開頭的地址可以收集到 10% 所有鑄造的 SUSHI 代幣,而 Nomi 大廚與 2020 年 9 月 5 日把該地址中的 SUSHI 代幣兌換成了 ETH。但是,如果檢視變數當前的狀態,我們將會找到一個完全不同的地址,如下圖紅框所圈出的:

該地址對應於 Nomi 大廚返還的 38,000 ETH 的那個多重簽名錢包,也就是說,“0xf73b31”開頭的這個地址實際上就是 Sushiswap 的一個新的金庫賬戶,用於收集 Nomi 大廚在 Twitter 帖子中所提及的 10% 代幣獎勵,而且只有一個函式可以更新協定中的 devaddr 變數,如下圖所示(資料來源 GitHub):

我們可以透過掃描Bloxy.info提供的函式呼叫活動來快速找到對該函式的呼叫,下圖就是Bloxy的智慧合約函式呼叫查詢結果:

從下圖中可以看出,dev(address)函式只進行過一次函式呼叫,就是 Nomi 大廚於 2020 年 9 月 5日執行的,就在他在 Uniswap 上傾銷 SUSHI 代幣之前的幾分鐘:

Nomi 大廚呼叫了 “0xf73b31”開頭地址上新的devaddr引數,該引數定義了新的庫存賬戶或開發基金賬戶。

至此,我們可以把所有事件的時間表梳理清楚,並形成一個更為完整的報告,從最初建立“壽司”Sushiswap 專案一直到 2020 年 9 月 11 日交易及其他相關事件:

SushiSwap調查報告

1、@Nomichef 是一位匿名開發人員,他/她於 2020 年 8 月 26 日建立了 SushiSwap DeFi 合約。

2、該合約包含了一個由 @Nomichef 控制的開發人員帳戶,此帳戶收集了 10% 所有鑄造的 SUSHI 代幣。

3、2020 年 9 月 5 日,@ Nomichef 從開發者賬戶中提取了價值約 1400 萬美元的 SUSHI 代幣,並在 Uniswap 上將這些代幣兌換成了 38011 ETH。

4、@Nomichef 還設定了新的多重簽名合約作為新的開發人員帳戶,以再次收集 SUSHI 代幣獎勵。

5、在社羣強烈抗議之後,@Nomichef 將 38,000 ETH 轉移到先前建立的多重簽名合約中,該合約現在由加密衍生品交易所 FTX Exchange 執行長 @SBF_Alameda 控制。

6、@SBF_Alameda 依次存入 557 萬枚 SUSHI 代幣,並撤回 @Nomichef 的 ETH 作為補償。

7、在進行本次分析時,該多重簽名的開發人員帳戶是最大的 DeFi “巨鯨”帳戶之一,價值約 90 億美元。

區塊鏈分析

以下區塊鏈分析圖是使用 Anchain CISO 生成的,用於記錄與本案例有關的以太坊區塊鏈上的交易.

ETH 交易:

SUSHI 交易:

事件時間軸

涉及本時間的相關地址資訊

1、x6b3595068778dd592e39a122f4f5a5cf09c90fe2 — Sushi Token 合約

2、0xc2EdaD668740f1aA35E4D8f227fB8E17dcA888Cd — SushiSwap: MasterChef LP 抵押池,同時也持有 Sushiswap 上最大的流動性頭寸。

3、0xf942dba4159cb61f8ad88ca4a83f5204e8f4a6bd — @NomiChef 賬戶 / SushiSwap: Deployer / Devshare 賬戶(每次分配 SUSHI 代幣時會收集 10% 的代幣)。

4、0xf73b31c07e3f8ea8f7c59ac58ed1f878708c8a76 — 合約: MultiSigWalletWithDailyLimit / New Devshare 賬戶。

5、0x80c5e6908368cb9db503ba968d7ec5a565bfb389 — Zapper.Fi Uniswap

6、0xCE84867c3c02B05Dc570D0135103d3fb9cC19433 — Uniswap V2

7、0xD57581D9e42E9032e6f60422fA619b4A4574Ba79 — @SBF_Alameda — FTX CEO

階段零:設定

1、2020–08–26 12:28:07 UTC — @Nomichef(0xf942dba4159cb61f8ad88ca4a83f5204e8f4a6bd)部署了 SUSHI 代幣合約(0x6B3595068778DD592e39A122f4f5a5cF09C90fE2)。https://etherscan.io/tx/0x5489c98aa634078471646e32a3a846c8d413f055ce10d06bd2260f4e71d1bc63

2、2020–08–26 01:00:51 UTC — @Nomichef(0xf942dba4159cb61f8ad88ca4a83f5204e8f4a6bd)部署了 MasterChef LP 抵押池(0xc2EdaD668740f1aA35E4D8f227fB8E17dcA888Cd),同時建構函式顯式設定為 devaddr f942dba4159cb61f8ad88ca4a83f5204e8f4a6bd:

https://etherscan.io/tx/0x3d68b0d8a94838af33070b8f00558e723f073b23772bd1760f1f4032e21e0fb3

3、2020–09–03 01:16:40 UTC — @Nomichef 部署了多重簽名錢包 0xf73b31c07e3f8ea8f7c59ac58ed1f878708c8a76。

https://etherscan.io/tx/0x58b4873325c662a043b51f5c479a9cab263f7a4ce80517a0109a753d7ee7700f

階段一:退出

1、UTC 2020–09–05 09:20:10 UTC — @Nomichef 向 Zapper.Fi Uniswap(0x80c5e6908368cb9db503ba968d7ec5a565bfb389)合約發起交易:

在此交易中,使用 502.49 萬枚 SUSHI 代幣在 Uniswap V2(0xCE84867c3c02B05Dc570D0135103d3fb9cC19433)和 Zapper.Fi(0x80C5e6908368CB9db503BA968D7ec5A565BfB3890.1)平臺上開放 SUSHI-WETH 流動性對,交易量為 3886 枚 WETH。

https://etherscan.io/tx/0xc97cac6a9457f73febfd93ca90dd4dfbe128ad1658c3e48d01ad3d92d3efd07e

2、2020–09–05 09:33:19 UTC — @Nomichef 將 devshare 帳戶地址從0xf942dba4159cb61f8ad88ca4a83f5204e8f4a6bd 更改為 多重簽名錢包0xf73b31c07e3f8ea8f7c59ac58ed1f878708c8a76:

https://etherscan.io/tx/0xe7e811bdc697b6ba7794a3ec795797a6c88181116196256b98695f17d987ea11

3、2020–09–05 11:57:05 UTC —SUSHI-WETH 交易對已清算 38011 枚 ETH,資金被轉回給@Nomichef(0xf942dba4159cb61f8ad88ca4a83f5204e8f4a6bd)

https://etherscan.io/tx/0x419a835b33eb03481e56a5f964c1c31017ab196cb7bb4390228cabcf50dfd6f1

階段二:返還

1、2020–09–06 06:29:00 UTC —@Nomichef 達成協議將資金返還給多簽名錢包並將控制權轉移到@SBF_Alameda(0xd57581d9e42e9032e6f60422fa619b4a4574ba79):

https://twitter.com/sbf_alameda/status/1302501004118695936

2、2020–09–06 07:32:34 UTC —多簽名錢包所有者從 @Nomichef 替換為@SBF_Alameda(0xd57581d9e42e9032e6f60422fa619b4a4574ba79)。

https://etherscan.io/tx/0xe4fcf8aa90cc42355e2998561759f906ba5bbb50f2aeea161ebd167e3acc5609

3、2020–09–11 03:25 UTC—@Nomichef 將 38,000 枚 ETH轉移回 SUSHI 多簽名錢包(0xf73b31c07e3f8ea8f7c59ac58ed1f878708c8a76)。

https://etherscan.io/tx/0xa5179a870734faadbb7abe2cc2030436a870f9bda1f869b3f986d65cbfbe57b8

4、2020–09–11 03:31:00 PM UTC —@Nomichef 致歉,並公開表示已將 38,000 ETH 轉移至“壽司”Sushiswap 庫存多重簽名帳戶。

https://twitter.com/NomiChef/status/1304442495342796800

階段三:報償

1、2020 年 9 月 15 日上午 01:13:46 UTC — @SBF_Alameda開始從Bittrex(0xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb98)和另一個未知交易所(0x964d9d1a532b5c5daeacbac71d46320deseriesa)累積 39699.94 枚 ETH。

https://etherscan.io/tx/0xcefbd6a9b03522d87915f75ed94c10ed2c87a8456a436ca3f323bf46473bce60

https://etherscan.io/tx/0x6db4e66cba8566721e10015c1aa3db0738e4ac373e817aebf7cf3dba3a1cf377

https://etherscan.io/tx/0x47bfcb08961f1a80dc58e48cc22e34eda0712f3a8cff76eb4be9583a456dcd3d

https://etherscan.io/tx/0xd2c2f5c070eeb3d1ebbe9897f5047ffc74ca9183ef94c826a36b0b0616d65936

2、2020 年 9 月 15 日上午 02:06 UTC — @SBF_Alameda(0xd57581d9e42e9032e6f60422fa619b4a4574ba79)完成了將 ETH 與 Uniswap 上的 SUSHI 代幣的兌換。從下面連結中可以查到最後一筆兌換交易:

https://etherscan.io/tx/0xc901dea31fcc59a68fbbd9133f775836f3d59a2f0f6423835d949a215f099666

3、2020 年 9 月 15 日上午 02:15:46 UTC — 557 萬枚 SUSHI 代幣從@SBF_Alameda(0xd57581d9e42e9032e6f60422fa619b4a4574ba79)控制的地址轉移到多重簽名錢包(0xf73b31c07e3f8ea8f7c59ac58ed1f878708c8a76)

https://etherscan.io/tx/0x8ff45efc77e5d81714f5a2e0a839c216112c2af6242041ef2d46cdf2fe8678f0

https://etherscan.io/tx/0x968de6f3f80b2af08d1c520d20d9c94019152cbac838aabf6c632da02ee0229f

4、2020 年 9 月 15 日上午 4:42 UTC —將 38,000 枚 ETH從多簽名錢包(0xf73b31c07e3f8ea8f7c59ac58ed1f878708c8a76)轉移到@SBF_Alameda(0xd57581d9e42e9032e6f60422fa619b4a4574ba79)。

https://etherscan.io/tx/0x7ef94acf19eaff3517e0675db1d6694b7567e79090cb1192f20ad0ee7892078d

https://etherscan.io/tx/0x7d3ab2ea9a4578f9ff08b90a73ec3d262cc6f3a6fc39bf6bd1e7c20e39c1eeb1

https://etherscan.io/tx/0xcbd16d06238b136390b1d914c3defddf378de59bf15906833d8fc25ccbc2f951

5、2020 年 9 月 15 日上午 5:50 UTC — 3920,000 枚 ETH 透過多筆交易(4000 ETH,4010 ETH,4020 ETH…4080 ETH,2870 ETH)從 @SBF_Alameda 轉移到 0x9f9643c8b413b32c3a1270068487f341e5be8bfd。下面連結是這些交易中的一個示例:

https://etherscan.io/tx/0xd2f19e24961802ff29792e978844691f67e9c37173539cf86d204b68a9e91885

6、2020 年 9 月 15 日上午 06:10:03 UTC — 1,000,000 枚 SUSHI 代幣從多重簽名財務帳戶轉移到@SBF_Alameda。

https://etherscan.io/tx/0xe5a08db5e46cff54ac0bc15e5c307bc68daba03c1edd17e7cb4b4044d79ac435

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;