買以太坊 買以太坊
Ctrl+D 買以太坊
ads

SUSHI:如何通過恒定乘積黑掉 SushiSwap ?簡析 SushiSwap 第二次被攻擊始末_SHI

Author:

Time:1900/1/1 0:00:00

如何通過恒定乘積黑掉SushiSwap?簡析SushiSwap第二次被攻擊始末

慢霧科技

剛剛

12

背景

2021年1月27日,據慢霧區情報,SushiSwap再次遭遇攻擊,此次問題為DIGG-WBTC交易對的手續費被攻擊者通過特殊的手段薅走。慢霧安全團隊在收到情報后立馬介入相關事件的分析工作,以下為攻擊相關細節。

SushiMaker是什么

SushiMaker是SushiSwap協議中的一個重要的組件,其用于收集SushiSwap每個交易對的手續費,并通過設置每個代幣的路由,將不同交易對的手續費最終轉換成sushi代幣,回饋給sushi代幣的持有者。這個過程就是發生在SushiMaker合約上。

說說恒定乘積

恒定乘積的公式很簡單,在不計算手續費的情況下,恒定乘積的公式為

Sweat授權社區決定如何處理自年初以來積累的1億枚SWEAT代幣:4月18日消息,Move-to-Earn 項目 Sweat 授權社區決定如何處理自今年年初以來積累的 1 億枚 SWEAT 代幣,投票選項包括 0% 分發和 100% 銷毀,25% 分發和 75% 銷毀,50% 分發和 50% 銷毀,75% 分發和 25% 銷毀,100% 分發和 0% 銷毀。[2023/4/18 14:11:30]

也就是說每次兌換,其實都是遵循這個公式,及交易前后K值不變,在兌換的過程中,由于要保持K值不變,公式的形式會是這個樣子

DFI.Money(YFII)發起關于如何分配Balancer獎勵提案:9月3日,聚合器項目DFI.Money(YFII)收到首批Balancer(BAL)獎勵,共計BAL 679.83個,價值21,814美元。該獎勵來源于YFII/DAI礦池,后續每周都將收到。關于獎勵如何分配,社區發起提案進行投票:放進循環挖礦池;換成yCRV給投票人激勵參與投票;注入社區基金。[2020/9/8]

其中X代表賣掉的代幣,Y代表要購買的代幣,那么每次能兌換到的代幣數量會是這個樣子(具體的推導過程就不演示了:D)

從公式上可以看到,當輸出代幣Y的兌換數量上限取決于Y代幣的數量,而和X代幣數量的大小無關,反過來說,如果要賣掉的X代幣數量很大,但是Y代幣的數量很小,那么就會造成大量的X代幣只能兌換出少量的Y代幣,而這個兌換價格相比正常的交易價格會偏離很多,這就是所謂的滑點,是本次攻擊中的關鍵。

直播|陸遙遠 :普通用戶如何參與DeFi獲得高額收益:金色財經 · 直播主辦的金點Trend《2020 DeFi Dai飛嗎?》馬上開始!DeFi生態里,我們還應該狙擊哪些項目?成長空間是多少?應該關注哪些風險?11:00準時開播!本場嘉賓來自老陸的區塊鏈筆記的作者/ 麥子錢包PM陸遙遠分享“普通用戶如何參與DeFi獲得高額收益”,請掃碼移步收聽![2020/7/31]

攻擊流程

2020年11月30日,SushiSwap就曾因為SushiMaker的問題出現過一次攻擊(詳解參閱:以小博大,簡析SushiSwap攻擊事件始末),本次攻擊和第一次攻擊相似,但流程上有區別。相較于舊合約,在新的合約中,手續費在兌換的過程中會通過bridgeFor函數為不同交易對中的代幣尋找特定的兌換路由,然后進行兌換。

大咖零距離 | 如何通過套保實現穩定收益:4月9日18:00,金色盤面邀請資深挖礦炒幣者小迷姐做客金色財經《大咖零距離》直播間,將分享《如何通過套保實現穩定收益》,敬請關注,欲進群觀看直播掃描下方二維碼報名即可。[2020/4/9]

其中,brdigeFor函數的邏輯如下:

根據bridgeFor的邏輯,我們不難發現,如果沒有手動設置過特定幣種的bridge,那么默認的bridge是WETH,也就是說,在未設置bridge的情況下,默認是將手續費兌換成WETH。而DIGG這個幣,就是正好沒有通過setBridge設置對應的bridge的。

聯想回應新品手機如何應用區塊鏈技術:目前沒有更多可披露的:20日下午,聯想發布新品手機Lenovo S5,并將其定義為“區塊鏈手機”。那么Lenovo S5是如何應用區塊鏈技術的?全天候科技就此向聯想方面求證,對方表示,“聯想S5首創雙域隔離、全域加密的安全空間——Z空間,創新性解決支付安全的行業難題,能全面保障用戶的賬號、密碼以及網絡購物的安全,并從底層支持最新的區塊鏈技術。關于區塊鏈其它的內容,目前還沒有更多可以披露的。”[2018/3/21]

但是這里還有一個問題,就是在swap的過程中,如果這個交易對不存在,兌換的過程是失敗的。本次攻擊中,DIGG-WETH這個交易對一開始并不存在,所以攻擊者預先創建一個DIGG-WETH的交易對,然后添加少量的流動性。這個時候如果發生手續費兌換,根據前面說的恒定乘積的特性,由于DIGG-WETH的流動性很少,也就是DIGG-WETH中的WETH上限很小,而SushiMaker中的要轉換的手續費數量相對較大,這樣的兌換會導致巨大的滑點。兌換的過程會拉高DIGG-WETH交易對中WETH兌DIGG的價格,并且,DIGG-WETH的所有DIGG手續費收益都到了DIGG-WETH交易中。通過觀察DIGG-WETH交易對的流動性情況,流動性最大的時候也才只有不到2800美元的流動性,這個結果也能和公式的推導相互驗證。

攻擊者在SushiMaker完成手續費轉換后,由于?DIGG-WETH交易對中WETH兌DIGG的價格已經被拉高,導致少量的WETH即可兌換大量的DIGG,而這個DIGG的數量,正是DIGG-WBTC交易對的大部分手續費收入。

總結

本次攻擊和SushiSwap第一次攻擊類似,都是通過操控交易對的兌換價格來產生獲利。但是過程是不一樣的。第一次攻擊是因為攻擊者使用LP代幣本身和其他代幣創建了一個新的交易對,并通過操縱初始流動性操控了這個新的交易對的價格來進行獲利,而這次的攻擊則利用了DIGG本身沒有對WETH交易對,而攻擊者創建了這個交易對并操控了初始的交易價格,導致手續費兌換過程中產生了巨大的滑點,攻擊者只需使用少量的DIGG和WETH提供初始流動性即可獲取巨額利潤。

相關參考鏈接如下:

SushiMaker歸集手續費交易:

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

攻擊者套利交易:

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

DIGG-WETH流動性詳情:

https://www.sushiswap.fi/pair/0xf41e354eb138b328d56957b36b7f814826708724

Sushi第一次被攻擊詳解:

https://mp.weixin.qq.com/s/-Vp9bPSqxE0yw2hk_yogFw

By:?yudan@慢霧安全團隊

DeFi

SushiSwap

本文來源:

慢霧科技

文章作者:慢霧安全團隊

我要糾錯

聲明:本文由入駐金色財經的作者撰寫,觀點僅代表作者本人,絕不代表金色財經贊同其觀點或證實其描述。

提示:投資有風險,入市須謹慎。本資訊不作為投資理財建議。

金色財經>區塊鏈>如何通過恒定乘積黑掉SushiSwap?簡析SushiSwap第二次被攻擊始末

Tags:USHSUSHISHIUSHIW3bPUSHsushi幣什么時候出來的SHIBT幣sushi幣論壇

萊特幣最新價格
質押池的代幣經濟(下): 質押代幣的運作方式

上部分《何為質押代幣?》介紹了stakedETH代幣的模式(即質押ETH所獲得的代幣),本文將講解它們是如何運作的.

1900/1/1 0:00:00
SWAP:SUSHI逆襲:“抄襲者”的勝利?_SUSHIBEAR幣

作者|深鏈六六 編輯?|門人??運營|小石頭風清揚1月26日,Sushiswap團隊公布了流動性挖礦激勵項目:Onsen的V1.5版本.

1900/1/1 0:00:00
MIC:11億美元買入比特幣還不夠!MicroStrategy宣布持續吸入!_TRAT

美上市公司MicroStrategy是比特幣的老朋友了,從去年開始高調吸入比特幣。昨天,其向美國證券交易委員會提交2020年第四季財報,其中表示:已經砸下超過11億美元買比特幣,并且公司對這個投.

1900/1/1 0:00:00
COCO:COCOS資產已打通幣安橋 ERC-20 和 BEP-20 的COCOS可雙向承兌_cosmos

近日,Cocos-BCX已經打通了幣安橋,即原幣安巴拿馬計劃,ERC-20和BEP-20的COCOS已可雙向承兌.

1900/1/1 0:00:00
ITT:為什么2020年的BTC 并沒有2017那么瘋狂?_Kitty Kat Coin

為什么不在少數的幣友認為本輪牛市已經結束了呢?最直觀的感覺就是,2020年的BTC走勢實在太像2017年了.

1900/1/1 0:00:00
ETH:ETH再創新高 Gemini聯創:1500美元仍被低估_DEFI

昨夜今晨,ETH連續上漲,續創歷史新高。北京時間2月3日0時59分,ETH突破1500美元,6時34分,ETH最高漲至1547.16美元,截至發稿時,略有回落,現報價1513美元.

1900/1/1 0:00:00
ads