Zerogoki攻擊事件分析

2021-08-10 12:08:38

北京時間2021年8月8日13點(區塊高度12982491),Zerogoki項目下的合約遭到攻擊,總計損失約67萬美元。

Zerogoki攻擊事件分析

背景介紹

Zerogoki是Duet Protocol的一個下屬項目,用以在以太坊區塊鏈平臺上引入衍生品。在實現上,Zerogoki沿用了Duet Protocol的Lite Minting算法。

簡而言之,用戶首先購买平臺幣REI,然後將平臺幣Burn掉以兌換其他衍生資產(Synthetic Assets),如zUSD(對標美元的平臺幣)、zBTC 3L(BTC 3X Leveraged Long,即比特幣三倍槓杆看多期貨)。

作為一個衍生品合約,Zerogoki需要將衍生資產的價格(如比特幣的價格)導入以太坊區塊鏈。和以太坊上大多數平臺一樣,Zerogoki依賴價格預言機(Oracle)來獲得價格。此次攻擊正是利用了Oracle相關函數。

代碼分析

下面我們首先對被攻擊合約0x80ecdb90的代碼進行分析。

Zerogoki攻擊事件分析

以上是被攻擊合約的Swap函數。首先調用兩次decode_op,從入參oracle中獲得價格預言機相關的信息。OP結構體包含四個成員:數據類型(datatype)、Token地址(token)、預言機價格(price)和時間戳(timestamp)。

在進行一系列驗證後,合約調用tax內部函數計算此次swap所收取的費用。接下來有三個Token操作:首先根據入參ns[0]將平臺幣REI Burn掉;然後Mint衍生資產(在y.token中指定),數量為ns[1];最後Mint部分平臺幣給GOV合約作為此次swap的費用。

Zerogoki攻擊事件分析

以上是swap开頭的decode_op函數的實現。從這裏可以看出,入參oracle除了包含OP結構體外,還包含了SIGNATURENUM個(在攻擊時這個值為3)籤名用於驗證OP的值。我們推測Zerogoki設置了一系列驗證者,價格預言機中包含的信息必須經過籤名驗證才有效。在代碼中檢查了用於籤名的地址是否在數組authorization裏,該數組是只能由owner進行設置的驗證者數組。同時,代碼還限定了必須由三個不同的authorized籤名者進行驗證。

總的來說,swap傳入的參數,第一個參數ns用於指定swap兩種Token的數量,沒有經過任何校驗;第二個參數包含了價格預言機的信息,需要authorized私鑰進行籤名驗證。

在代碼中我們注意到兩點:

  1. 入參oracle中,與swap直接相關的只有x.token和y.token,即swap的兩種token的類型(其中根據協議設計,x.token大部分為平臺幣REI)。

  2. 雖然入參oracle需要相對復雜的籤名機制進行驗證,但其對應的信息只用於進行驗證及swap費用(即tax)的計算。

  3. 真正決定swap兩種Token數量的是入參ns

我們無從得知項目方為何要進行這樣的設計。當然,由於swap函數开頭要調用decode_op對入參oracle的籤名進行驗證。因此,這段代碼出現問題的唯一原因,是至少有三個authorized籤名者被compromised

攻擊分析

不幸的是,這種黑天鵝事件真的發生了。在攻擊交易0x81e5f715中,攻擊者想辦法利用三個authorized籤名者的公鑰,向入參oracle提供了三個正確的籤名;同時向入參ns提供了一個非常不合理的參數,導致攻擊者用少量的REI Token就Mint了大量zUSD。

Zerogoki攻擊事件分析

如上圖所示,攻擊者用300個REI Token,Mint出了70w+個zUSD代幣(zUSD代幣對標美元)。

深入分析後我們發現,攻擊者提供給入參oracle的籤名都是正確的,這三個籤名對應三個authorized地址:

0x0d93A21b4A971dF713CfC057e43F5D230E76261C

0x3054e19707447800f0666ba274a249fc9a67aa4a

0x4448993f493b1d8d9ed51f22f1d30b9b4377dfd2

我們無從得知攻擊者是怎樣得到這三個地址對應的私鑰的。最直觀的原因有兩種可能:三個地址的私鑰同時泄露,或者同時出現了三名“臥底”。無論哪一種,看起來都像是一種概率極低的黑天鵝事件。但可以肯定的是,正是這種黑天鵝事件導致了這次奇怪攻擊的產生。

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。

推薦文章

歐盟打響穩定幣战爭:21家發行商爭奪,Circle搶先登陸,Tether扶持“代理人”

作者:Weilin,PANews 歐盟《加密資產市場監管法案》(MiCA)對穩定幣發行方的監管規則...

PANews
6 12小時前

Gecky x WEEX聯名車隊馳騁歐洲頂級方程式賽道

當地時間 9 月 29 日,在巴塞羅那舉行的 Euroformula Open 第三場比賽中,Vl...

星球日報
7 12小時前

Fractal Bitcoin分形比特幣深度研究報告:原生擴展的比特幣高速公路,重新定義比特幣的可能性

比特幣網絡擴展問題一直是區塊鏈領域的核心話題。從最初的隔離見證(SegWit)到閃電網絡(Ligh...

星球日報
6 12小時前

薩爾瓦多的比特幣之城,建的怎么樣了?

在全球,薩爾瓦多或許只是一個名不見經傳的邊陲小國,給人留有的模糊印象是熱辣的火山地貌與多樣的生態系...

陀螺財經
6 12小時前

大餅新高、山寨暴跌,誰賺走了你的錢?

「如果不看大餅,只看山寨,我還以為 312 了。」這是一位社區成員發出的無奈感嘆。 這一感嘆並非空...

星球日報
7 12小時前

Stacks完成Nakamoto升級,BTC DeFi會是下一個關注點嗎?

當比特幣突破 9 萬美金,加密市場各個生態都开始了自己的狂歡。 AI 敘事持續火熱,Meme 持續...

星球日報
6 12小時前