內容概要粉絲反饋,他在opensea無gas免費創建的NFT資產,竟能出現在小狐貍錢包里,而opensea官方聲明的此NFT在正式交易前是未上鏈鑄造的,這就很奇怪,中心化應用的資產出現在為去中心化應用服務的錢包里,到底是官方代付gas上鏈還是烏龍,隨我一文揭曉!目錄大綱
1.背景簡述2.破案歷程2.1小狐貍網絡抓包2.2鏈上的交易統計2.3合約反編譯分析3.破案總結面向對象Web3新手,有無技術背景均可理解此文解密過程背景簡述
1.1opensea是什么?
全球最大的公鏈NFT交易平臺,也是目前除以太坊鏈底層外營收最大的web3平臺,下文簡述為os
1.2NFT是什么?
可見前文:你買的NFT到底是什么?1.3NFT鑄造是什么?
可見前文:當奈飛的NFT忘記了web2的業務安全大意是,只有在鏈上Mint后的才能認為是資產,且一般用戶需要付gas1.4os的免費創造NFT服務是什么?
NFT上鏈成本高,標準ERC721的mint需要8W的gas,約5刀NFT定制合約難,雖有標準但頂級NFT項目會定制且部分強化功能,例如azuki
Open Campus回應Token解鎖前轉移:已全部返還,仍于每月28日解鎖:5月26日消息,Web3 教育協議 Open Campus 發推稱,我們注意到,一些 EDU 在 5 月 25 日被轉移到一個不同的鎖定錢包,比預定的 5 月 28 日提前。沒有代幣被出售。我們深表歉意,因為這不應該發生,我們對在社區中造成的焦慮感到抱歉。代幣已經返回到它的原始錢包,并將根據每月 28 日的釋放時間表進行解鎖。團隊代幣的一次性解鎖期為 2 年,釋放期為 3 年(共 5 年)。我們在這里是為了長期發展,我們要再次感謝所有支持。我們對這個錯誤感到抱歉,并將確保今后避免類似的情況。
其中,流動性部分已返還 4,166,667 枚 EDU,生態系統基金已返還 4,947,917 枚 EDU,財庫部分已返還 3,958,333 枚 EDU,早期貢獻者部分已返還 11,250,000 枚 EDU,Operational Expenses部分已返還 715,863 枚 EDU,戰略銷售部分已返還 4,333,333 枚 EDU,顧問部分已返還 5,166,667 枚 EDU,團隊部分已返還 2,777,778 枚 EDU。總計 37,316,558 枚 EDU。[2023/5/26 9:44:35]
OpenSea已接受ApeCoin(APE)作為支付方式:4月30日消息,據 OpenSea 官網顯示,OpenSea 已接受 ApeCoin ( APE ) 作為支付方式。[2022/4/30 2:41:45]
因此,易用性一直就是市場的痛點,畢竟藝術家不是合約工程師,需更低成本的試錯來探索有價值的藝術品,官方也特別說明過在opensea.io上create的NFT,符合ERC1155標準,即使是它們存在于鏈上之前,這些NFT也可以在任何平臺上出售,在交易時才上鏈鑄造破案歷程
2.1案例來源
某粉絲很驚奇發現,自己確實可以在os上按流程進行create,但按官方說法此時是未上鏈的,但是他嘗試在小狐貍錢包里導入資產時發現,竟然已經可見,甚至嘗試導入一個自己未create的NFTID時也能導入成功,因此反饋我尋找技術維度的全貌解讀2.2還原方式
1:os上createNFT得到合約地址與ID2:小狐貍上開啟NFT檢測后,再手動添加收藏品,即出現SharedStorefront
2.3調查不易
易凱資本官方22周年特別紀念版數字藏品正式發行并已上架OpenSea:金色財經報道,易凱資本官方正式發行22周年校友會特別紀念版數字藏品,本套數字藏品包括22款經典款和“5+1”隱藏款,共計發行1102個,其中經典款707個,隱藏款395個。除了贈與易凱校友、現同事們,易凱資本還為投資人和合作伙伴們預留了100個稀缺的隱藏款藏品。據悉,這套數字藏品已上架OpenSea。[2022/4/27 5:13:49]
其實查詢資產是否上鏈是個非常容易的過程,用區塊鏈瀏覽器即可見前文:當我們在看Etherscan的時候,到底在看什么?但是由于此os的NFT共享商店的合約并沒有做驗證。所以無法直接看源碼查數據但使用未經開源以及安全審計的合約,著實讓我這從事多年安全行業的職業強迫癥有些難受如果真存在風險,其危害是巨大的如果真未上鏈,小狐貍錢包去讀取中心化平臺數據?放在我的資產里?如果真上了鏈,用戶無需gas,則可能官方付費上鏈,雷同羊毛有被攻擊風險未上鏈的資產,如產生沖突風險,那此NFT屬于誰的?2.4小狐貍app抓包
首先咱們通過對照實驗做手機抓包,發現整體小狐貍會做的事情很多拉取地址余額,交易,最新塊內容,指定地址合約字節碼等等
The Block新聞負責人:OpenSea未出現漏洞,黑客利用釣魚郵件發起攻擊:2月20日消息,據The Block新聞負責人 Frank Chaparro 轉發 Cyphr.ETH 推文稱,黑客使用了標準網絡釣魚電子郵件復制了幾天前發生的正版 OpenSea電子郵件,然后讓一些用戶使用 WyvernExchange 簽署權限。OpenSea 未出現漏洞,只是人們沒有像往常一樣閱讀簽名權限。
今日有消息稱,多位用戶發現 OpenSea 昨日推出的新遷移合約疑似出現 Bug,攻擊者正利用該 Bug 竊取大量 NFT 并賣出套利,失竊 NFT 涵蓋 BAYC、BAKC、MAYC、Azuki、Cool Cats、Doodles、Mfers 等多種高價值系列。
OpenSea 官方隨后作出回應,「我們正在積極調查與 OpenSea 智能合同有關的傳聞。這看起來像是來自 OpenSea 網站外部的網絡釣魚攻擊。不要點擊opensea.io 之外的任何鏈接。[2022/2/20 10:03:29]
對數百個網絡包逐個分析后,發現其小狐貍會使用infura的eth-call方法,功能是查詢指定NFT合約中標準的balanceof方法為何我如此肯定?此請求包里沒有balanceof呀?咱們用實驗說話雙向校驗,標準的1155協議的標準函數名及參數為:functionbalanceOf(address,uint256)由于data構建指定函數調用,其生成Mothod-ID的原理是名字+參數類型組合,因此他構建的call方法,data字段的開頭必然為00fdd58e我輸入的要添加資產是123號,其data參數末尾對應是7b=(7*16+11=123)也對應上。同時發現其缺乏防重放的措施,所以我可以直接編輯參數重發請求查詢其他NFT合約所有權來對比:azuki:721標準,無得到0,有則非0愛死機:1155標準,無得到0,有則得1查os共享商店,修改參數尾數確實會得到值但意義不明所以這里我得出的一大驚奇猜想是:鏈上可查得NFT所有權的值,難道真的上鏈了嗎?2.5鏈上交易統計
匿名用戶在OpenSea發布“魷魚游戲”相關NFT:10月12日消息,OpenSea上一位名為9194C0的用戶創造了近2000個與Netflix熱門劇集“魷魚游戲”有關的NFT,其中一些交易價格超過1枚ETH。這些NFT復制了劇中出現的邀請主角加入“魷魚游戲”的卡片。OpenSea上的描述稱,每張卡片都是“進入冒險而神秘的元宇宙游戲的邀請”,這表明創作者可能會開發一個非品牌的“魷魚游戲”元宇宙。然而,關于元宇宙或游戲的細節還不得而知。據悉,OpenSea的用戶一旦支付了gas費用,就可以免費領取這些NFT,但用戶已經進行了交易,有些NFT價格超過一枚ETH。此外,該開發者的OpenSea賬戶并未透露與Netflix或電視劇制作方有任何關聯。韓國版權委員會表示,發行由他人離線創建或擁有的NFT有可能侵犯版權。但是,韓國目前還沒有專門規定NFT侵權的法律。(Forkast)[2021/10/12 20:23:41]
如果真上鏈其實也可以不由用戶支付gas,有種“元交易”的技術手法,就是交易發起方和gas支付者不同的形式,并且openzepplin里特地有個content合約就是用于額外支持元交易產生的msg.sender可能特殊化的問題但是,我通過對此合約的鏈上交易數據統計,抽取23號一天出現的交易頻率可見下圖,都證明了好像并沒有固定由官方發起的元交易類型交易
2.6破局得靠合約反編譯
由于官方沒有驗證合約,導致分析起來費勁多了,但可通過合約反編譯來大致摸清邏輯如果只是openzepplin的標準1155庫進行反編譯的話,行數是170行但是此1155則反編譯后是1000行,因此必然有較多自定義實現反編譯后整體是吻合1155的數據標準
但是也顯著有不是標準數據部分
由于鏈上數據讀取返回了結果,所以重點分析balanceOf函數,他整體實現用了30多行,這是很明顯重寫了原先的標準函數
由于os他依舊是沿用標準,所以他的兩個參數是固定的可以理解為:Varg0=待查詢NFTid所有權的用戶地址varg1=待查詢的NFTID數字從反編譯程序里看邏輯,他會讀取待查地址的_balanceOf總余額數,以及此NFTID是否被_creator等等
最關鍵的一句address(varg1>>96)!=varg0由于反編譯不會完全按照solidity的語法,所以原本不支持的位移運算符就出現了不講復雜的,總之這里將varg1的其中一部分,和varg0做比較這也意味著,原來此NFT的ID包含了用戶的地址我頓然醒悟,寫個進制轉換,將我在os上create得到的NFTid傳入,解密得出
這個數值也和我在小狐貍抓包看到的data后半段內容是一致這里還可以繼續研讀代碼來挖掘細節比如balanceOf返回結果為2個值,會審計編號是否會超出_totalSupply限定發行量比如safeTransferFrom專門設置_mint防重放攻擊,在其中若未mint則進行首次鑄造在解讀出NFTID的組成后,我也頓時明白此合約的核心邏輯了此ID由3部分構成,用戶地址+系列編號+指定ID,這也意味著無論我鑄造多少次,前xx位都是固定的,即我的錢包地址轉為10進制而已,而他查詢的balanceof函數也因為我前綴統一,從而判別我是未鑄造前的所有者,因此理論上我的鑄造空間極其大。因此小狐貍確實能導入,因為前綴一致,balanceof在沒有所有者的情況下,會默認依據此NFTID對應的空間的所有者返回結果,如果發生鑄造轉移,也有合約中配套的owner_a和_creator來證明這個創作者和當前所有者的關系。至于為何小狐貍能出現NFT圖,這點是他官方聲明過的設置,出于讀取更多維度的描述說明、稀有度、原圖uri等信息,且用戶可關閉這個錢包去查詢os中心化數據庫的功能。
破案總結
小狐貍是無辜的,他只是用標準方法走infura讀取鏈上數據而已,并沒有特別加工并修改返回數據os不去驗證合約,有一定自我市場競爭保護的目的,但是不能阻擋妙手玩家對合約分析,卻給不少用戶帶來無法證明資產所有的困境最終,確實其NFT資產在交易轉移前未被鑄造上鏈,但由NFTID定義的空間已經被特殊設計可查得余額結果,所以理論上其他交易平臺也可買賣此NFT附錄:gas價格圖:https://etherscan.io/gastracker反編譯平臺:https://library.dedaub.com/decompilemetamask的NFT檢測功能說明:https://metamask.zendesk.com/hc/en-us/articles/360058238591-NFT-tokens-in-your-MetaMask-walletos共享商店合約地址:0x495f947276749ce646f68ac8c248420045cb7b5eOS官方聲明:https://support.opensea.io/hc/en-us/articles/1500003082561-Will-ERC-1155-NFTs-appear-in-my-wallet-https://opensea.io/blog/announcements/introducing-the-collection-manager/前文回顧
你買的NFT到底是什么?EIP-5058能否防止NFT項目方提桶跑路?當我們在看Etherscan的時候,到底在看什么?當奈飛的NFT忘記了web2的業務安全
比特幣在2022年經歷了有史以來最殘酷的一次下跌,價格在2021年達到68000美元的峰值之后,于今年6月跌破20000美元.
1900/1/1 0:00:00NFT數據日報是由Odaily星球日報與NFT數據整合平臺NFTGO合作的一檔欄目,旨在向NFT愛好者與投資者展示近24小時的NFT市場整體規模、交易活躍度.
1900/1/1 0:00:00https://blog.cloudflare.com/cloudflare-outage-on-june-21-2022/)補救和后續步驟本次服務終端事件造成了廣泛且嚴重的影響.
1900/1/1 0:00:00Odaily星球日報譯者|念銀思唐 摘要: -比特幣游戲初創公司Zebedee完成3500萬美元B輪融資。-《最終幻想》發行商SquareEnix是這家初創公司的新支持者之一.
1900/1/1 0:00:00據TheBlock報道,今年3月AxieInfinity側鏈Ronin跨鏈橋被攻擊導致5.4億美元資產被盜的起因,是AxieInfinity的員工接收并下載了一份PDF文檔形式的招聘offer.
1900/1/1 0:00:00過去幾個月,Solana之上的NFT市場迎來了大爆發,伴隨著交易量的水漲船高、新用戶的持續增長、優質項目的逐漸累積,Solana生態現已坐穩了第二大NFT生態之位,雖然在體量上較以太坊仍有差距.
1900/1/1 0:00:00