比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads

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

Author:

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

安全性設計和以太坊數據上鏈成本構成。目錄大綱

NFT資產是什么?

2.Mint和safeMint的差別

4.NFT哪些數據也存儲在鏈上?

面向對象

Web3新手,有無技術背景均可:

研發——可無障礙閱讀,理解精美的合約設計

非研發——可能讀不懂列舉的代碼,但能體會標準協議的設計思路

公鏈等信息,而Properties欄目則是其設定的具備各種屬性,對應的稀有度。

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

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

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

富邦香港CSO:虛擬銀行成功試點證明香港金管局“金融科技2025”方向正確:金色財經報道,前眾安銀行行政總裁、現任富邦銀行(香港)執行副總裁兼首席策略官許洛圣接受采訪時表示,虛擬銀行“由零開始”可以自定方向,從監管角度,香港金管局公布“金融科技2025” 策略時,第一個范疇為全面推展銀行數字化(all banks go FinTech),他認為虛擬銀行成功作出試點,反映這個方向正確,所有銀行都應該采納。(信報)[2023/8/1 16:12:13]

2.Mint和safeMint的差別

2.1?Mint是如何進行的

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

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

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

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

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

最終代碼執行的操作是:

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

Huobi回應商標訴訟:有權自由使用Huobi Global Limited商標:6月21日消息,Huobi 就“李林控制的 X-Spot 就商標侵權起訴 Huobi Global”發表回應稱:

1、Huobi Global Limited在全球很多的法律管轄區中擁有商標使用權,因此有權自由使用。

2、Huobi Global Limited的注冊地并非香港。香港地區的商標使用權取決于香港的法律法規。

3、目前我們尚末正式收到任何法院的受理通知,對于該訴訟并未得到詳細的了解。我們會積極溝通。

據此前吳說獨家報道,李林控制的X-Spot有限公司今天在香港特別行政區高等法院起訴火必(Huobi Global Limited)商標侵權。早先在孫宇晨封鎖李林弟弟賬戶并指責其傾銷HT后,火必開始重新使用“火幣”商標。(panews)[2023/6/21 21:52:34]

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

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

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

“無聊猿”BAYC交易總額突破26億美元,過去一年增長160%:金色財經報道,據cryptoslam數據顯示,“無聊猿”BAYC交易總額已突破26億美元,截至目前達到2,605,577,588美元,交易總量為34,580筆,買家超過1.2萬個,當前地板價為71 ETH。

歷史數據顯示,BAYC交易總額于2022年1月4日突破10億美元,這意味著在過去一年內交易總額增長超過16億美元,漲幅達160%。[2022/12/31 22:17:51]

2.2為何safeMint更安全

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

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

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

福布斯:SBF對Alameda情況并非一無所知:12月4日消息,《福布斯》雜志近日發文披露2021年1月采訪SBF的信息,彼時SBF向《福布斯》展示其個人資產的記錄表格,并數次更新和解釋,包括Alameda交易一部分SOL、從幣安處回購部分FTX股份等。

《福布斯》雜志表示,雖然該表格并不能表示SBF對Alameda的所有活動均有了解,但也并非如其所說的那樣一無所知。原三箭資本創始人Su Zhu對此發推補充,SBF在今年7月也知道自己必須設計對BlockFi和Voyager的虛假救助,還密切參與了Voyager拍賣,甚至知道Alameda無法將自己的5億美元貸款歸還給Voyager,“他在那個月的行為非常離奇”。[2022/12/4 21:20:54]

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

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

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

FTX前COO:不知道任何轉移客戶資金的事情,個人資產都在FTX上:11月15日消息,針對加密 KOL Autism Capital 發布的關于包括 FTX 前 COO Constance 在內的前員工的各種傳聞,FTX 前 COO Constance 進行了回應與澄清,其表示:

看到我們的前雇員在推特上散布關于我個人的不真實的謠言,最終還是感到很傷心和難過。我和這個事件沒有關系,在上周二之前我也毫不知情。我所做的只是盡力在事后提供幫助,我不想放棄我在過去 3 年中為之付出的公司,所以我真的試圖拯救它。

我想澄清的是:

1/我不知道任何轉移客戶資金的事情,也不了解 Alameda 的交易及其與 FTX 的安排。

2/我負責 BD,增長和市場營銷,直到最后一刻,我和我的團隊都在用自己的名譽來捍衛 FTX,看到這樣的事情發生,我們感到非常失望。

3/我和 Sam 沒有任何私人關系,在過去 3 年,我非常努力地建設公司和團隊,我不認為這次的失敗是由于我們的交易所業務沒有做好。

4/Conch Shack 是公司財產,不是送給我的,我和其他員工一起住在 Conch Shack。

5/像你們很多人一樣,我所有的資產都在 FTX 上,現在都沒了,我在其他交易所沒有任何資產。

6/我非常傷心,而且我個人也被員工們分享的這些不實之詞傷害了,我會暫停發布新的工作招聘貼,直到完全恢復過來,但我還是會在其他人 DM 我時把簡歷發送過去。[2022/11/15 13:07:46]

使用流程是:

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

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

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

錢包所持有的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的合約需要考慮這種特殊情況。

其余部分判斷是確定是否有授權記錄,易于理解,不作贅述

IPFS的地址。

咱們可以通過之前Etherscan教程方法來看看一些項目數據有什么?

Azuki上合約地址是:0xed5af388653567af2f388e6224dc7c4b3241c544

通過ReadContract可以查閱到,其元數據只存放了ipfs上的指向地址

而近期興起的Metaverse項目元宇宙土地sandbox和****Decentraland,以及去年火熱的****AxieInfinity,基本鏈上存儲元數據也只是ID網址。

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

用戶發起一筆交易,將要寫鏈上數據作為參數傳入,其大小是一筆成本

交易執行合約代碼,依據修改和使用,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*(2100068000)*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美金

真可謂寸土寸金!

前文回顧

EIP-5058能否防止NFT項目方提桶跑路?

當我們在看Etherscan的時候,到底在看什么?

當奈飛的NFT忘記了web2的業務安全

Tags:NFTINTGASMINCLOCK Vault (NFTX)Spintopgas幣最新消息英文名gemini好俗氣

比特幣交易
XT.COM關於恢復XRP鏈上代幣充提的公告_COM

尊敬的XT用戶: XRP錢包升級維護已完成,現已恢復所有XRP鏈上代幣的充值與提現業務。暫停期間給您帶來的不便,敬請諒解.

1900/1/1 0:00:00
Coinbase:加密市場持續低迷的真正原因_COI

本文來自Coinbase,原文作者:ConnorDempsey,由Odaily星球日報譯者Katie辜編譯。金融市場本質上是一個巨大的信息處理機器.

1900/1/1 0:00:00
玩法全新升級!即刻加入元海爭霸做元宇宙領航人_BLO

在凜冬將至言論盛行的當下,除了躺平,現金為王的選擇之外,瞄準優質資產,積累籌碼才是迎接未來牛市行情的最佳姿態!為了保障玩家權益,元海爭霸正在進行全面升級,現在,就加入航海之旅.

1900/1/1 0:00:00
斐波那契回撤-趨勢分析系列[1]_OIN

基本信息 斐波納契回撤理論,是股票上也常到的經典理論之一,是建立在兩個端點間的趨勢線。斐波納契回撤理論是斐波那契LeonardoFibonacci發現的數字邏輯推論,即每一個隨后的數據是前兩個數.

1900/1/1 0:00:00
NFT數據日報 | Otherdeed在過去24小時內最受巨鯨歡迎(6.23)_ENS

NFT?數據日報是由Odaily星球日報與?NFT?數據整合平臺NFTGO.io合作的一檔欄目,旨在向NFT愛好者與投資者展示近24小時的NFT市場整體規模、交易活躍度、子領域市占比.

1900/1/1 0:00:00
Reward Distribution of “Deposit & Trade LUNA to Share $100,000!”_OIN

DearKuCoinUsers,Thankyouforyoursupport,weareveryproudtoannouncethattheLUNArewarddistributionforth.

1900/1/1 0:00:00
ads