時間:2022-02-09|瀏覽:488
1月24日,OpenSea多名用戶的NFT過期低價買入,快速高價轉(zhuǎn)售,受影響NFT資產(chǎn)包括Bore Ape Yacht Club、CoolCats、CyberKongz等等。其中一個Bore Ape Yacht Club 以0.77 ETH的舊價格被購買,并在一小時內(nèi)以84.2 ETH轉(zhuǎn)售。該NFT持有人在推特上表示,他最近沒有0.77 ETH以這個價格出售NFT。
交易頁面顯示,名稱jpegdegenlove的 OpenSea 賬戶操作這些低買高賣的賬戶NFT,截至1月25日凌晨,以太坊錢包價值超過74萬美元ETH。
攻擊者可以成功「狙擊」別人的NFT,源于OpenSea的NFT「銷售列表」取消功能被忽略。世界上最大的NFT在交易平臺上,NFT掛單人真正撤單必須支付Gas取消銷售列表,否則即使掛單在前端UI不顯示,鏈條仍然有效,仍然可以以原來的掛單價格在其他平臺上購買。
DeFi開發(fā)者yakirrotem解釋說,攻擊者可以在早期掛售時保存用戶鏈上的簽名列表,這是公開的,可以被看到API抓取,過期低價購買用戶NFT。這個Bug一旦被攻擊者利用,他人的NFT它將被收入囊中,然后轉(zhuǎn)售。
截至發(fā)稿前,OpenSea沒有用戶損失和「銷售列表」公開回應前端問題。
用戶 NFT 過期價受到攻擊者低買高賣
「OpenSea一個錯誤允許人們以舊價購買Ape。這只Ape以 0.77 ETH40 分鐘后,以84的價格購買.2 ETH 轉(zhuǎn)售價格。」1月24日,一些類似的推文提示OpenSea用戶,盡快自己做NFT從未有過資產(chǎn)轉(zhuǎn)移OpenSea上簽名過NFT錢包里的銷售。
一枚Ape NFT以0.77 ETH低吸后高賣
低價買入,高價賣出。NFT不僅涉及Bore Ape Yacht Club還包括項目Mutant Ape Yacht Club、CyberKongz 和 Cool Cats 等NFT項目。
「伙計們,為什么我的 Ape 只賣 0.77 (ETH)?」推特用戶T_BALLER6是受害者之一,他在推特上說他最近沒有把這個Ape 以 0.77 ETH售價。
另一個名字叫維特ToastVirtual的NFT收藏家還說,周一醒來發(fā)現(xiàn)他Ape舊掛單價格 6.66 ETH 被售出,「這只Ape 錢包之間沒有轉(zhuǎn)移?!?br>從OpenSea從交易記錄頁面可以看出,低吸高賣的賬戶名為jpegdegenlove,該賬戶在幾個小時內(nèi)不斷以舊價格購買多個知名賬戶NFT,然后以高價出售。區(qū)塊鏈安全機構(gòu) Peckshield 相關(guān)推特公布了攻擊者的地址并提醒,OpenSea有一個前端問題,攻擊者 的前端問題ETH。根據(jù)事發(fā)當時ETH報價2256美元,332 ETH約74萬美元。
收藏家的NFT為什么會以過期的低價買走?
有推特用戶附圖回答問題,OpenSea和另一個NFT交易平臺Rarible兩者之間有,「假如你沒有OpenSea上正確地刪除NFT掛單,這個問題就會被利用?!?br>答疑圖片顯示,如果賣掛售一張NFT商品,后來決定刪除掛單,所以正確的方法是付款Gas如果用戶為了省錢而取消費用Gas費用,只是簡單的NFT盡管轉(zhuǎn)移到不同的以太坊地址OpenSea不顯示前端掛單,但應該NFT被發(fā)送回原始地址后,它仍然可以Rarible上被購買。
OpenSea的這個「前端問題」事實上,它已經(jīng)以回答用戶問題的方式出現(xiàn)在其幫助中心的頁面上。「如何取消或調(diào)低?NFT清單的價格」一問中,OpenSea答復,「請注意,轉(zhuǎn)移NFT清單不會自動取消。NFT在轉(zhuǎn)移到新錢包之前,取消列表。這確保了列表不能通過OpenSea實現(xiàn)……取消列表需要付款Gas只有這樣,其他用戶才能不使用費用NFT。」
這樣,人們就可以低價買走了NFT很可能有些用戶沒有執(zhí)行取消掛單的操作,導致被攻擊者使用。
如何在 OpenSea 避免「未撤單」疏漏?
OpenSea「銷售列表」取消留下的功能「空子」去年12月底披露,規(guī)模爆發(fā)后用戶資產(chǎn)受損。
推特名為「yakirrotem」的DeFi開發(fā)者、NFT因此,收藏家將OpenSea評價為NFT世界的「過時產(chǎn)品」,「它緩慢,用戶體驗糟糕,用的是舊的智能合約代碼,這讓你支付了更多的Gas費用對交易者不利,他們?nèi)匀缓芪kUBug。」
yakirrotem羅列OpenSea根據(jù)運行模式,平臺為了節(jié)省Gas費用,采用鏈下呈現(xiàn)價格,鏈上操作簽名交易,「當你列出一個待售(或出價)項目時,你簽署的數(shù)據(jù)證明你愿意以這個價格出售你NFT,保存簽名OpenSea鏈下數(shù)據(jù)庫。當有人想買你的時候NFT在轉(zhuǎn)讓之前,他會發(fā)送給他的智能合同,但這一步的簽名和銷售信息是在鏈上驗證的。」
yakirrotem強調(diào),當用戶取消列表時,需要執(zhí)行交易,「你可能會問『為什么』,原因是有人可能會保存你以前的簽名清單,因為它是公共的,比如Rarible平臺甚至OS API(都可以抓取),以后用。即使你的掛單來自UI刪除了頁面,但事實上,只有鏈上交易才會保存你取消交易的事實。即使有人試圖使用你之前簽署的數(shù)據(jù),鏈上驗證也會拒絕交易。」
另外,以前掛單的NFT將錢包轉(zhuǎn)移回列出,也不會阻止這個錯誤,「除非你確保取消之前的所有清單,否則重新列出也幫不了你。
NFT收藏家圖解OpenSea前端問題
「Rarible這樣的網(wǎng)站會保存舊的列表,現(xiàn)在攻擊者可以使用這些信息進行銷售,因為OpenSea智能合同認為這種銷售是有效的?!箉akirrotem指出,OpenSea另一個大問題是他們沒有一次性訂單簿,「所以,如果你在六個月前創(chuàng)建一個訂單,然后在四個月前創(chuàng)建另一個訂單,即使你在一天內(nèi)取消它,第一個訂單仍然有效,盡管它在那里UI頁面上看不見?!?br>此次「漏洞」造成用戶NFT被攻擊者「狙擊」之后也有一些聲音認為是用戶自己保管的NFT而在yakirrotem看來,OpenSea這些問題并非不可解決,因為最近另一個問題出現(xiàn)了NFT交易平臺LooksRare支持用戶一次性取消所有訂單,「即使你不知何故忘記取列表,這也可以確保你(的資產(chǎn))更安全。」
如何復查自己的NFT舊掛單取消了嗎?
yakirrotem介紹,用戶可以登錄Rarible平臺檢查之前的列表是否還在,「但是,如果你想要100%的安全,那就把你的NFT轉(zhuǎn)移到另一個從未在過的地方OpenSea貨架上的錢包里。」