以太坊價格 以太坊價格
Ctrl+D 以太坊價格
ads
首頁 > 幣贏 > Info

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

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支持的質押代幣池有以下幾個:

分析師PlanB:新技術將使舊技術變得無關緊要:金色財經報道,分析師PlanB在社交媒體上針對歐洲央行關于BTC的評論稱,比特幣對(中央)銀行的影響就像電子郵件對郵局的影響、互聯網瀏覽器對報紙的影響、mp3/mp4 對音樂和電影行業的影響。新技術將使舊技術變得無關緊要。BTC=不需要(中央)銀行進行貨幣供應管理、創建賬戶、交易。

金色財經此前報道,歐洲央行表示,比特幣既不適合作為支付系統,也不適合作為一種投資形式,因此在監管方面,它應該被視為不適合,因此不應該被合法化。[2022/12/1 21:15:27]

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

交通銀行郭莽:區塊鏈等新技術為支付清算產業數字化轉型提供了廣闊空間:9月24日消息,第九屆中國支付清算論壇在北京舉行,交通銀行股份有限公司副行長郭莽表示,數字時代以區塊鏈、人工智能、云計算、大數據等為代表的新技術正以前所未有的速度在塑造著新產業、新業態,為支付清算產業的數字化轉型提供了廣闊的空間。一是支付清算服務效能得到快速提升;二是支付清算服務范圍得到進一步延展。三是支付清算服務成本得以不斷降低。(新浪財經)[2020/9/24]

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

動態 | 新加坡金融管理局和迪拜金融服務管理局簽署金融技術合作協議:2018年8月29日消息,新加坡金融管理局(MAS)和迪拜金融服務管理局(DFSA)簽署了一項金融技術合作協議,允許兩家機構之間進行創新業務的推薦。該協議反映出兩國政府承諾支持金融科技和創新的持續發展,更好地管理風險、降低成本和提高效率。其中,兩國政府還同意就數字和移動支付、區塊鏈和分布式賬簿、大數據以及應用程序編程接口等關鍵技術的應用開展聯合創新項目。[2018/8/29]

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

Top100的代幣中92%代幣采用ETH作為底層技術發行:截至今日,在Top100的代幣中,絕大多數代幣采用ETH作為底層技術發行。基于NEO(小蟻)的token有3個,基于OMNI的token有3個,基于NXT(未來幣)的token有2個,其余92個token都基于ETH。[2018/2/3]

通過分析計算收益和領取收益的代碼,發現邏輯也很簡單,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:STASTAKSTAKEENSSatelStarstake幣在哪個交易所Defi Shopping StakeQUEENSHIBA

幣贏
比特幣:Kraken高管:比特幣目前正處于“牛市開始”的5個理由

編者按:本文來自Cointelegraph中文,作者:WILLIAMSUBERG,Odaily星球日報經授權轉載。比特幣正處于一輪長期牛市的“開始”,接受它的理由越來越明顯.

1900/1/1 0:00:00
USHI:SushiSwap鎖倉資金超過10億,YAM重演還是“咸魚”翻身

DeFi的火熱,DEX市場作為頭號玩家,在Uniswap上開始了“看看到底誰跑得快”的游戲。老韭菜還在糾結主流幣的按兵不動,隔岸的DeFi早已悄悄跨過100億美元總鎖倉量.

1900/1/1 0:00:00
LINK:歐科云鏈區塊鏈“天眼方案”推動鏈上安全系統再升級

歐科云鏈集團在助力區塊鏈安全的舉措持續深化。8月28日,全球領先的區塊鏈產業集團歐科云鏈宣布推出區塊鏈“天眼方案”,主要通過鏈上數據追蹤系統研發、對外技術支持、凝聚企業眾力等途徑,全面助力區塊鏈.

1900/1/1 0:00:00
ITA:海外周報|Ampleforth將于9月10日開啟第二輪挖礦計劃;SushiSwap控制權轉讓給FTX創始人SBF(8.31-9.6)

上周海外明星項目進展中值得關注的有:SushiSwap創始人ChefNomi宣布將控制權轉讓給FTX創始人SBF;Ampleforth將于9月10日開啟第二輪挖礦計劃;DeFi借貸協議bZx宣布.

1900/1/1 0:00:00
MPL:觀點:為什么AMPL永遠也成不了穩定幣?

編者按:本文來自觀鏈哥,Odaily星球日報經授權轉載。昨天和朋友討論ampl。這幣我之前沒研究,看了一兩篇文章,覺得這模式有點意思.

1900/1/1 0:00:00
UNI:Uniswap日成交量達4.58億美元,首次超過Coinbase

編者按:本文來自小吒閑談,Odaily星球日報經授權轉載。大姨夫在暴漲,AMPL回到正循環,YAM在爆拉,NXM也在暴漲……整個周末市場都非常瘋狂,一天翻倍,或者好幾倍,YFIYFII造就了很多.

1900/1/1 0:00:00
ads