广告管理-1170PX*80PX
当前位置:主页 > 区块链 >

首發 | Uniswap上的代幣項目跑路?NUGS合約漏洞分析

本文由Certik安全研究團隊授權,在金色財經首發。

編者按:上線Uniswap的小型代幣項目NUGS疑似“跑路詐騙”,項目方將這一舉動歸咎於“智能合約漏洞”。CertiK安全研究團隊就這一合約漏洞進行的研究。

首發 | Uniswap上的代幣項目跑路?NUGS合約漏洞分析

大家在學生時代是否有過這樣的經曆:

考試的時候把較難的題都做對了,卻因為簡單的題丟了分。

老師經常說,那些拿滿分?的好學生,都是既抓住了難題,同時也沒放過簡單的題目。

北京時間8月11日,CertiK安全研究團隊發現基於以太坊的代幣項目NUGS出現安全問題,其智能合約中存在安全漏洞,致使其代幣係統出現巨額通脹。由於該智能合約的安全漏洞無法被修複,因此最終NUGS項目官方發布公告決定放棄該項目,存入其中的代幣也無法被取出。官方公告如下圖:

首發 | Uniswap上的代幣項目跑路?NUGS合約漏洞分析

CertiK安全研究團隊研究NUGS項目部署的智能合約,發現其安全漏洞存在於doLottery和_doLottery這兩個函數中。

根據其智能合約的功能分析,NUGS代幣項目是一個類似於彩票抽獎的係統。

項目參與者向該智能合約中存入資金,這些資金會匯入當前彩票抽獎輪次的獎池中。然後每當經過一段時間後,智能合約會允許外部調用者調用下圖中的doLottery函數來抽取當前彩票抽獎輪次的贏家,決定這個贏家的條件是這位外部調用者的地址以及當前彩票抽獎獎池中的獎金總量。而這位外部調用者會收到一部分獎金作為“開啟”彩票抽獎獎池的獎勵。

首發 | Uniswap上的代幣項目跑路?NUGS合約漏洞分析

從上圖中可以發現,通過第15行代碼可以獲得當前彩票抽獎獎池中的獎金數額。第20~22行代碼顯示,一部分獎金會獎勵給外部調用doLottery函數的用戶,這位用戶也就是實際上的此次彩票輪次的“開獎嘉賓”。然後在25~28行中,扣除獎勵給外部調用者的獎勵之後的剩餘獎金會被發送給本輪彩票的贏家。之後本輪彩票的開獎階段結束。

該智能合約出現的問題在於:當在一次彩票抽獎完成後,彩票池中的獎金額沒有被清零,導致了下一次彩票輪次開時,彩票池中依舊有上一次彩票池中獎金的數額, 也就是彩票獎池中的初始獎金額會被錯誤的設置為上一次彩票抽獎結束後獎池中的最終獎金數目,而正確的初始獎金額應該為“零”。

每一次開獎時的獎金額都會被記錄傳遞到下一次抽獎的初始獎池中,這樣就會最終導致彩票池中的獎金越來越多,從而造成代幣通脹並飛快貶值。

首發 | Uniswap上的代幣項目跑路?NUGS合約漏洞分析

由於智能合約的一旦上鏈就無法更新的特性,使得NUGS項目官方無法將漏洞修複,因此只能選擇將該項目遺棄。

該事件中智能合約的的安全漏洞較為簡單易懂,屬於專業智能合約開發者通常不會出現的錯誤。整個項目都建立好了,卻因為一道“簡單題”丟了分。而智能合約的項目一旦“丟分”,整個項目的命運都將被改變。

因此,CertiK安全團隊建議:任何代幣項目使用的智能合約都需要經過嚴謹的安全驗證之後再上鏈。如果否則一旦出現錯誤就極易產生不可挽回的損失。建立一個項目要花費不少的人力物力,甚至要攻克各種“疑難雜症”。在簡單問題上栽了跟頭,而將整個項目徹底下架也令人唏噓。如果在交卷前,一個專業的導師能夠幫助項目檢查一遍“試卷”,把握好難題的正確同時也確保簡單問題不會出現任何閃失,那麼誰不希望有這樣的專業人士來把關呢?

©免責聲明和風險提示:本文是用戶自行發布以及轉載,不代表币安网任何觀點,如有任何形式的轉載請聯係原作者。文章中的所有內容均不構成币安网任何的投資建議及意見、立場,請您根據自身評估做出理性決策。币安网僅提供網絡存儲空間服務,如文章侵犯到您的合法權利,請您聯係币安网。

  • 关注微信

猜你喜欢

微信公众号