比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads
首頁 > 火幣APP > Info

源碼解讀:你買的NFT到底是什么?_INT

Author:

Time:1900/1/1 0:00:00

內容概要

如果你是WEB3加密界的新手,面對眾多概念無從入手,那么歡迎你,來對地方了!!本文圍繞標準ERC721協議,描述了Mint、safeMint、transfer等是如何實現資產管理的,并通過解讀代碼來了解它的安全性設計和以太坊數據上鏈成本構成。目錄大綱

1.所謂NFT資產是什么?2.Mint和safeMint的差別3.交易時會發生什么?有哪些細節設計4.NFT哪些數據也存儲在鏈上?5.以太坊上存儲有多貴?面向對象

Web3新手,有無技術背景均可:研發——可無障礙閱讀,理解精美的合約設計非研發——可能讀不懂列舉的代碼,但能體會標準協議的設計思路1.所謂NFT資產是什么?

在opensea上,可看到每個NFT都有個唯一的編號。比如azuki系列中第4132號,在頁面的Details欄目可以看到其合約地址,ID編號,部署所在公鏈等信息,而Properties欄目則是其設定的具備各種屬性,對應的稀有度。

1.1資產在標準ERC721協議里是什么?

而咱們回顧到源代碼,會發現程序記錄了全局性的兩個字典類型的變量,通過_owners中用數字映射地址的方式記錄每一個ID當前對應的所有者,同時也附帶用_balances記錄了當前所有者總計持有的NFT數量

環球音樂和谷歌正在就打擊AI深度造假交易進行談判:金色財經報道,環球音樂集團和谷歌正在就人工智能 (AI) 生成的歌曲中使用藝術家旋律和聲樂的許可進行談判。這些公司的目標是在音樂行業和大型科技公司之間建立合作伙伴關系,以應對人工智能生成的深度造假的猖獗出現。

由于大量使用音樂家肖像的“深度造假”,主流人工智能的使用引發了主要音樂行業領導者的擔憂。 人工智能生成的 Drake 和 Kanye West 的視頻在四月份左右開始瘋傳。

據報道,這兩個行業巨頭之間的討論仍處于開始階段,沒有即將推出的產品或指南。 消息人士稱,我們的目標是開發一種工具,用于合法創作具有正確版權歸屬的曲目。[2023/8/9 21:34:41]

并且由于ERC721創新性的賦予了一個ID對應地址的變量_owners,從而與ERC20僅_balances進行地址與余額的管理,區分出了FT與NFT的差別。2.Mint和safeMint的差別

2.1Mint是如何進行的

Mint意思為鑄造,即每個NFT的創造過程,例如之前的愛死機NFT當奈飛的NFT忘記了web2的業務安全Mint獲取到該NFT的資產證明。從源代碼中可以看到,Mint主要是進行了安全判斷:判斷1:確保轉入的不是0x00地址判斷2:確保此交易所操作的NFTID是不存在的最終代碼執行的操作是:操作1:將轉入地址的_balances所持有總數加1操作2:將對應NFTID的所有者修改為轉入的地址操作3:完成交易則發出emit事件,可以讓鏈下監聽到這次交易的數據

比特小鹿一季度總收入為7260萬美元:5月16日消息,吳忌寒旗下礦業公司比特小鹿Bitdeer公布2023年第一季度未經審計的財務業績和運營更新。根據該報告,比特小鹿第一季度總收入為7260萬美元,較2022年同期(9040萬美元)減少19.7%;凈虧損為950萬美元,而2022年同期為凈虧損960萬美元。2023年第一季度調整后利潤為280萬美元,而2022年同期為2560萬美元。

截止3月31日,比特小鹿總管理算力為18.3 EH/s,其中專有算力為5.7EH/s(自挖業務為3.9 EH/s,云算力業務為1.8 EH/s);托管算力為12.6 EH/s。自挖業務在2023年第一季度開采了552枚比特幣,而2022年同期為538枚比特幣。總部署礦機約196,000臺ASIC礦機,其中67,000臺用于自挖業務和云算力業務,129,000臺用于托管。2023年第一季度,公司五個采礦數據中心的總用電量約為992,700 MWH。(Globenewswire)[2023/5/16 15:04:56]

中間有_beforeTokenTransfer和_afterTokenTransfer屬于虛函數,作為標準,是讓項目方可以再不修改標準協議的情況下增加一些特定的邏輯代碼用的。2.2為何safeMint更安全

Mastercard與Solana、Ava Labs等公司合作制定新加密標準Crypto Credential:金色財經報道,Mastercard (萬事達卡)宣布在與公共區塊鏈開發商Aptos Labs、Ava Labs、Polygon和Solana Foundation合作制定一套新加密標準,將其稱為 Crypto Credential,以努力建立該行業消費者、企業和政府的信任。該公司表示,Mastercard Crypto Credential將建立一套通用標準和基礎設施,幫助證明使用區塊鏈網絡的消費者和企業之間的可信交互,此外, NFT 項目需要不同于發送或接收加密貨幣所需的驗證要求。[2023/4/29 14:34:12]

safeMint意為安全的鑄造,從代碼實現中可以看到他本身也是調用了MInt但是他額外增加了_checkOnERC721Received的判斷,這點是屬于ERC165的標準,相當于在完成轉入操作后,則判斷對方地址,是否是黑洞地址是防止轉入對象為合約地址時候,其合約沒有預設置好轉出的函數,導致資產在內無法被轉走,從而造成永久損失。

2.3ERC165是如何防止資產轉入黑洞的?

新世界:與多家銀行在新世界開展近10次數字貨幣試點,取得良好效果:金色財經報道,新世界4月7日披露投資者關系活動記錄表顯示,公司作為數字貨幣首批商業應用單位,與多家銀行在新世界開展了近10次數字貨幣的試點,取得了數字貨幣試點的良好效果。未來,新世界將持續發揮在商、旅、文、康、體多業態聯動的優勢,拓展在線經濟,吸納線上流量資源,整合創意思考,實現多方共贏,為打響上海購物品牌做出努力和貢獻。[2023/4/9 13:52:34]

設計初衷可見:https://eips.ethereum.org/EIPS/eip-165是讓合約接口標準化的提案,在編程語法中interface是接口的意思,在其中定義的函數可以不實現僅僅放上函數名字相關參數,在程序復雜的時候,相當于目錄一般告訴別人我都有什么功能。但是接口的寫法各有千秋,名字定義參數類型,甚至是否存在都有不同,所以此提案最終形成了ERC165標準,規范了接口的識別規則。

使用流程是:STEP1判斷是否存在supportsInterface函數,并且其符合165標準STEP2通過supportsInterface函數,判斷是否具有轉出NFT的函數3.交易時會發生什么?有哪些細節?

外媒:2022年烏茲別克斯坦政府向加密公司征收超30萬美元費用:2月4日消息,援引烏茲別克斯坦加密行業監管機構在新聞發布會上透露,獲得許可的加密公司已在2022年期間支付了35億烏茲別克斯坦索姆(超過310,000美元)。目前有五個加密平臺被授權在該國合法運營,國家控制的交易所Uznex和四個較小的交易所,Crypto Trade NET、Crypto Market、Crypto Express和Coinpay。

自去年10月以來,烏茲別克斯坦的加密貨幣服務提供商需要為其活動支付固定的月費,Uznex等加密貨幣交易所需支付10,000多美元,而較小的交易平臺(也稱為“加密貨幣商”)的 500美元左右之間。

此外,根據現行法律,在烏茲別克斯坦運營的與加密貨幣交易相關的個人和組織須納稅。[2023/2/4 11:47:14]

標準協議設計有兩種轉移方式,transfer和transferFrom,作用于兩種場景:transfer轉移:由用戶調用,將本消息發送的錢包所持有的NFTID轉移到指定地址transferFrom從轉移:用某機構調用,需要用戶先授權某地址,讓其有權可轉移。類比一下:transfer就是現金交易,從自己口袋里拿錢支付transferFrom就是掃碼扣款,由店家申請扣款,受制于用戶是否開通小額代扣權限接下來咱們從代碼來看看,其中可能有會意想不到的細節。3.1transfer是如何進行的

他會檢測當前交易的from方是否是此NFTID的持有者,并且限制該NFT轉入0x00地址。其次進行from轉出地址和to轉入地址的余額刷新,修改_balances全局變量并且重新設置_owners此NFTID的所有者地址修改為to。這里有個防護的細節會先執行_approve(address(0),tokenId);清空歷史授權,如果沒有這一步,則資產完成了轉移,但是其NFTID的轉移授權依舊在,細思極恐:

3.2transferFrom是如何進行的

這里的交易本質調用的是_safeTransfer所以他的核心邏輯是require部分,這的一大細節是:_msgSender()這是openzepplin的標準庫Context.sol中的方法。其實就是獲取當前交易的發送者地址,但這里使用了封裝版本,而不是直接使用msg.sender是考慮到,可能存在一種交易類型“元交易”,即交易的付費gas方和交易發起方不相同的情況。所以一些處于中間環節的,類似library的合約需要考慮這種特殊情況。其余部分判斷是確定是否有授權記錄,易于理解,不作贅述

4.還有哪些數據可擴展存儲在鏈上?

交易的環節也看完后,其實很多新同學也頓感奇怪,原來我買的NFT只有一個ID的歸屬地址指向了我,從而達成了唯一性。那就算如此,稀有度信息放在哪里?我的NFT圖像本身在那里?這就是涉及到ERC721的元數據拓展IERC721Metadata.sol要放什么都可以,但是項目方往往在鏈上只存儲最基礎的ID+IPFS的地址。咱們可以通過之前Etherscan教程方法來看看一些項目數據有什么?Azuki上合約地址是:0xed5af388653567af2f388e6224dc7c4b3241c544通過ReadContract可以查閱到,其元數據只存放了ipfs上的指向地址而近期興起的Metaverse項目元宇宙土地sandbox和****Decentraland,以及去年火熱的****AxieInfinity,基本鏈上存儲元數據也只是ID+網址。

像mirror那些是專門設計低費用可進行高存儲,一個塊常規都是30M起步,大約是以太坊的1000倍。5.以太坊上存儲有多貴?

這里是本文稍難的地方。咱們從源碼來分析鏈上存儲的成本構成以及金額換算成本產生將有2個方面,按執行流程來看用戶發起一筆交易,將要寫鏈上數據作為參數傳入,其大小是一筆成本交易執行合約代碼,依據修改和使用,EVM計算消耗的gas成本。5.1交易發起的成本

咱們可以核對下以太坊黃皮書,里對交易數據大小所消耗gas有清晰的定義

可以看到交易所附帶的參數的價格:每筆交易都有21000GAS需要支付為交易的每個非零字節數據或代碼支付68GAS為交易的每個零字節數據或代碼支付4GAS所以如果是再Mint的時候,登記上若干NFT屬性信息,交易的data部分會將abc等字符轉成2個十六進制表示,而每個字符為一個八位二進制,等于一個byte。所以可以約等于將data的長度除以2作為byte數。而1kb的數據,如果都是非0的有信息量的文本信息,則等于增加是68*1000=6.8W的gas消耗。按20gwei的gas價格和2000的eth兌換美元價格,可以估算出,每上鏈1kb數據在交易發起端就要:20*(21000+68000)*1e9/1e18*2000=3.5美金5.2合約存儲的成本

由于交易發起后,還有智能合約上存儲的邏輯,咱們從以太坊go源代碼中,來分析具體的消費量,代碼具體在函數內,太長了不全粘來:funcgasSStore(evm*EVM,contract*Contract,stack*Stack,mem*Memory,memorySizeuint64)(uint64,error)歷史上GAS消耗的估算有經過若干迭代,如果是Petersburg或者Constantinople未激活的話,則不按下面邏輯進行計算gas消耗計算,依賴3個種數據的管理形式從零值地址到非零值,每個存儲槽需消耗2Wgas從非零值地址到零值地址,每個存儲槽需消耗5Kgas,但會有獎勵1.5Wgas退回從非零到非零,每個存儲槽需消耗200gas注意,上述每一個存儲槽算32byte,1kb存儲則是32個存儲槽。Mint的過程是新增存儲,所以如果新增1kb的數據存儲在鏈上代價將是64Wgas,換算成金額則是:20*(640000)*1e9/1e18*2000=25美金真可謂寸土寸金!前文回顧

EIP-5058能否防止NFT項目方提桶跑路?當我們在看Etherscan的時候,到底在看什么?當奈飛的NFT忘記了web2的業務安全

Tags:NFTINTTRAGASFirst Ever NFTArtificial Intelligence Technology NetworkXTRA幣UGAS-JUN21價格

火幣APP
全面解析DeFi抵押借貸生態系統的現狀和未來展望_EFI

超額抵押借貸是加密貨幣中最流行的借貸形式之一。對于需要接觸新資產的個人來說,這是一個很好的選擇,他們不需要出售他們目前的倉位.

1900/1/1 0:00:00
IOSG Ventures:Web3元宇宙需要自炒底料的火鍋店_ENT

一條美食街上開著三家店:一家是開了幾十年的川菜館,廚師用經過時間驗證的手藝親手為你準備上質量穩定的美味;第二家是剛開沒多久的炸串小店雖然前幾口挺好吃,但都知道吃多了會拉肚子;第三家是個火鍋店.

1900/1/1 0:00:00
公然將NFT交易金融化,iBox鏈盒正在「鋌而走險」_BOX

財聯社|區塊鏈日報5月19日訊,5月17日晚,因iBox鏈盒平臺上數字藏品價格大幅度下跌,iBox鏈盒沖上微博熱搜前十.

1900/1/1 0:00:00
一周融資速遞 | 47家項目獲投;已披露融資總額約為6.6億美元(5.30-6.5)_TUR

經Odaily星球日報不完全統計,當周公布的海內外區塊鏈融資事件共47起,較前一周有一定增加;已披露融資總額約為6.6億美元,較前一周有一定下降.

1900/1/1 0:00:00
ConsenSys:以太坊測試網簡史_TEN

測試網絡是模擬區塊鏈主網的替代網絡,其創建目的是為了測試和試驗主網區塊鏈的功能,以減少實際運行式產生的錯誤,例如真實資金的損失.

1900/1/1 0:00:00
Celer IM,跨鏈互操作的最優解?_CEL

隨著多鏈格局的日漸穩固,用戶對于跨鏈互操作性的需求已上了新的臺階,順應著市場需求的變化,越來越多的項目開始超越單純的資產跨鏈,向著更高維度的消息跨鏈領域探索.

1900/1/1 0:00:00
ads