內容概要
粉絲反饋,他在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后的才能認為是資產,且一般用戶需要付gas
OpenAI CEO借CryptoPunk價格宣傳ChatGPT API:3月2日消息,OpenAI 首席執行官 Sam Altman 在社交媒體上發文表示,去年一枚 CryptoPunk #5822 NFT token 的價格為 2370 萬美元,而使用 ChatGPT 時,僅需 2 美元就可以購得 100 萬枚 token(ChatGPT 內字符單位)。
注:此處為諧音梗,二者 token 含義不同,Sam Altman 此說法旨在表達 ChatGPT API 收費合理。
據悉,OpenAI 于今日正式開放 ChatGPT API,本次開放的 API 背后模型定名為 gpt-3.5-turbo,實際功能與網頁版 ChatGPT 相同,價格僅為此前 GPT-3.5 的 1/10,每輸出 100 萬個 token 的價格為 2.7 美元(約合 18 元人民幣)。[2023/3/2 12:38:12]
1.4os的免費創造NFT服務是什么?
NFT上鏈成本高,標準ERC721的mint需要8W的gas,約5刀
NFT定制合約難,雖有標準但頂級NFT項目會定制且部分強化功能,例如azuki
因此,易用性一直就是市場的痛點,畢竟藝術家不是合約工程師,需更低成本的試錯來探索有價值的藝術品,官方也特別說明過
Yves La Rose:已完成EOS與UX Network之間首次Antelope IBC wrap代幣轉移:據官方消息,EOS網絡基金會創始人和首席執行官Yves La Rose表示,已成功完成EOS與UX Network之間首次Antelope IBC wrap代幣轉移。
此外還表示,“權限將很快更新為完全去中心化IBC協議,EOS的IBC時代即將到來”。[2023/1/17 11:16:04]
在opensea.io上create的NFT,符合ERC1155標準,即使是它們存在于鏈上之前,這些NFT也可以在任何平臺上出售,在交易時才上鏈鑄造
破案歷程
2.1案例來源
某粉絲很驚奇發現,自己確實可以在os上按流程進行create,但按官方說法此時是未上鏈的,但是他嘗試在小狐貍錢包里導入資產時發現,竟然已經可見,甚至嘗試導入一個自己未create的NFTID時也能導入成功,因此反饋我尋找技術維度的全貌解讀
2.2還原方式
1:os上createNFT得到合約地址與ID
2:小狐貍上開啟NFT檢測后,再手動添加收藏品,即出現SharedStorefront
Dolce&Gabbana、inBetweeners與UNXD在OpenSea上推出新的NFT Drip系列:金色財經報道,Dolce&Gabbana、inBetweeners與UNXD在OpenSea上獨家推出新的NFT Drip系列。該系列由GianPiero D'Allesandro設計,包含2,000只數字熊。每只熊都穿著21款獨特的 Dolce&Gabbana產品中的一款。更重要的是,持有者將獲得與他們的NFT相匹配的獨家 Dolce&Gabbana服裝和收藏品的實物印刷品。?[2022/12/10 21:35:07]
2.3調查不易
其實查詢資產是否上鏈是個非常容易的過程,用區塊鏈瀏覽器即可
見前文:當我們在看Etherscan的時候,到底在看什么?
但是由于此os的NFT共享商店的合約并沒有做驗證。所以無法直接看源碼查數據
但使用未經開源以及安全審計的合約,著實讓我這從事多年安全行業的職業強迫癥有些難受
如果真存在風險,其危害是巨大的
如果真未上鏈,小狐貍錢包去讀取中心化平臺數據?放在我的資產里?
如果真上了鏈,用戶無需gas,則可能官方付費上鏈,雷同羊毛有被攻擊風險
Open Earth Foundation在巴塞爾邁阿密海灘藝博會上出售OceanDrop NFT:12月2日消息,在巴塞爾邁阿密海灘藝術博覽會上,專注于氣候行動的技術平臺Open Earth Foundation正在進行OceanDrop NFT的銷售活動,此前該基金會通過CarbonDrop NFT銷售活動已募得約660萬美元。Open Earth Foundation執行董事Martin Wainstein表示,他們的目標是利用區塊鏈技術準確計算大氣中的碳含量,并達成保護30%海洋和30%陸地的全球協議。Wainstein稱,拍賣OceanDrop NFT所籌集的資金將用于一個名為“OpenOcean”的新項目,將為哥斯達黎加海岸外科科斯島的一個項目提供資金,支持當地非政府組織和公園護林員的行動。據悉,OceanDrop由SuperRare、DoinGud和RNDR等公司支持,正試圖推動NFT創新。出售的所有數字藝術品和動畫都將采用全息技術,如Portl。(CoinDesk)[2021/12/2 12:45:31]
未上鏈的資產,如產生沖突風險,那此NFT屬于誰的?
2.4小狐貍app抓包
首先咱們通過對照實驗做手機抓包,發現整體小狐貍會做的事情很多
委內瑞拉欲拉攏OPEC推聯合數字貨幣機制:據媒體報道稱,委內瑞拉即將開始預售其原油數字貨幣——“石油幣”(Petro);此外,在與歐佩克秘書長巴爾金都會面后,委內瑞拉總統馬杜羅表示,希望全球主要產油國建立發行數字貨幣的機制,他將向OPEC和非OPEC國家請提出正式提議,推出以石油為支撐的聯合數字貨幣機制,并表示巴爾金都對此想法非常熱心。委內瑞拉“石油幣”將于2月20預售,有批評認為其本質是政府債券,或面臨美國制裁風險。[2018/2/6]
拉取地址余額,交易,最新塊內容,指定地址合約字節碼等等
對數百個網絡包逐個分析后,發現其小狐貍會使用infura的eth-call方法,功能是查詢指定NFT合約中標準的balanceof方法
為何我如此肯定?此請求包里沒有balanceof呀?
咱們用實驗說話雙向校驗,標準的1155協議的標準函數名及參數為:
functionbalanceOf(address,uint256)
由于data構建指定函數調用,其生成Mothod-ID的原理是名字參數類型組合,因此他構建的call方法,data字段的開頭必然為00fdd58e
我輸入的要添加資產是123號,其data參數末尾對應是7b=(7*1611=123)也對應上。
同時發現其缺乏防重放的措施,所以我可以直接編輯參數
重發請求查詢其他NFT合約所有權來對比:
azuki:721標準,無得到0,有則非0
愛死機:1155標準,無得到0,有則得1
查os共享商店,修改參數尾數確實會得到值但意義不明
所以這里我得出的一大驚奇猜想是:
鏈上可查得NFT所有權的值,難道真的上鏈了嗎?
2.5鏈上交易統計
如果真上鏈其實也可以不由用戶支付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/decompile
metamask的NFT檢測功能說明:https://metamask.zendesk.com/hc/en-us/articles/360058238591-NFT-tokens-in-your-MetaMask-wallet
os共享商店合約地址:0x495f947276749ce646f68ac8c248420045cb7b5e
OS官方聲明:
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/
Tags:NFTOPENPEN小狐貍Nftt innovate swapBOpenSeaHIPENGUINSmetamask小狐貍錢包app
金色財經報道,Nexo聯合創始人兼管理合伙人AntoniTrenchev表示,Nexo不會遭遇與Celsius和VoyagerDigital類似的流動性危機,Nexo和他們完全不同.
1900/1/1 0:00:00?比特幣和山寨幣放棄了上周救濟性反彈的收益,而6月29日跌破20,000美元表明空頭有意將市場推回年度低點美國股市回吐了上周的部分漲幅,這將比特幣拉至20,000美元的心理支撐位.
1900/1/1 0:00:00KuCoinisextremelyproudtoannounceyetanothergreatprojectcomingtoourtradingplatform.
1900/1/1 0:00:00DeFi起步于2018年,蟄伏一年之后在2019年嶄露頭角,成為公認的DeFi元年。隨后,鏈上流動性的急劇增長讓2020年成為DeFiSummer,自此DeFi開啟爆發式增長.
1900/1/1 0:00:00尊敬的XT.COM用戶:XT.COM將於2022年7月1日08:00上線LINK/USDT和AXS/USDTU本位永續合約以及LINK/USD和AXS/USD幣本位永續合約.
1900/1/1 0:00:00親愛的CoinW用戶: CoinW將于2022/6/2919:00(UTC8)在ETF專區上線BTC6L/BTC、BTC6S/BTC、?ETH6L/BTC、ETH6S/BTC、LTC6L/BTC.
1900/1/1 0:00:00