一文解析 xPet 專案的安全風險

封面:xPet

最近,一款名為 xPet 的鏈游在推特平臺上迅速走紅,有人形容這個專案像 Web3“牛皮癬” 般病毒式傳播,其關注人數和用戶數也呈現快速增長的趨勢。 xPet 是一款結合遊戲和社交的早期專案,在僅僅上線兩周的時間就吸引了大量使用者的注意力。 得益於 GameFi 賽道的回暖和 xPet 的機制設計,xPet 目前存入了 2785 個 ETH(約 658 萬美元),成為近期備受關注的專案。 同時,與之相關的安全問題同樣不可忽視,為了説明用戶瞭解其中的潛在風險,Beosin 安全團隊今天將對 xPet 的設計機制和合約代碼進行詳細分析,揭示其中存在的安全隱患。

xPet 機制分析

xPet 是一款基於 Arbitrum 構建的寵物遊戲,其玩法結合了 Tipcoin 與此前在 Base 鏈爆火的 Fren Pet,通過餵養寵物進行升級、獲利。 xPet 與此前類似專案的不同點在於 xPet 是以瀏覽器外掛程式形式推出的,通過綁定推特進行登錄,後續的遊戲獎勵任務也是與推特完全綁定。

官網: https://www.xpet.tech/

目前的遊戲內容主要為餵養寵物、升級工廠、刷推特做任務獲得寶箱。 參與 xPet 的遊戲使用者首先需要將自己的寵物升級,因為寵物的等級需要到達 7 級才能生產 $Berry,$Berry 可以在工廠中轉換成 $BPET 進行獲利。 而升級寵物需要支付 xPet 的兩種代幣中的一種:$XPET 或者 $BPET,在遊戲初始時,使用者需要存入 ETH 進行抵押,借出 $XPET($XPET 與 $BPET 可以進行 1:1 的轉換)或者在 XPET-ETH 交易池購買 $XPET。 遊戲經濟系統的設計如下圖所示:

source: Beosin

xPet 合約分析

xPet 的主合約為 ERC1967 可升級合約。 其代理合約位址為

0x1B0D12879960A768D02bd223ef735D4231a15348,

其邏輯合約位址為

0xcD4420B70e2669De8dE9d62dd7fEa4D19b320768。

$XPET 代幣合約位址為

0x00cbcf7b3d37844e44b888bc747bdd75fcf4e555$BPET

代幣合約位址為

0x6daf586b7370b14163171544fca24abcc0862ac5

本次我們通過 Beosin VaaS 工具掃描該合約,結合 Beosin 安全審計專家的分析,發現 xPet 相關合約存在以下潛在的安全風險

Beosin VaaS

xPet 主合約

xPet 主合約主要負責 ETH 與 $XPET 的借貸邏輯,但主合約為可升級合約,專案方並未對該可升級合約中的邏輯合約進行開源,無法檢測其邏輯合約是否有邏輯錯誤或潛在風險。

對於可升級合約的安全,Beosin 建議:1. 初始化合約與依賴項開發者可能會在部署合約時忘記初始化合約和依賴項,導致合約存在嚴重漏洞。 2. 注意存儲衝突升級合約時修改存儲可能會導致不同版本合約之間的存儲衝突,不同的變數可能指向同一存儲位置,導致數據錯誤和資金損失。 3. 注意許可權開發者需對合約的升級許可權進行限制,避免攻擊者獲得合約升級的控制權。

$XPET 代幣合約

$XPET 代幣合約繼承 ERC20 和 AccessControl 合約,有以下潛在風險:

1. 中心化風險合約將部署者設置為管理角色,這是一個中心控制點。 如果部署者的帳戶遭到洩露,這將會帶來巨大風險。 2. 代幣可訪問性

由於合約將所有代幣鑄造給自己,因此調用 withdraw 函數和 convert 函數是將代幣轉移的唯一方法。 這種設計集中了代幣的流動。

3. 合約未對 withdraw 和 convert 兩個函數設置事件建議這兩個函數設置為被調用時發出事件,以便進行外部監聽並追蹤相關信息。

$BPET 代幣合約

與 $XPET 代幣合約類似,其單點風險不容忽視:1. 中心化風險

該代幣合約將合約部署者設置為管理員和鑄造者,這將權力集中在部署者手中,如果部署者的位址遭到洩露,這可能會帶來嚴重的安全風險。

2. 鑄造無上限

convert 函數對可鑄造的代幣數量沒有限制。 如果部署者決定鑄造過多的代幣賣出獲利,這將會導致代幣價格暴跌。

EagleEye 對於 BPET 鑄幣風險提醒

3.  角色管理

合約未實現撤銷或轉移角色的功能。  如果合約需要轉移擁有權或鑄幣者因任何原因需要被移除,這可能會成為潛在的安全問題。

其它風險

除了合約風險外,由於 xPet 需要使用者在推特進行帶有「xPet」文字的評論才能獲得遊戲獎勵,目前推特中已出現大量包含 xpet 的無關回帖,引發眾多推特博主的不滿。 推特的開發者協議規定禁止使用推特相關開發者產品產生垃圾資訊。 如果 xPet 被推特禁用,目前其遊戲玩法將徹底暫停。

推特開發者協定:https://developer.twitter.com/en/developer-terms/policy

總結

xPet 專案的核心邏輯合約未開源,兩種代幣的合約中心化風險明顯,對於鑄造新代幣未進行特別的許可權限制,使用者需要注意相關風險。 部分合約代碼可以進一步提升安全性。 在此之前,市場已出現過多次 GameFi、SocialFi 的熱潮,用戶應當做好資金管理和項目調研,在充分了解項目的風險後理性參與

免責聲明:作為區塊鏈資訊平臺,本站所發佈文章僅代表作者及嘉賓個人觀點,與 Web3Caff 立場無關。 文章內的資訊僅供參考,均不構成任何投資建議及要約,並請您遵守所在國家或地區的相關法律法規。