自從bZx 事件之後,閃電貸款(Flash Loan)逐漸為大家熟悉。如果利用閃電貸款對Maker 進行治理攻擊,會發生什麼情況?本文源自於 Dominik Harz的文章《Stealing All of Maker’s Collateral》,由專欄作者 藍狐筆記 作編譯、撰寫及整理。
閃電貸款出現之前,要發起治理攻擊的成本很高,可能會採用眾籌策略,而有了閃電貸款,只要流動池中有足夠的ETH,即可發動對Maker 的治理攻擊,從而取走Maker 的所有抵押品並發行新 Dai。
基於這樣的可能性,Maker 決定制定新的治理合約,並於今天發起投票,以引入延遲,防止對系統的治理攻擊。
閃電貸款的出現,對DeFi的安全提出更高要求。此外,作者發現,當前 Uniswap 池中的MKR 被大幅減少,1.6萬個MKR 降至4000多個MKR,從目前情況看,由很大概率是大戶撤出,以防止被攻擊者利用。
延伸閱讀:閃電貸款|駭客二次對「各 DeFi 產品壓力測試攻擊」,從 bZx 再獲利 66 萬美元(2,378 ETH)
摘要
- 如果不對新的治理合約引入延遲,通過閃電貸款,你有機會竊走Maker的所有抵押品(7億美元左右)以及發行任意數量的新Dai。
- 任何人都可以執行攻擊,且只需要支付交易費用(幾美元),且無須持有任何 MKR。
- 如果Maker 在閃貸池的流動性超過閥值之前,不引入延遲,則幾乎沒有機會阻止攻擊。
- Maker清楚攻擊向量,並於PST(太平洋標準時間)本週五下午12 點舉行投票(也就是今天),以防止攻擊。
介紹
Maker及其Dai 穩定幣是以太坊DeFi 上最受歡迎的項目,其智能合約鎖定了大約7 億美元。(當前大約6億美元,跟ETH價格波動相關。)Maker 協議依賴編碼於智能合約的治理流程。MKR 代幣持有人可以投票取代現有的治理合約。投票票數跟MKR 數量成正比。MKR 的總代幣量 為987,530,其中選定的錢包或合約持有大量的代幣:
- Maker治理合約:192,910 MKR
- Maker基金會:117,993 MKR
- a16z: 60,000 MKR
- 0xfc7e22c6afa3ebb723bdde26d6ab3783aab9726b: 51,291 MKR
- 0x000be27f560fef0253cac4da8411611184356549: 39,645 MKR
請注意:Maker 治理合約包含多個主體的 MKR 代幣
治理攻擊
在2019年12月的一篇文章中,Micah Zoltu 指出如何攻擊Maker治理合約。其基本思想是,積累足夠的MKR 代幣,用攻擊者的治理合約取代現有的治理合約,也就是惡意的治理合約。然後,惡意治理合約可以讓攻擊者完全控制系統,可以取出系統中的所有質押品,同時發行任意數量的新 Dai。
為了減少所需的MKR 代幣數量,他建議在對新治理協議進行投票時執行攻擊。目前,治理合約中已鎖定192,910 個MKR。但是,如果假設兩到三個合約用類似代幣分配進行並行投票,那麼攻擊者將需要較少的代幣。如下圖,這種情況在過去經常發生:
最明顯的攻擊策略是通過智能合約眾籌所需的MKR 代幣,並在勝利後給每個參與者分配相應的收益。然而,攻擊者可能需要累積大約5萬個MKR 代幣,才有機會在不被Maker注意到的情況下發起對系統的攻擊。
勇敢的新攻擊策略:閃電貸款
不過,如果我們考慮使用閃電貸款,則可以完全無須考慮累積MKR 代幣。閃電貸款是相當新的概念,因此我們可以給予簡要說明。
一般來說,一個人必須提供抵押品以在DeFi 中獲得貸款。例如,在Maker 中,Alice通過存入ETH 借到Dai。這是必須的,因為這是在弱身份和主體在經濟上會做出理性選擇的系統下運行的。
而閃電貸款將這些要求都去掉,因為它僅在單個交易中發生:
- Alice從閃貸流動性提供商中獲得貸款(例如在Aave或dYdX中)
- Alice執行一些操作(例如,對Uniswap、Fulcurm、Kyber等進行套利交易)
- 愛麗絲償還閃貸及利息
閃電貸款之所以有效,是因為這是以太坊EVM 的設計方式:如果在這次交易中閃貸在任何時候失敗,整個交易都會被還原。
因此,Alice 可以承擔貸款的風險,即,如果她無法償還貸款,她也永遠不會承擔其風險。流動性提供商也獲得勝利:他們只有在Alice 能夠償還貸款的情況下才會出借其資金。
利用閃貸進行套利或預言機操縱
在2月14日和2月18日,兩起跟閃電貸款有關的事件導致bZx 停止其平台。在第一次的交易中,一次閃貸獲利1,193ETH,大約298,250美元。該交易使用智能合約執行,在Fulcrum上開了wBTC的空頭頭寸。在同一筆交易中,該交易從Compound中藉出一筆wBTC貸款,並在kyber的Uniswap儲備池中交易wBTC,導致很大的滑點,最終也將Fulcrum的價格降低。具體可參考bZx和peckShield的分析。(藍狐筆記:也可參考之前藍狐筆記的文章《bZx事件的啟示》)
延伸閱讀:什麼是「閃電貸 Flash Loan」?十幾秒內從借貸協議 bZx 狠賺 35 萬美元的 DeFi 策略
同樣,2月18日發生了第二起事件,這一次交易中「攻擊者」獲得了2,378ETH(約60萬美元)的收益。該交易涉及最初借入7,500 ETH,以在Synthetix 的sUSD買入多頭頭寸。
大概的攻擊步驟如下:
- 通過閃貸借出7,500ETH ;
- 將其中的3,517 ETH在Synthetix 上換取94萬美元的sUSD,sUSD價格此時為1美元左右;
- 使用900 ETH在Kyber 和Uniswap 上購買sUSD,將sUSD價格推高至2美元;
- 通過抵押sUSD 借入6,796ETH,之所以用之前94萬sUSD能藉入這麼多ETH,是因為sUSD的價格被推高到2美元,也就是說相當於188萬美元價值的抵押品;
- 使用借來的6,796 個ETH和剩餘的3,083 ETH償還7500 ETH的閃貸,那麼還剩下6,796+3,083-7500=2,379 ETH的收益
預言機操縱以減少所需的流動性
對於有些攻擊,我們可以假設5萬MKR 就足夠了。即使實踐上所需的代幣數量可能更多,閃電貸款會讓Maker安全面臨困境,如果沒有治理延遲的話。用一種幼稚的方法,攻擊者可以藉出一筆閃貸購買5萬MKR 代幣。
按照目前的匯率,攻擊者需要大約485,000 ETH,用來購買MKR,因為只有一個交易所Kyber有足夠的量。但是,攻擊者也可以在多個交易所購買MKR,在Kyber買入3.8 萬的MKR,在Uniswap買入1.15 萬的MKR,從Switcheo買入500MKR,共計需要378,940ETH。這個數字依然很高,但已經減少了近10萬ETH。
攻擊者可以使用預言機操控策略以有效降低Kyber和Uniswap上MKR的價格。這是兩個最大的MKR提供商,並顯出很容易受到預言機價格操縱的影響。需要進一步分析來確定MKR價格可以降低多少。但是,像wBTC這樣的流動性較低的代幣,攻擊者能夠將匯率操縱大約285%。
獲得足夠的流動性
即使使用預言機操縱,也需要大量的ETH 執行對Maker的攻擊。但是,攻擊者可以通過在同一次交易中進行兩筆閃貸來提高其流動性。Aave和dYdX 為了保護自己免遭重入攻擊的傷害,在一次交易中僅允許單筆閃貸。但是,攻擊者可以在同一筆交易中從這兩個不同協議中借出ETH。
因此,截止到2月18日,攻擊者在dYdX上擁有一個9萬ETH池,在Aave上有1.7萬ETH池。因此,以當前的流動性,攻擊者可以從dYdX和Aave那裡獲得共計大約10.7萬ETH的貸款,通過借入的ETH,試圖用來操縱MKR代幣價格,並由此獲得足夠的MKR代幣,以取代當前Make治理合約。
為了讓這種方法成功,攻擊者必須能夠將MKR平均價格降低至少3.54倍。或者,攻擊者可以等待dYdX和Aave增加其流動性池。由於兩種協議的當前流動性池增長率大約在5%左右,因此似乎不太可能在兩個月內實現此攻擊。
組合攻擊?
顯然,可以將眾籌和閃貸兩種方法結合起來。使用當前可獲得的大約10.7萬的ETH,大約可以從Kyber上獲得1.08萬MKR。這樣一樣,多個攻擊者所需的眾籌MKR量從5萬個降至3.92萬個。在非正式的Twitter調查中顯示,似乎有些人確實對這種攻擊感興趣:
還應注意:排名前四位的帳戶持有人(實際上有5個,但不考慮當前Maker 治理合約)能夠在無須眾籌的情況下實施攻擊。
沒時間等待
一旦通過閃貸池獲得足夠的流動性(使用或不使用預言機操縱的組合),任何人都可以接管Maker治理合約。當流動性池資金達到這種閥值時,一旦Maker開始投票,Maker需要確保MKR代幣盡可能少地分佈。如果在此投票過程中,任何時候MKR的分佈被允許利用此漏洞,那麼,任何抵押品都可能被取走。
該攻擊者將能夠取走價值7億美元的ETH抵押品,且能夠任意印發新Dai。這種攻擊將會擴散到整個DeFi領域,因為Dai在其他協議被用作抵押資產。此外,攻擊者可以使用新Dai交易其他價值2.3億美元的代幣。
對策
Maker應制定新的治理合約,防止閃貸攻擊其系統。具體來說,新的治理合約應該能夠被Maker 基金會核查,以查看是否有惡意代碼,並能夠有足夠的時間做出反應。從最低限度來說,新治理合約不應該在單個交易中生效。這樣,攻擊者無法從攻擊中獲利,從而導致無法償還閃貸貸款。如果攻擊者無法償還閃貸,攻擊也就不會發生。
Maker 將於2020年2月21日大平洋標準時間12點(星期五)下午對這類合約進行表決。其建議對合約激活治理安全模塊(GSM),並防止此類閃貸攻擊。
?相關報導?
DeFi|Maker 中的「預言機治理」攻擊與「半中心化」的影響
DeFi|從數據看MakerDAO 的「多質押品系統升級」與去中心化鏈上治理
讓動區 Telegram 新聞頻道再次強大!!立即加入獲得第一手區塊鏈、加密貨幣新聞報導。