買以太坊 買以太坊
Ctrl+D 買以太坊
ads
首頁 > BNB價格 > Info

TOKEN:Popsicle Finance 雙花攻擊分析_TOK

Author:

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

北京時間 2021 年 8 月 4 日早上 6 點(區塊 12955063),Popsicle Finance 項目下的多個機槍池被攻擊,損失金額超過兩千萬美元,是迄今為止 DeFi 領域發生的損失數額最大的單筆攻擊之一。通過分析攻擊交易及項目代碼我們發現,此次攻擊是一個利用項目的記賬漏洞進行多次提取的攻擊(Double-Claiming Rewards)。下面我們通過代碼和攻擊流程分析此次攻擊。

Popsicle Finance 是一個涉及多個鏈的機槍池(Yield Optimization Platform)。

用戶首先調用 deposit 函數向機槍池存入一定的流動性,并獲得 Popsicle LP Token (以下簡稱 PLP Token)作為存款的份額證明。Popsicle Finance 會將用戶提供的流動性存入 Uniswap 等底層池子并獲得收益。

用戶還可以調用 withdraw 函數,根據用戶持有的 PLP Token 所代表的流動性份額,從機槍池取回流動性。Popsicle Finance 會將 PLP Token 對應的流動性從 Uniswap 等底層池子中取回給用戶。

DAO magipop與iPollo元宇宙基礎設施達成戰略合作:據官方消息,Web3創作者DAO magipop與Nano Labs旗下的iPollo元宇宙基礎設施達成戰略合作,magipop于2022年曾獲得了StepN的早期投資者、Prodigital Future Fund合伙人Curt Shi(侍海)的投資,在2023年的ETHDenver活動中,獲得了NFT賽道bounty獎,證明了其在NFT領域的領先地位和實力。該合作將在iPollo元宇宙基礎設施上提供更多創意和有趣的內容,吸引更多用戶和社區參與,打造更加豐富的虛擬世界。[2023/3/23 13:22:20]

最后,用戶在機槍池中存的流動性會隨著時間產生一定的收益(Yield),會累計在合約的用戶狀態中。用戶可以調用 collectFees 函數取回部分存款獎勵。

本次攻擊的核心函數正是 collectFees 函數。下面我們逐步分析其代碼。首先獲得存儲在 userInfo 中的用戶狀態。其中用戶狀態中的 token0Rewards 和 token1Rewards 是由于用戶存款而累積的獎勵。

Naver與LINE NEXT達成合作,為K-pop樂迷推出NFT平臺:金色財經消息,韓國互聯網巨頭Naver與LINENEXT合作推出了NFT平臺NOW.Drops。該平臺將允許K-pop樂迷創建定制的音樂NFT。

NOW.Drops允許用戶從NOW.的獨家內容中裁剪出他們最喜歡的音樂表演的NFT,NAVER的直播音頻和視頻流服務以韓國藝術家為主。

NOW.Drops可以通過LINE的電子錢包DOSI訪問,用戶可以通過社交媒體賬戶登錄并進行支付。LINE NEXT是東京移動應用巨頭LINE公司的NFT子公司,該公司由Naver和軟銀集團所有。(Forkast)[2022/9/22 7:13:34]

接下來計算該合約中,對應機槍池的 Token 對的 Balance。如果在合約中有足夠的 Balance,就按金額將 Reward 支付給用戶;否則會調用 pool.burnExactLiquidity 從底層 pool 取回流動性返回給用戶。

最后,會將記錄在 userInfo 中的 Rewards 狀態進行更新。看到這里,機槍池的代碼實現還是比較符合邏輯的。但是在函數開頭我們發現了 updateVault modifier,這個函數會在 collectFees 的函數體之前運行,漏洞也許在 updateVault 相關的函數中。

基于以太坊和Solana的游戲工作室Ex Populus完成850萬美元融資:金色財經報道,基于以太坊和Solana的游戲工作室Ex Populus周二宣布完成一輪850萬美元的融資,Akatsuki Inc、Gerstenbrot Capital、Blockwall Digital Assets、Citizen X、Fisher 8 Capital、Perpetual Protocol、Yolo Ventures、Libra Capital Ventures、8186 Capital和Sneaky Ventures等參投。Ex Populus此前也在10月份籌集了由Animoca Brands領投的300萬美元種子輪融資。[2021/12/15 7:40:02]

以上是 updateVault 相關函數的實現。過程如下:

首先調用_earnFees 向底層 pool 獲取積累的 Fee;

隨后調用_tokenPerShare 更新 token0PerShareStored 和 token1PerShareStored 參數,這兩個參數代表了池子中每個 share 代表的 token0 和 token1 的數量,即機槍池的每個份額計代表的 Token 對數量;

GameDAO旗下NFT交易市場POPNFTs已登錄Coinhub:據官方消息,GameDAO旗下全新的NFT交易市場POPNFT已正式登錄Coinhub。POPNFT現已支持HECO生態鏈上多個NFT項目。

Coinhub 是一個安全便捷的區塊鏈數字資產管理服務平臺,集成錢包、數據、理財、挖礦、交易等功能,支持所有公鏈及其鏈上生態應用,通過合約分析完整展示用戶資產,通過數據分析智能推薦優質應用,通過聚合DeFi工具實現便捷理財、一鍵挖礦和最優交易。讓用戶在DeFi的新生態中,全面了解當前數據和便捷操作管理資產,降低用戶風險,實現資產增值。[2021/6/15 23:37:36]

最后調用fee0Earned 和fee1Earned 更新對應到這個用戶的存款 Rewards (即 user.token0Rewards 和 user.token1Rewards)。

以上是fee0Earned 和fee1Earned 函數的實現,兩個函數實現相同,都實現了這樣一個公式(以_fee0Earned 為例):

PopChain將在明天上市Bithumb:PopChain的代幣持有者只有20人,其中持有率第一的人持有76%,持有率第二的人持有15%,這二者加起來擁有超過90%的代幣。而PopChain截止目前沒上線其他交易所,導致現在行業內存在一種敏感氣氛,Bithumb也因此失去了一些人的信任。PopChain是以區塊鏈技術為底層驅動的開源公有鏈。[2018/5/16]

user.token0Rewards += PLP.balanceOf(account) * (fee0PerShare - user.token0PerSharePaid) / 1e18

也就是說,該函數會在原有的 user.token0Rewards 基礎上,根據用戶擁有的 PLP Token 數量計算應給用戶發放的 Fee 的份額。

但我們注意到這個函數是增量的,也就是說即使用戶并沒有持有 PLP Token (PLP.balanceOf(account) 為 0),該函數仍會返回保存在 user.token0Rewards 中記賬的存款獎勵。

因此對于整個合約,我們發現兩個重要的邏輯缺陷:

用戶的存款獎勵是記錄在 user.token0Rewards 和 user.token1Rewards 中的,并不與任何 PLP Token 或其他東西有任何形式的綁定。

用于取回存款收益的 collectFees 函數僅僅依賴于記賬的 user.token0Rewards 和 user.token1Rewards 狀態,即使用戶并未持有 PLP Token,仍可以取出對應的存款獎勵。

我們假想一個攻擊流程:

攻擊者向機槍池中存入一定的流動性,獲得一部分 PLP Token。

攻擊者調用 collectFees(0, 0),后者會更新攻擊者的存款獎勵,即狀態變量 user.token0Rewards 的值,但并沒有真正取回存款獎勵。

攻擊者將 PLP Token 轉給自己控制的其他合約,再調用 collectFees(0, 0) 更新狀態變量 user.token0Rewards。也就是說通過不斷地流轉 PLP Token 并調用 collectFees(0, 0),攻擊者復制了這些 PLP Token 對應的存款獎勵。

最后,攻擊者從以上各個地址調用 collectFees 函數,取回真正的獎勵。此時雖然這些賬戶中并沒有 PLP Token,但由于記賬在 user.token0Rewards 沒有更新,攻擊者因此得以取出多份獎勵。

用現實生活中的例子來描述這個攻擊,相當于我向銀行存錢,銀行給了我一張存款憑證,但這張憑證沒有防偽措施也沒有和我綁定,我把憑證復印了幾份發給不同的人,他們每個人都憑借這個憑證向銀行取回了利息。

通過以上的代碼分析,我們發現了 Popsicle Finance 在機槍池實現上的漏洞。下面我們對攻擊交易進行深入分析,看攻擊者是怎樣利用這個漏洞的。

攻擊者的總體流程如下:

攻擊者創建了三個交易合約。其中一個用于發起攻擊交易,另外兩個用于接收 PLP Token 并調用 Popsicle Finance 機槍池的 collectFees 函數取回存款獎勵。

通過閃電貸從 AAVE 借出大量流動性。攻擊者選擇了 Popsicle Finance 項目下的多個機槍池,向 AAVE 借出了對應這些機槍池的六種流動性。

進行Deposit-Withdraw-CollectFees循環。攻擊者一共進行了8 次循環,分別攻擊了 Popsicle Finance 項目下的多個機槍池,取出了大量流動性。

向 AAVE 歸還閃電貸,并將獲利通過 Tornado Cash 洗錢。

本次攻擊交易主要由數個 Deposit-Withdraw-CollectFees 循環構成,每一個循環的示意圖如上圖所示。根據我們的分析,邏輯如下:

攻擊者首先將閃電貸借來的流動性存入機槍池中,獲得一定量的 PLP Token。

攻擊者將 PLP Token 轉給攻擊合約 2。

攻擊合約 2 調用機槍池的 collectFees(0, 0) 函數,設置合約 2 對應的 user.token0Rewards 和 user.token1Rewards 狀態。

攻擊合約 2 將 PLP Token 轉給攻擊合約 3。

和攻擊合約 2 的操作類似,攻擊合約 3 調用機槍池的 collectFees(0, 0) 函數,設置合約 2 對應的 user.token0Rewards 和 user.token1Rewards 狀態。

攻擊合約 2 將 PLP Token 轉回攻擊合約,后者調用機槍池的 withdraw 函數 Burn 掉 PLP Token,取回流動性。

攻擊合約 2 和攻擊合約 3 調用 collectFees 函數,用虛假的 tokenRewards 狀態取回了存款獎勵。

根據我們的以太坊交易追蹤可視化系統(https://tx.blocksecteam.com/)給出的交易調用圖如下,其中部分重要交易用紅字進行標注:

本次攻擊一共獲利:2.56k WETH,96.2 WBTC,160k DAI,5.39m USDC,4.98m USDT,10.5k UNI,獲利共計超過 20,000,000 美元。

在此次攻擊之后攻擊者通過首先通過 Uniswap 和 WETH 將攻擊獲得的其他 token 全部換成 ETH,然后通過多次使用 Tornado.Cash 將 ETH 洗白。

Tags:KENTOKETOKTOKENMunch TokencgtokenCQTF TokenKaaso Token

BNB價格
區塊鏈:最有前途的以太坊替代品是什么?(二)_比特幣

此前,我們分析了一些可能超過以太坊成為智能合約平臺之王的高市值智能合約區塊鏈。今天,我們將繼續討論和分析一些市值排名在40-100之間的智能合約平臺.

1900/1/1 0:00:00
DEF:波卡生態起步在即 哪五大發展方向值得關注?_EFI

背景 距離Kusama插槽結束已經過去了一周多,5次拍賣鎖倉的KSM超過了114萬枚,占了KSM發行量的9.8%,而目前隨著第一輪插槽拍賣的結束.

1900/1/1 0:00:00
THE:金色硬核|USDT和USDC使用模式分析_ETH

目前穩定幣的總供應量接近1100億美元,幾乎是2021年初供應量的4 倍。但這種增長并沒有在各種穩定幣中平均分配。在不確定的加密市場中,穩定幣市場也在發生變化.

1900/1/1 0:00:00
區塊鏈:首發 | 加密貨幣逐步滲透傳統市場 如何規避風險_加密貨幣

對于同一事物的態度往往取決于當事人所處的立場,波動性也不例外,有人喜歡,也有人討厭。例如,專業交易者與長期投資者對于波動的態度就不一樣.

1900/1/1 0:00:00
加密貨幣:金色觀察 | 碳中和下的加密貨幣市場_加密貨幣和中國數字貨幣

“碳中和”一詞正在加密貨幣市場快速流行起來。自特斯拉CEO馬斯克(Elon Musk)說比特幣可以持續生產之前不會使用或接受比特幣后,社會層面對于加密貨幣環境影響的討論便再度躍上臺面,更成為比特.

1900/1/1 0:00:00
DEF:為了防止DeFi攻擊 我們都要做什么?_EFI

智能合約給了我們去中心化,無需信任,去信任等眾多特點,但去除人為操作之后,一旦智能合約開了天窗,那么資產有可能被黑客予取予求.

1900/1/1 0:00:00
ads