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

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

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

印度電信巨頭Bharti Airtel收購區塊鏈技術初創公司Aqilliz戰略股份:2月24日,印度電信巨頭Bharti Airtel宣布已經收購了區塊鏈初創公司Aqilliz的戰略股份,具體財務細節未透露。Airtel的目標是在其快速增長的廣告技術(Airtel Ads)、數字娛樂(Wynk Music和Airtel Xstream)和數字市場(Airtel Thanks App)產品中大規模地部署Aqilliz的區塊鏈技術。(NDTV)[2022/2/24 10:13:22]

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

聲音 | 中央政法委秘書長:深化區塊鏈技術在政法公共服務領域的應用:中央政法委秘書長陳一新12月16日主持召開中央政法委秘書長學習會,傳達學習中央經濟工作會議精神,研究部署貫徹意見。他強調,以深化政法智能化建設為牽引,大力推進智慧城市、“互聯網+政法服務”、智慧法律服務、智慧機關建設,深化區塊鏈技術在政法公共服務領域的應用,為經濟發展提供普惠均等、便捷高效、智能精準的政法公共服務,著力營造便捷高效的服務環境。(部)[2019/12/16]

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

動態 | 焦作市住房公積金管理中心將在信息化建設中采用區塊鏈技術:據焦作日報報道,市住房公積金管理中心將在信息化建設中采用區塊鏈技術,給數據質量提出了更高的標準。[2019/8/7]

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

聲音 | 平安金融壹賬通副總經理:金融壹賬通將繼續保持在區塊鏈技術上的優勢:平安金融壹賬通副總經理邱寒表示,未來一段時期內,金融壹賬通仍然會保持在云技術、區塊鏈、人工智能上的優勢,加大人才引進、前沿科技研發和國際化發展戰略,形成真正的B端優勢。[2018/7/19]

通過分析計算收益和領取收益的代碼,發現邏輯也很簡單,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區塊鏈NFT2StakeBreakout StakeStakerDAO區塊鏈技術是什么

火幣APP下載
DEF:DeFi熱潮居高不下,美國SEC對此有何看法?_defibox幣價格

編者按:本文來自區塊律動BlockBeats,Odaily星球日報經授權轉載。隨著DeFi市場的持續火爆,一些美國SEC專員接受了采訪并表達了他們對于去中心化金融的看法.

1900/1/1 0:00:00
DEFI:新手如何參與DeFi項目?_Defigram

我對DeFi的長遠投資價值是很看好的,最近也發了不少文章希望大家關注DeFi。但是我也要強調的是這個領域并不一定適合所有的投資者,尤其對剛進入這個領域的新手投資者,有一些問題要注意.

1900/1/1 0:00:00
比特幣:放量震蕩探底,短期市場進入修復期_NMA

2020年第36周區塊鏈二級市場報告2020年8月31日-2020年9月8日本期報告重點內容:本周大盤走勢:放量震蕩探底.

1900/1/1 0:00:00
6PR:嘉楠Q2財報:營收利潤增長,三季度向好,但富達已全部清空_數字人民幣與區塊鏈

8月21日嘉楠發布了二季度財報,顯示二季度凈收入1.78億元人民幣,環比增長1.6倍,二季度毛利潤4330萬元人民幣,環比增長17倍,調整后的2020年第二季度凈虧損為1600萬人民幣.

1900/1/1 0:00:00
DEFI:DeFi崩盤?_Rebellion Protocol

這幾天加密貨幣價格暴跌,尤其是ETH/TRONDeFi板塊的幣種,暴跌幅度在60%以上的幣種一大把,用南宮遠大佬的話說就是:9月4日,比特幣、以太坊帶頭崩.

1900/1/1 0:00:00
DEFI:對話:合格投資人門檻降低?我們和資深投資人聊了聊SEC的新規_LeisurePay

就在上周的8月26日,美國證監會SEC出臺新規。其中最重要的,就是新的《證券法》修改了對于「合格投資人」的定義.

1900/1/1 0:00:00
ads