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

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

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協議里是什么?

大銀行正在競購陷入困境的第一共和銀行:金色財經報道,一位知情人士告訴CNN,美國聯邦存款保險公司正在拍賣陷入困境的地區銀行第一共和銀行。最終競標將于美國東部時間周日下午4點截止(北京時間凌晨4點)。有關第一共和銀行買家的決定似乎可能會在周日晚些時候宣布。《華爾街日報》此前曾報道稱,摩根大通和PNC Financial等大型銀行可能參與競購第一共和銀行,美國聯邦存款保險公司將接管這家陷入困境的地區性銀行。[2023/5/1 14:36:34]

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

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

2.Mint和safeMint的差別

2.1?Mint是如何進行的

Mint?意思為鑄造,即每個NFT的創造過程,例如之前的愛死機NFT?當奈飛的NFT忘記了web2的業務安全

Mint?獲取到該NFT的資產證明。

從源代碼中可以看到,Mint?主要是進行了安全判斷:

Web3開發者Andre Cronje:DeFi將繼續存在:金色財經報道,著名的Web3開發人員Andre Cronje表示,他不認為DeFi的高收益“早已不復存在”,DeFi的增長幾乎為“零”。Cronje稱,“如果你繪制一張關于TVL、收益率和交易量的增長圖表,并將曲線拉平以避免振蕩,那么它就是一個清晰的線性增長圖表。在每一個可行的指標上,實際收益率和DeFi都大幅增長。正是那些在瘋狂時期誕生的項目成為了我們今天使用的主力產品。”

Cronje進一步表示,DeFi不需要新的敘述或“閃亮的新玩具”來運作。Cronje斷言,DeFi以及社交媒體、游戲、藝術、新聞等其他區塊鏈垂直領域將繼續存在。[2023/2/5 11:47:47]

判斷1:確保轉入的不是0x00地址

判斷2:確保此交易所操作的NFTID是不存在的

最終代碼執行的操作是:

操作1:將轉入地址的_balances?所持有總數加1

操作2:將對應?NFTID?的所有者修改為轉入的地址

操作3:完成交易則發出emit?事件,可以讓鏈下監聽到這次交易的數據

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

前CFTC主席:歐洲的加密法案將對美國加密行業產生威脅:金色財經報道,前商品期貨交易委員會 (CFTC) 主席 Chris Giancarlo 擔心歐盟快速發展的加密資產市場 (MiCA) 法案可能導致歐洲式加密監管的全球出口,從而對美國監管機構產生負面影響。有效地創建自己的規則的能力。Giancarlo表示,我們需要制定自己的框架,并且我們的框架需要明確指出,對于美國的活動,將有美國的監管,而不是來自歐洲的監管。我非常尊重歐洲,但他們的市場非常不同。

CFTC專員Caroline Pham表示,隨著美國努力為國內加密行業提供監管清晰度,像 MiCA 這樣的全球監管框架可以填補這一空白。一旦這些市場結構發生變化、轉變和硬化,所有巨額資金和資本投資進入這些新的市場結構,就很難將其改回來。(Coindesk)[2022/7/29 2:45:18]

2.2為何safeMint更安全

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

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

報告:CleanSpark是被嚴重低估的比特幣礦業股:7月24日消息,根據Arcane Research發布的研究報告,比特幣熊市已將礦業股估值推至谷底。根據其資產負債表和收入數據,最被低估的比特幣礦業上市公司是CleanSpark,EV / EBITDA(企業估值除以利息、折舊和攤銷前利潤)僅為2.9。CleanSpark幾乎沒有債務,甚至能夠利用熊市以非常低的價格訂購礦機。

Marathon是估值最高的礦業公司,EV/EBITDA為17.2。如果該公司能在2023年3月初實現23.3 EH/s的目標,其收入將增加,其EV/EBITDA可能是合理的。但如果他們沒有達到這個目標,其股票價值與同行相比可能被嚴重高估。

Stronghold的EV/EBITDA最低,為2.3,由于該公司背負巨額債務,因此其估值遠低于競爭對手是可以理解的。據悉,一般來說,低于10的EV / EBITDA被認為是健康的。[2022/7/24 2:34:47]

設計初衷可見:https://eips.ethereum.org/EIPS/eip-165

是讓合約接口標準化的提案,在編程語法中interface是接口的意思,在其中定義的函數可以不實現僅僅放上函數名字相關參數,在程序復雜的時候,相當于目錄一般告訴別人我都有什么功能。

但是接口的寫法各有千秋,名字定義參數類型,甚至是否存在都有不同,

所以此提案最終形成了ERC165標準,規范了接口的識別規則。

美國專利商標局和版權局就NFT對知識產權的影響展開研究:7月12日消息,美國專利商標局和版權局將啟動一項研究,研究NFT對知識產權的影響。今年6月,參議員PatrickLeahy和ThomTillis要求深入研究這一新興資產類別在知識產權方面可能產生的潛在影響。這兩個部門已經同意與Leahy和Tillis進行通信研究,并就制定行動計劃進行了初步討論,其中包括與熟悉NFT領域的各種利益相關者進行磋商。佛蒙特州和北卡羅來納州的兩位參議員最初提出的一系列議題將被考慮。這包括NFT未來應用的潛在知識產權挑戰、與轉讓NFT所有權相關的權利、許可權利和侵權以及授予NFT創作者的潛在知識產權等。(Cointelegraph)[2022/7/12 2:08:23]

使用流程是:

STEP1?判斷是否存在?supportsInterface?函數,并且其符合165標準

STEP?2通過?supportsInterface?函數,判斷是否具有轉出NFT的函數

3.交易時會發生什么?有哪些細節?

標準協議設計有兩種轉移方式,transfer?和?transferFrom,作用于兩種場景:

transfer轉移:由用戶調用,將本消息發送的錢包所持有的NFTID轉移到指定地址

transferFrom從轉移:用某機構調用,需要用戶先授權某地址,讓其有權可轉移。

類比一下:

transfer?就是現金交易,從自己口袋里拿錢支付

transferFrom?就是掃碼扣款,由店家申請扣款,受制于用戶是否開通小額代扣權限

接下來咱們從代碼來看看,其中可能有會意想不到的細節。

3.1?transfer?是如何進行的

他會檢測當前交易的?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源代碼中,來分析具體的消費量,代碼具體在函數內,太長了不全粘來:

func?gasSStore(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美金

真可謂寸土寸金!

來源:金色財經

Tags:NFTINTTRAGASLive NFT TokenFuture Of FintechTRAMSV1價格GasBlock

屎幣
金色觀察|三箭資本的迷局_ETH

三箭資本正處于迷局中心,傳言不斷。6月15日,三箭資本創始人ZhuSu發推稱,我們正在與有關方面進行溝通,并致力于將問題解決.

1900/1/1 0:00:00
Game World開啟數字化游戲娛樂商業新潮_數字人

近兩年,在元宇宙概念下的虛擬數字人崛起。演唱會、綜藝、代言、走秀、脫口秀、短劇、直播……“十八般武藝”的虛擬數字人吸引了數以億計流量的快速增加,以及智能手機和小飛機VR硬件的應用,虛擬數字人發展.

1900/1/1 0:00:00
上午牛市下午熊市 A股無視_SIS

美股最近在美聯儲超大幅度加息75個基點的影響下,非常動蕩。在加息落地前,歐美股市因預期恐慌而暴跌。在預期如期落地后,市場本以為是靴子落地了,一度賭漲,15日尾盤美股美債都強勁反彈.

1900/1/1 0:00:00
MEV 不止于 Crypto:價值提取無處不在_加密貨幣

介紹 2020年,戴安等人發布了一份論文,通過將焦點放在一個明顯的區塊鏈網絡安全性和穩定性問題上,震撼了加密貨幣世界:礦工可提取價值。簡而言之:特權參與者有能力從其他人的交易中獲利.

1900/1/1 0:00:00
「邀請新人領積分、得獎品」6月6日-6月12日獲獎結果公布_ENT

6月6日-6月12日邀請新用戶數量排名前十的用戶分別為:請以上獲獎用戶聯系金色財經客服,登記并領取獎勵。6月17日23:59前未聯系客服的視作放棄獎勵.

1900/1/1 0:00:00
比特幣也能有智能合約了?_以太坊

區塊藝術轉載了一篇國外的文章。人們強烈要求能夠在DeFi應用程序中使用比特幣,這反映在大多數智能合約平臺上都有WBTC和BTCB.

1900/1/1 0:00:00
ads