iT邦幫忙

2022 iThome 鐵人賽

DAY 22
0

上篇回顧

昨天我們大致講解了BAYC的合約是如何運行,並發現了不少漏洞以及可以改進的地方。今天讓我們來把剩下的baseURI講完,以及解釋圖片到底存在哪裡吧!


setBaseURI()函式

https://ithelp.ithome.com.tw/upload/images/20221004/20152537OF2IiMl1wh.png
首先我們可以很明顯的發現這條函式是用來設定baseURI的值,但是這個值到底是甚麼?
讓我們切回Etherscan的Read Contract上,看看現在的baseURI值是多少...https://ithelp.ithome.com.tw/upload/images/20221004/20152537iZRz1Qkp1a.png
原來是一串網址! 而且後綴要填上BAYC的代幣號碼
那... 這又會導到哪裡呢? 讓我們把數值放入0搜尋看看
https://ipfs.io/ipfs/QmeSjSinHpPnmXmspMjwiXyN6zS4E9zccariGR3jxcaWtq/0
https://ithelp.ithome.com.tw/upload/images/20221004/20152537aEuDiy5REQ.png
得到了一個JSON格式的檔案,第一行有個命名為image(圖片)的資料,並提供了另一串IPFS網址
第二行裝的則是attributes(屬性),下面有不少部位的名稱像是背景、嘴巴、眼睛等等,並有對應的值
讓我們先打開image看看https://ithelp.ithome.com.tw/upload/images/20221004/20152537NcnGzEv677.png
果真是得到一枚BAYC代幣的圖片檔,且與剛剛JSON提到的屬性也都有所對應
讓我們回到OpenSea上面比對一下,確認與編號#0的BAYC一致
https://ithelp.ithome.com.tw/upload/images/20221004/20152537iYc78atUnp.png

而通常那第一串IPFS的連結就會被大家稱作Metadata,其意思就是「裝著某個資料的資料」
不過... IPFS到底是什麼呢?

IPFS

IPFS(星際檔案系統),是一套概念與區塊鏈相似的檔案儲存系統。其運作原理結合了多項技術,包括BitTorrentGitDHTSFS等,目的就是打造一個去中心化的儲存世界。與比特幣以太坊相似的是,所有人皆可上傳、查閱所有檔案,而特別協助儲存資料的用戶也可以獲得$FIL幣當作獎勵。
更詳盡關於IPFS的介紹可以參考這個影片,花10分鐘帶你了解其如何運作:

Yes

以太坊不能儲存圖片嗎?

到這裡一定會有人這樣問,為什麼不把圖片存在以太坊就好了?
其實是可行的,只是這並不符合以太坊原本的目標,所以大部分的資源都是集中在運算上而非儲存上,這也將導致你需要花費大量的gas fee,假設以太幣價格為$2000美元,大約每上傳1kb的資料就會花費你$20美元喔!


小結

這是解析智能合約的最終章了!恭喜大家知道目前市面上普遍的NFT項目及智能合約是怎麼運作的了,因為篇幅問題沒辦法依依跟大家講太細節,不過歡迎大家透過下面的參考資料DYOR喔!

<上一篇> [Day 21] 從BAYC猴子的智能合約 看懂背後運作原理(三)其實BAYC的合約有漏洞!
<下一篇> [Day 23] 新手也能創造NFT! OpenSea上手,3分鐘販賣你的NFT


參考資料:


上一篇
[Day 21] 從BAYC猴子的智能合約 看懂背後運作原理(三)其實BAYC的合約有漏洞!
下一篇
[Day 23] 新手也能創造NFT! OpenSea上手,3分鐘販賣你的NFT
系列文
NFT、區塊鏈、比特幣,這些到底是什麼?? 讓我們從頭認識這些酷東西吧! 發出屬於自己的NFT!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言