【區塊鏈知識】一文讀懂甚麼是 NFT 與代幣 | ERC-20/ERC-721/ERC-1155

更新於 2022/04/28閱讀時間約 10 分鐘

前言

在上一篇文章中,我們先提了以太坊的基礎協議,還有 EIP 與 ERC 是甚麼,那這一篇文章我們就來更深度解析在區塊鏈的世界中最常見的三種代幣協議 ERC-20 、 ERC-721 、 ERC-1155 吧,這當中包含現在最紅的 NFT ,我們在較早的時候曾經從應用層面去嘗試理解甚麼是 NFT ,那在這篇就會是更進階的,讓你更瞭解 NFT 背後的代幣協議是如何被定義出來的。

一、ERC-20 代幣 | Fungible Token

所謂的 ERC-20 就是一般會在交易所看到的代幣,又稱為 Fungible Token 同質化代幣,這種代幣就像是新台幣與美元那樣,你的1000元鈔票與我的1000元鈔票基本上是一樣的,就算我們今天交換了彼此的鈔票,它的價值也不會有變化,我們仍然可以用不同的鈔票去超商購買1000元等值的商品。
在區塊鏈的世界中發行的代幣,通常最小單位不會是1顆代幣,例如以太坊中的通用貨幣以太幣的最小單位稱為「wei」,它代表的價值是10的負18次方顆以太幣,也就是說一顆以太幣可以被分割為 1,000,000,000,000,000,000 wei ,這就像美元底下還有一美分的硬幣,它的價值是0.01美元,所以一美元可以被分割為100美分。
對於 ERC-20 有了基本認識之後,我們可以往下看看官方文檔如何定義它,網址是:https://eips.ethereum.org/EIPS/eip-20
ERC-20 最重要的觀念大概是要知道,當代幣需要被轉移時,都要告訴智能合約「誰 (From)」要轉帳「多少錢 (Value)」「給誰 (To)」這三個參數。

二、ERC-721 代幣 | Non-Fungible Token, NFT

沒錯!ERC-721 就是傳說中的 NFT ,中文是非同質化代幣,我們之前只從應用面介紹過它,然而它也是一種代幣協議,我們看到的這些 NFT 本質上還是一個代幣,與 ERC-20 不同之處在於每個代幣在生成時都會被賦予一個獨一無二的 ID,就因為這個 ID 不同,導致每個 NFT 雖然都是出自同一個合約之中,價值卻不相同的情況,就好像學校的制服一樣,起初販賣的時候可以被當作 ERC-20 同質化代幣的概念,每一件制服都是一樣的,不過當這些制服分發到學生手上後,他們就必須在上面刻上自己的學生編號,自此之後每一件衣服都是 ERC-721 非同質化代幣的概念,你的制服與我的制服不再相同,甚至如果是學校風雲人物的制服,搞不好價值會比其他同學的制服還要高,這就是非同質化代幣的概念。
對於 ERC-721 有了基本認識之後,我們可以往下看看官方文檔如何定義它,網址是:https://eips.ethereum.org/EIPS/eip-721
不管在最重要的 轉帳交易(Transfer) 或 授權(Approval) 等 Event 與 ERC-20 最大的差別就是都要多帶一個 ID 的參數,這個 ID 就像上面舉製服的例子一般,你要知道自己的 NFT 編號為多少,在轉帳時告訴智能合約「誰 (From)」要把手上 「ID 編號多少的 NFT (tokenId)」 轉帳「給誰 (To)」,這個例子可以清楚的看到不需要告訴智能合約要轉出多少個 NFT 了,因為不需要填入「Value」的參數,換句話說一次只能轉出一個 NFT。

三、ERC-1155 代幣 | Multi-Token (Semi-Fungible Token)

自從非同質化代幣開始運作後,開始有人發現如果我要同時鑄造幾千幾萬份 NFT 的話,使用 ERC-721 就要跟著呼叫智能合約幾千幾萬次,每一次的使用都算是一筆鏈上交易,而這麼多筆交易在以太坊上轉帳可不便宜,一個新的 NFT 專案光是鑄造費就燒光光了。
如果是常見的 PFP (Profile Picture)或具有通行證賦能之類的 NFT 可能硬著頭皮還是鑄造的出來,但要如果你是玩過遊戲的就會知道,通常遊戲在遊玩過程中玩家通常會無止境的產出與消耗遊戲道具,這樣看來區塊鏈遊戲相關的開發商如果要走遊戲道具去中心化這條路,讓這些遊玩過程中可以被無止境產出與銷毀的遊戲道具上鏈,自行負擔會是相當大的成本,轉嫁給玩家的話恐怕玩家們都玩不起離開了…
於是在這樣的情況下,出現了 ERC-1155 代幣,它是可以一次性鑄造一堆一模一樣的代幣,但又保有 ID 的概念,這樣講蠻抽象的,這裡用一般法幣舉個例子應該就會很清楚,新台幣最常見的面額有 1、5、10、20、50 元的硬幣,在 ERC-1155 裡面,我們可以定義 ID 為 1 的代幣為一元硬幣、ID 為 2 的代幣為五元硬幣、ID 為 3 的代幣為十元硬幣以此類推,當央行想要鑄造一萬顆一元硬幣時,就只要對呼叫智能合約鑄造 ID 為 1 的代幣一萬個,這樣的呼叫方式就類似於鑄造 ERC-20 代幣,可以一次將所需要的代幣數量鑄造出來,不用像 ERC-721 那樣一個一個鑄造,但同時同一個合約底下又可以透過不同 ID 的切換,鑄造出不同的代幣出來,我想這就是為甚麼 ERC-1155 代幣會被稱為 Multi-Token 或 Semi-Fungible Token (半同質化代幣)了吧。
對於 ERC-1155 有了基本認識之後,我們可以往下看看官方文檔如何定義它,網址是:https://eips.ethereum.org/EIPS/eip-1155
實際要轉帳 ERC-1155 代幣時,需要告訴智能合約「誰 (From)」要把手上「多少個 (Value)」「ID 編號為多少的 NFT (tokenId)」轉帳「給誰 (To)」,從這個例子就可以明顯的看出本質上 ERC-1155 代幣與 ERC-721、ERC-20 的差別在於,每個操作動作同時會有 ID 又有 Value 的概念,要注意它還增加了「Batch」的觀念,可以將不同 ID 不同數量的 NFT 打包在一起發送,這大大地減輕了轉帳交易的手續費負擔。

四、如何大略看懂 EIP 官方文檔的內容

基本上對於智能合約開發者而言,我們最需要注意的是它有哪些 Event 以及哪些 Function,以及後面應該代入的參數是甚麼。
1. Event 就是我們一定要有的東西,那會是該代幣協議大家都應該要有的基本功能,例如在 ERC-20 裡面,Event 分為 Transfer 與 Approval。
Transfer 不難理解,就是代幣轉帳功能。
Approval 則是簽署,對於有用過錢包的人就會知道當你要去使用一些去中心化應用程式(Dapps)時,錢包都會跳出來請你簽署東西,這個就是在做 Approval 的動作,當你批准了某個 Dapp 時,表示你的錢包已經授予該 Dapp 自由檢索你這個錢包地址的權限,甚至是能夠隨意匯出你的錢的權限,這就是為甚麼我們會聽到有人的熱錢包又被駭了,通常不是該熱錢包不安全,而是使用者隨便的批准了某些不懷好意的智能合約,讓它可以隨意使用我們的財產。
2. Function 則通常是一些開發者可自由選擇要不要加入的基本功能,每個 Function 的規格都是訂好的,例如在 ERC-20 之中,呼叫 decimals() 會回傳這個代幣最小的單位、呼叫 totalSupply() 會回傳這個代幣目前的總供應量、balanceOf(錢包地址)可以查詢某錢包裡面有多少顆這個智能合約的代幣等等。
3. 這些 Event 或 Function 後面要代入的參數是甚麼?
前面或多或少都有提到 From To Value 之類的東西,那個其實也寫在官方文檔中了,我們用 ERC-20 的 Transfer event 作為例子:
event Transfer(address indexed _from, address indexed _to, uint256 _value)
括弧內的東西看起來就相當直覺,當我們需要使用 Transfer 的時候會需要代入三個參數,_from、_to、_value,from 就是誰、 to 就是要給誰、value 就是給多少錢。而前面會是它的資料形態,像 from 跟 to 就都要填一個地址 (Address),而 value 是填一個不含負數的整數 (uint)。
這部分可能牽涉一些困難的程式設計,希望這樣的拆解方式會稍微讓你對於這些 EIP 文檔有更進一步的瞭解,理解這些大家講好的規範,會讓我們在使用時更加瞭解它是怎麼運作的,這樣在使用一些去中心化的服務時,就可以自行去判斷它寫的內容是不是壞壞的,能讓自己避開危險在幣圈可是很重要的生存之道呢。

廣告專區

科技隨筆即將進入新企劃了,在進到新企劃之前,如果你是科技隨筆忠實讀者但卻還沒有領到免費的 ITC 代幣空投,趕快去看看之前空投獎勵的文章,看看如何領取吧,下一次空投時間會在四月底到五月初之間 (三月以前留言的人都已經發放了哦)。
現在要領取的話,剩下兩個管道了:
1. 追蹤科技隨筆臉書粉絲專頁,並在【空投獎勵】科技隨筆讀者回饋 | 在底下留言免費領取科技幣下留下你的 Polygon 錢包地址,還有不到十個名額先搶先贏!
2. 加入 Line 社群 搶最後一個免費空投名額,先搶先贏。
再次提醒:以上這些名額額滿後活動即結束,暫時不會再添加新的免費代幣空投名額了!下次發放代幣時間會在四月底五月初,人工發放時間比較不即時敬請見諒。

延伸閱讀


最後,謝謝你在百忙之中願意抽空來花時間來看我的文章,如果還喜歡這些內容的話希望能獲得你的追蹤及小額贊助支持,讓我更有繼續寫下去的動力,也歡迎點此連結在其他平台找到我
下次見嚕 o((>ω< ))o~
為什麼會看到廣告
《科技隨筆 | 智能合約開發計畫》 智能合約開發計畫會深入淺出,從認識以太坊的協議開始出發,慢慢從最簡單的代幣到發行 NFT ,甚至是開發一些去中心化應用程式(Dapps),並做一些簡單的使用者介面讓任何人可以透過瀏覽器開啟 Web3.0 的大門。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
在這篇文章中,我們會提到 EIP 是甚麼,它的種類有哪些,還有所謂的 ERC 的代幣協議是甚麼,如果你也是想要透過寫程式的方式,在以太坊兼容的區塊鏈上發行自己的代幣或是 NFT 的話,那麼大致上瞭解 EIP 與 ERC 就會是需要的功課。
這是新年企劃的最終章,在這個月我們花了四篇文章的篇幅,慢慢討論如何利用Remix撰寫最簡單的Solidity智能合約,期望大家真的都能順利發行自己的加密貨幣,並在過年期間發送給親友們,讓他們體驗一下甚麼是錢包,並領取他們人生中第一顆加密貨幣。
本文延續上一次的程式碼,並增加錢包餘額查詢以及轉帳功能,完成後將會嘗試轉帳,若測試與查詢的結果都沒有問題的話,恭喜你完成一個可以被轉帳交易的加密貨幣,今年過年就靠它讓你在親戚朋友之間成為被眾人討論的紅人了!
在本文中,我們會開始寫一些程式,讓讀者瞭解如何利用Remix開發環境來撰寫Solidity程式,以及如何編譯、發佈智能合約。還有在發佈之後怎麼看剛剛設定的參數是否都成功被執行了,一起實作發出人生第一顆發財幣吧!
2022年的農曆新年在一月底就要登場了!說到新年或多或少一定免不了要家族團聚吃個團圓飯,又到了這個時間了,身為社畜的你想好今年要包多少紅包給家人了嗎?這次過年就逼親戚下載錢包,直接把你設計的發財幣、紅包幣、坐以待幣、大學延幣通通在過年的時候射給他們吧!
在這篇文章中,我們會提到 EIP 是甚麼,它的種類有哪些,還有所謂的 ERC 的代幣協議是甚麼,如果你也是想要透過寫程式的方式,在以太坊兼容的區塊鏈上發行自己的代幣或是 NFT 的話,那麼大致上瞭解 EIP 與 ERC 就會是需要的功課。
這是新年企劃的最終章,在這個月我們花了四篇文章的篇幅,慢慢討論如何利用Remix撰寫最簡單的Solidity智能合約,期望大家真的都能順利發行自己的加密貨幣,並在過年期間發送給親友們,讓他們體驗一下甚麼是錢包,並領取他們人生中第一顆加密貨幣。
本文延續上一次的程式碼,並增加錢包餘額查詢以及轉帳功能,完成後將會嘗試轉帳,若測試與查詢的結果都沒有問題的話,恭喜你完成一個可以被轉帳交易的加密貨幣,今年過年就靠它讓你在親戚朋友之間成為被眾人討論的紅人了!
在本文中,我們會開始寫一些程式,讓讀者瞭解如何利用Remix開發環境來撰寫Solidity程式,以及如何編譯、發佈智能合約。還有在發佈之後怎麼看剛剛設定的參數是否都成功被執行了,一起實作發出人生第一顆發財幣吧!
2022年的農曆新年在一月底就要登場了!說到新年或多或少一定免不了要家族團聚吃個團圓飯,又到了這個時間了,身為社畜的你想好今年要包多少紅包給家人了嗎?這次過年就逼親戚下載錢包,直接把你設計的發財幣、紅包幣、坐以待幣、大學延幣通通在過年的時候射給他們吧!
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
默克爾樹 ( Merkle Tree ),又被稱為哈希樹或雜湊樹 ( Hash Tree ),由美國計算機科學家 Ralph Merkle 提出並申請專利,默克爾樹 ( Merkle Tree ) 的默克爾 ( Merkle ) 就是他的姓氏。
Thumbnail
「軋空」這個連中文都無法直接唸出來的字詞,更難一眼辨識了解該詞彙代表什麼意思。不要怕!就是不好懂才有這篇文章嘛~ 軋空 ( short squeeze ) 中文唸起來是「亞空」,為金融用詞,通常用在股票交易,是指市場有些人因為預期股價會下跌而做空,但實際上股票卻上漲,為了回補而持續買入,導致股價暴
Thumbnail
「明文」聽起來超像《神鬼傳奇》這類電影會出現的用詞,我一開始接觸到「明文」這詞,一直覺得眼睛看到會卡住的,困在那格,後來理解他的對應面「密文」才比較好理解,「明」是清楚透明,延伸意思為「已知」,對應到「密」的「未知」。
Thumbnail
萊特幣是對美國華裔創辦人李啟威 Charlie Lee 對於比特幣誕生的一個玩笑,2011 年在 Bitcointalk 上發表萊特幣,利用在 Google 工作的空閒時間挖礦。(看看人家上班摸魚都在幹嘛,我當薪水小偷只會逛網拍😅
Thumbnail
儲蓄買進並等待:像是把你的錢存到一個特殊的禮物盒子裡,等著它變得更有價值。可以選擇買一些被認為有潛力的加密貨幣,像是比特幣或以太坊,然後耐心地等待它們的價值上漲。通常需要一點時間和耐心,但如果你壓對寶,將來可能會有不錯的回報。
Thumbnail
哈希函數 ( Hash Function ) 還能在有限時間和資源內計算出哈希值 ( hash values ),這種能快速驗證且單向加密的特性,能防止數據在傳遞過程被竄改,因此成為區塊鏈安全性中非常重要的技術。
Thumbnail
區塊鏈遊戲看似橫空出世,但你有想過,這背後的代幣系統,其實跟你我熟悉的《魔獸世界》、《Coin Master》等手遊很類似嗎? 同樣的,區塊鏈遊戲透過 NFT 交易角色和虛寶的機制,也在遊戲產業中存在許久,遊戲商更已開發出一套機制,避免遊戲資產過度通膨、縮短遊戲生命週期。
Thumbnail
區塊鏈的架構與無需中間人的信任機制 區塊鏈的核心架構是去中心化的節點網絡,經濟體系的機制是建立在無需中間人的信任機制-分散式帳本之上,透過分散式的節點來驗證與同步交易資料。 關於拜占庭將軍問題 (1)必須全部的將軍決定都一起進攻或一起撤退,才能達成勝利或是安全撤退。 拜占庭將軍問題與拜占庭容錯
Thumbnail
貝瑞大叔整理了區塊鏈的類型,主要分為公鏈、私鏈與聯盟鏈,甚至各有不同的應用場景與特色,也可利用區塊鏈的不同特性形成混合鏈的應用。 |公鏈(Public Blockchain) |私鏈(Private Blockchain) |聯盟鏈(Consortium Blockchain)
Thumbnail
從2021年開始相信大家就很常聽到同質化代幣與非同質化代幣(NFT)這兩個名詞,因為NFT熱潮,大家比較容易理解什麼是非同質化代幣。 但代幣有不同的應用與功能,產生許多不同的代幣標準,以下由貝瑞大叔替大家整理代幣標準的起源以及不同的代幣標準之間到底有什麼差異呢? |關於以太坊ERC標準的起源
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
默克爾樹 ( Merkle Tree ),又被稱為哈希樹或雜湊樹 ( Hash Tree ),由美國計算機科學家 Ralph Merkle 提出並申請專利,默克爾樹 ( Merkle Tree ) 的默克爾 ( Merkle ) 就是他的姓氏。
Thumbnail
「軋空」這個連中文都無法直接唸出來的字詞,更難一眼辨識了解該詞彙代表什麼意思。不要怕!就是不好懂才有這篇文章嘛~ 軋空 ( short squeeze ) 中文唸起來是「亞空」,為金融用詞,通常用在股票交易,是指市場有些人因為預期股價會下跌而做空,但實際上股票卻上漲,為了回補而持續買入,導致股價暴
Thumbnail
「明文」聽起來超像《神鬼傳奇》這類電影會出現的用詞,我一開始接觸到「明文」這詞,一直覺得眼睛看到會卡住的,困在那格,後來理解他的對應面「密文」才比較好理解,「明」是清楚透明,延伸意思為「已知」,對應到「密」的「未知」。
Thumbnail
萊特幣是對美國華裔創辦人李啟威 Charlie Lee 對於比特幣誕生的一個玩笑,2011 年在 Bitcointalk 上發表萊特幣,利用在 Google 工作的空閒時間挖礦。(看看人家上班摸魚都在幹嘛,我當薪水小偷只會逛網拍😅
Thumbnail
儲蓄買進並等待:像是把你的錢存到一個特殊的禮物盒子裡,等著它變得更有價值。可以選擇買一些被認為有潛力的加密貨幣,像是比特幣或以太坊,然後耐心地等待它們的價值上漲。通常需要一點時間和耐心,但如果你壓對寶,將來可能會有不錯的回報。
Thumbnail
哈希函數 ( Hash Function ) 還能在有限時間和資源內計算出哈希值 ( hash values ),這種能快速驗證且單向加密的特性,能防止數據在傳遞過程被竄改,因此成為區塊鏈安全性中非常重要的技術。
Thumbnail
區塊鏈遊戲看似橫空出世,但你有想過,這背後的代幣系統,其實跟你我熟悉的《魔獸世界》、《Coin Master》等手遊很類似嗎? 同樣的,區塊鏈遊戲透過 NFT 交易角色和虛寶的機制,也在遊戲產業中存在許久,遊戲商更已開發出一套機制,避免遊戲資產過度通膨、縮短遊戲生命週期。
Thumbnail
區塊鏈的架構與無需中間人的信任機制 區塊鏈的核心架構是去中心化的節點網絡,經濟體系的機制是建立在無需中間人的信任機制-分散式帳本之上,透過分散式的節點來驗證與同步交易資料。 關於拜占庭將軍問題 (1)必須全部的將軍決定都一起進攻或一起撤退,才能達成勝利或是安全撤退。 拜占庭將軍問題與拜占庭容錯
Thumbnail
貝瑞大叔整理了區塊鏈的類型,主要分為公鏈、私鏈與聯盟鏈,甚至各有不同的應用場景與特色,也可利用區塊鏈的不同特性形成混合鏈的應用。 |公鏈(Public Blockchain) |私鏈(Private Blockchain) |聯盟鏈(Consortium Blockchain)
Thumbnail
從2021年開始相信大家就很常聽到同質化代幣與非同質化代幣(NFT)這兩個名詞,因為NFT熱潮,大家比較容易理解什麼是非同質化代幣。 但代幣有不同的應用與功能,產生許多不同的代幣標準,以下由貝瑞大叔替大家整理代幣標準的起源以及不同的代幣標準之間到底有什麼差異呢? |關於以太坊ERC標準的起源