xPET 爆火的背后,其設(shè)計機制和合約代碼存在哪些安全漏洞?
撰文:Beosin
編譯:Luccy,BlockBeats
編者按:近日,xPET 代幣 XPET 上漲引發(fā)社區(qū)熱議,這不僅得益于代幣登陸 CEX 的利好以及與 OKX 合作的推進,也受官方更新的白皮書內(nèi)容影響。12 月 28 日,XPET 迎來了新高。據(jù) Bitget 行情數(shù)據(jù),XPET 突破 3 美元,較開盤價漲幅超 200%。
Beosin 是一家區(qū)塊鏈安全公司,目前已審計了超過 3000 個智能合約專案,幫助來自以太坊、EVM 相容鏈、Solana、Near、EOS、aelf 等區(qū)塊鏈平臺發(fā)現(xiàn)并修復(fù)了多個中高風險安全漏洞。Beosin 在本文中深入分析了 xPET 在 Web3 領(lǐng)域的病毒傳播現(xiàn)象,從安全的角度審視了 xPET 項目的核心邏輯合約、代幣合約及其潛在風險,BlockBeats 將原文編譯如下:
最近,在 Twitter 平臺上,一款名為 xPET 的基于區(qū)塊鏈的游戲迅速走紅。有人形容這個項目像是一種「Web3 病毒」,迅速增加了關(guān)注者和用戶數(shù)量。xPET 是一個早期的項目,結(jié)合了游戲和社交元素,在推出僅兩周內(nèi)就引起了巨大關(guān)注。由于 GameFi 行業(yè)的復(fù)蘇和 xPET 獨特的機制,該項目在最近成為了備受矚目的話題,吸引了 2785 ETH(約合 650 萬美元)的存款。
然而,與之相關(guān)的安全問題不容忽視。為了幫助用戶了解潛在的風險,Beosin 安全團隊將對 xPET 的設(shè)計機制和合約代碼進行詳細分析,揭示其中存在的安全漏洞。
xPET 機制分析
xPET 是一款建立在 Arbitrum 上的寵物游戲,結(jié)合了 Tipcoin 和之前在 Base 鏈上廣受歡迎的 Fren Pet 的元素。游戲玩法涉及通過喂養(yǎng)寵物進行升級和盈利。xPET 的獨特之處在于它采用了瀏覽器插件的形式,要求通過 Twitter 身份驗證進行登錄,并在隨后的游戲獎勵任務(wù)中實現(xiàn)與 Twitter 的完全集成。
https://www.xPET.tech/
目前,游戲內(nèi)容主要圍繞著喂養(yǎng)寵物、升級工廠以及完成 Twitter 任務(wù)以獲取寶箱展開。玩家必須將寵物升級到第 7 級,以生產(chǎn) Berry,這可以轉(zhuǎn)換為 BPET 以獲取利潤。升級寵物需要支付 xPET 的兩個代幣之一,即 xPET 或 BPET。用戶最初需要以 ETH 作為抵押,借入 xPET(可與 BPET 以 1:1 兌換),或者從 xPET-ETH 交易池購買 xPET。游戲的經(jīng)濟系統(tǒng)設(shè)計如下圖所示:
來源:Beosin
xPET 合約分析
xPET 的主要合約是一個 ERC1967 可升級合約。
代理合約地址為: 0x1B0D12879960A768D02bd223ef735D4231a15348,
邏輯合約地址為: 0xcD4420B70e2669De8dE9d62dd7fEa4D19b320768。
xPET 代幣合約地址為: 0x00cbcf7b3d37844e44b888bc747bdd75fcf4e555,
$$XPET 代幣合約地址為 0x00cbcf7b3d37844e44b888bc747bdd75fcf4e555,$$BPET 代幣合約地址為: 0x6daf586b7370b14163171544fca24abcc0862ac5。
通過 Beosin VaaS 工具和 Beosin 安全審計專家的分析,已經(jīng)識別出 xPET 相關(guān)合約中的潛在安全風險:
https://vaas.beosin.com/
xPET 主合約
主合約負責處理 ETH 和 xPET 的借貸邏輯。然而,由于主合約是一個可升級合約,而且項目未公開此可升級合約中的邏輯合約,因此無法檢測邏輯合約中潛在的邏輯錯誤或風險。
在可升級合約的安全性方面,Beosin 提出以下建議:
初始化合約和依賴項,開發(fā)者在部署過程中可能忽略對合約和依賴項的初始化,從而導(dǎo)致嚴重的漏洞。
解決地址存儲沖突,在合約升級過程中修改存儲可能導(dǎo)致不同版本之間的沖突,引發(fā)數(shù)據(jù)錯誤和財務(wù)損失。
管理權(quán)限,開發(fā)者應(yīng)當限制升級權(quán)限,以防止攻擊者掌控合約升級。
xPET 代幣合約
xPET 代幣合約繼承了 ERC20 和 AccessControl 合約,存在潛在風險:
中心化風險,該合約將部署者指定為管理員角色,形成一個中心化的控制點。攻擊部署者的賬戶會帶來重大風險。
代幣可訪問性,該合約集中了代幣流動,因為所有代幣都被鑄造到合約自身。這種設(shè)計使得代幣流動變得中心化。
提款和轉(zhuǎn)換功能缺乏事件,在調(diào)用這些功能時應(yīng)發(fā)出事件,以進行外部監(jiān)控和跟蹤。
BPET 代幣合約
xPET 代幣合約類似,BPET 代幣合約存在一個無法忽視的單點風險:
中心化風險,該合約將部署者指定為管理員和鑄造者,集中了權(quán)力。攻擊部署者的地址可能導(dǎo)致嚴重的安全風險。
無上限鑄幣
轉(zhuǎn)換功能缺乏對可鑄幣數(shù)量的限制。如果部署者決定過度鑄造代幣以謀求利潤,可能導(dǎo)致代幣價格急劇下跌。
角色管理,合約缺乏吊銷或轉(zhuǎn)移角色的功能,如果需要進行所有權(quán)轉(zhuǎn)移或移除鑄造者,可能存在潛在的安全問題。
其他風險
除了合約風險之外,xPET 還面臨與 Twitter 上的垃圾信息有關(guān)的問題。由于 xPET 要求用戶在 Twitter 上發(fā)布帶有「xPET」一詞的評論以賺取游戲獎勵,導(dǎo)致出現(xiàn)了大量無關(guān)的帖子包含「xPET」,引起了許多 Twitter 用戶的不滿。
Twitter 的開發(fā)者協(xié)議禁止使用與 Twitter 相關(guān)的開發(fā)者產(chǎn)品生成垃圾信息。如果 Twitter 禁用了 xPET,其依賴于 Twitter 集成的游戲玩法將完全停止。
https://developer.twitter.com/en/developer-terms/policy
結(jié)論
xPET 項目的核心邏輯合約仍然是封閉源代碼,而且兩個代幣合約都存在明顯的中心化風險。用戶應(yīng)當注意相關(guān)風險,而通過一些合約代碼的改進可以提高安全性。在此之前,市場已經(jīng)見證了 GameFi 和 SocialFi 的多個趨勢。建議用戶明智管理資金,并在充分了解項目風險后以理性的方式參與。