買比特幣 買比特幣
Ctrl+D 買比特幣
ads
首頁 > Polygon > Info

STAKE:技術拆解YFValue合約漏洞,一行代碼如何鎖定上億美元?_StakedZEN

Author:

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

編者按:本文來自慢霧科技,Odaily星球日報授權轉載。前言

據鏈聞消息,DeFi項目YFValue發布公告稱,團隊于昨日在YFV質押池中發現一個漏洞,惡意參與者借此漏洞對質押中的YFV計時器單獨重置。目前已有一個惡意參與者正試圖借此勒索團隊。慢霧安全團隊對此進行了深入分析,以下是相關技術細節。細節分析

以上是YFValue的官方說明(來源:https://medium.com/),從聲明中我們可以得知是YFV抵押池出現了問題,惡意的用戶可重置YFV抵押者的計時器,對YFV的抵押者造成不便,但這并不會導致資金損失。通過登陸YFValue的官方網站,(https://yfv.finance/staking),可以發現在YFValue的體系中,用戶可通過質押相關的代幣獲取對應的獎勵,目前YFValue支持的質押代幣池有以下幾個:

七位前Steem開發人員成立OpenOrchard以構建創新開源技術:金色財經報道,七位前Steem頂級開發人員成立了OpenOrchard,這家公司尋求在Hive之上構建創新的開源技術。OpenOrchard的發展源于OpenSeed,該團隊由Steem開發人員Andrew Levine、Benjamin Flanagin和Ron Hamenham組成。據此前消息,Steem社區于北京時間3月20日硬分叉,新鏈名為Hive。[2020/4/17]

可以看到,目前由于漏洞的原因,YFV的抵押池已經在UI界面關閉了抵押功能,但是合約上目前還沒關閉代幣抵押的功能,我們需要跟蹤代碼來分析具體的細節點。根據官網提供的Github地址,我們溯源到了相關的代碼倉庫(https://github.com/yfv-finance/audit),關于YFV抵押的相關邏輯在YFV_Stake.sol合約中,合約中關于抵押的函數有2個,分別是stake函數和stakeOnBehalf函數,以下是具體的代碼:

環球印務:公司將推進區塊鏈技術在醫藥溯源等領域的開發和應用:金色財經報道,環球印務(002799.SZ)在2019年報中指出,公司順應國家科技發展戰略,探索“區塊鏈”領域。目前區塊鏈產業發展的政策體系逐步完善,各地政府積極從產業高度定位區塊鏈技術,區塊鏈技術已經上升到國家科技戰略層面。隨著藥品溯源制度的全面深入推進,公司與北京愛斯瑞特合作成立新公司,旨在充分利用雙方股東在專業制造和區塊鏈技術的平臺優勢、資源優勢、技術優勢和經驗優勢,促成區塊鏈技術在醫藥溯源、醫藥物流、消費者安全用藥、醫保控費、供應鏈平臺等領域的開發和應用,共同培育和打造新一代區塊鏈技術產品和服務。[2020/4/11]

動態 | 瑞士腕表品牌江詩丹頓利用區塊鏈技術進行產品認證:據theedgesingapore消息,瑞士腕表品牌江詩丹頓(Vacheron Constantin)最近通過區塊鏈技術為其Les Collectionneurs系列復古鐘表推出了新的認證流程。除了紙質認證外,區塊鏈技術還可為受保護的數字認證提供額外保障,從而消除造假風險,同時確保長期透明的可追溯性。[2019/5/22]

通過代碼不難發現,無論是stake函數還是stakeOnBehalf函數,邏輯基本是一樣的,首先是校驗了抵押金額不能為0,接著分別調用上層的tokenStake和tokenStakeOnBehalf函數。緊接著更新用戶的抵押時間。只不過stakeOnBehalf函數可以用于為他人抵押。tokenStake和tokenStakeOnBehalf的代碼如下:

中國電子學會副理事長:區塊鏈技術應納入國家科技重大專項 打擊以區塊鏈為名的非法集資:在全國政協委員、中國電子學會副理事長兼秘書長徐曉蘭看來,區塊鏈是一種去中心化的分布式賬本數據庫技術,具備明顯的創新價值,也具備較大的應用潛力,不過區塊鏈技術與應用仍處在早期的探索階段,部分領域炒作過度,甚至出現了以區塊鏈為名開展代幣融資的亂象。她認為,當前需要加強基礎理論和技術研究、建立標準體系、遏制區塊鏈名義下的ICO非法集資,構建區塊鏈技術產業健康發展的生態環境。[2018/3/17]

可以看到這里只是簡單的把對應的token用transferFrom的方式轉入到合約中,沒有什么特別的邏輯點。到這里整個抵押流程就很清晰了,接下來是收益的過程。計算用戶收益的是stakeReward函數,領取收益的為withdraw函數,代碼分別如下:

通過分析計算收益和領取收益的代碼,發現邏輯也很簡單,stake函數首先是通過updateReward修飾器更新了用戶的獎勵,然后使用getReward函數計算了用戶的獎勵,并把抵押時間設置成當前區塊時間。最后,用戶在提取獎勵的時候,withdraw函數會首先計算當前的區塊時間,再與unfrozenStakeTime函數中計算出的時間進行對比,只有當前區塊時間大于unfrozenStakeTime計算出的時間,才允許提現。unfrozenStakeTime的代碼如下:

從代碼中得知,unfrozenStakeTime是使用用戶的上次抵押時間加上FROZEN_STAKING_TIME常量得出鎖定時間,只要超過時間,就能通過withdraw函數提現收益。整個抵押和領取收益的簡化流程如下:

分析了一大堆,回到我們最初的問題,惡意的用戶是怎么鎖定其他用戶的資產的呢?回到用戶抵押的邏輯,可以發現抵押邏輯中的stakeOnBehalf函數本意是幫助進行抵押,但是這里有個問題,如果這個用戶先前已經有抵押了呢?那通過對已經抵押的用戶再次進行抵押,比方說抵押1個YFV,是不是就能以極低的成本重置已抵押的用戶的計時器,導致用戶在withdraw時無法成功調用。更進一步,假設YFV抵押用戶已經成功調用了stakeReward函數,在快要達到unfrozenStakeTime所規定的時間時,惡意的用戶可以通過stakeOnBehalf函數給這個用戶抵押少量資產,即可再次對抵押獎勵進行鎖定,理論上這樣往復循環,即可使用戶無法取出自己的資產,但這個問題并不會導致資金損失。攻擊流程如下:

前車之鑒

這是本月出現的第二個沒有經過審計的DeFi項目所暴露出的風險,根據YFValue的官方聲明(https://medium.com/),項目代碼是由富有經驗的開發者進行開發的,同時借鑒了其他成功的項目的代碼,但是仍無可避免的出現了風險。術業有專攻,安全審計一方面需要項目方的正向思維,另一方面,還是需要專業的安全團隊的逆向思維,從專業的黑客角度進行模擬對抗,發現問題。修復方案

通過分析代碼和漏洞細節,針對本次漏洞,修復方案也很簡單,只要在抵押的時候檢查用戶的抵押狀態是否為已經抵押,如果已經抵押,則不允許再次抵押。或者對每次的抵押進行單獨的處理,不能對先前的抵押狀態產生影響。

Tags:STASTAKSTAKE區塊鏈stader幣傳銷幣StakedZENMarinade staked SOL區塊鏈的未來發展前景作者是誰

Polygon
SHI:YUNO、KIMCHI這些仿盤已經沒有公平性了_BSHIBA幣

編者按:本文來自區塊律動BlockBeats,Odaily星球日報經授權轉載。當SushiSwap出現后,仿盤開始填滿幣圈,社區幣已經從稀有到泛濫,所有的項目都強調公平,強調自己的無VC,強調自.

1900/1/1 0:00:00
EFI:DeFi浪潮下,“跨鏈之王”波卡傳奇如何續寫?_DEF

2020年區塊鏈的上半程已經走完,比特幣減半、以太坊2.0、DeFi、Filecoin,熱點輪番上演.

1900/1/1 0:00:00
SWAP:壽司大廚Sushiswap揮刀Uniswap背后:或將消滅傳統VC_UNI

朋友們,想要了解最近大火的DeFi項目「壽司」Sushiswap嗎?不過在此之前,你必須先理解Uniswap。Uniswap是一個去中心化交易所,當然,你也可以把它看做是一個自動存取款機.

1900/1/1 0:00:00
OIN:Filecoin測試網獎勵落地,礦機售罄代幣暴漲,30天130個項目或引領市場_Zynecoin

8月25日,Filecoin官方宣布啟動測試網獎勵計劃。截止8月26日14時,新測試網已開采到區塊3845個,全網有效算力10.9PiB,24h平均挖礦收益7.51FIL/TiB,平均出快時間3.

1900/1/1 0:00:00
TAB:Deribit期權市場播報:0826 — 下方承壓_MetaBullish

比特幣價格下跌至11500美元附近,接近上月27日牛市剛剛啟動后的價格,低于期間大部分時間的價格.

1900/1/1 0:00:00
EFI:“DeFi暴富”行情已經結束?還是剛剛開始?_YEFIM

這一輪DeFi大潮來得很突然也來得很意外。它的引爆點是6月17日COMP治理代幣的上線,COMP上線后暴漲迅速帶起了整個DeFi圈內項目的發幣潮,而這些項目又引來投資人的熱捧.

1900/1/1 0:00:00
ads