【区块链知识】一文读懂什么是NFT 与代币| ERC-20/ERC-721/ERC-1155
前言
在上一篇文章中,我们先提了以太坊的基础协议,还有EIP 与ERC 是什么,那这一篇文章我们就来更深度解析在区块链的世界中最常见的三种代币协议ERC-20 、 ERC-721 、 ERC-1155 吧,这当中包含现在最红的NFT ,我们在较早的时候曾经从应用层面去尝试理解什么是NFT ,那在这篇就会是更进阶的,让你更了解NFT 背后的代币协议是如何被定义出来的。
延伸阅读:
【区块链知识】快速了解以太坊的ERC 与EIP
【区块链知识】一文读懂什么是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 社群抢最后一个免费空投名额,先抢先赢。
再次提醒:以上这些名额额满后活动即结束,暂时不会再添加新的免费代币空投名额了!下次发放代币时间会在四月底五月初,人工发放时间比较不即时敬请见谅。
延伸阅读
【区块链知识】快速了解以太坊的ERC 与EIP
【区块链知识】一文读懂什么是NFT及其应用
最后,谢谢你在百忙之中愿意抽空来花时间来看我的文章,如果还喜欢这些内容的话希望能获得你的追踪及小额赞助支持,让我更有继续写下去的动力,也欢迎点此连结在其他平台找到我。
下次见噜o((>ω< ))o~
原文连结ITechNote 科技随笔
喜欢我的作品吗?别忘了给予支持与赞赏,让我知道在创作的路上有你陪伴,一起延续这份热忱!
![](https://imagedelivery.net/kDRCweMmqLnTPNlbum-pYA/prod/avatar/3a2ceb68-d541-4732-865f-0ebdce95d238.png/public)
![](https://imagedelivery.net/kDRCweMmqLnTPNlbum-pYA/prod/avatar/3a2ceb68-d541-4732-865f-0ebdce95d238.png/public)
![](https://imagedelivery.net/kDRCweMmqLnTPNlbum-pYA/prod/avatar/b97c404a-f5e7-4db3-86f5-e6627dcdc765.png/public)
![logbook icon](https://assets-next.mattersprotocol.io/_next/static/media/logbook.2cfac4f7.gif)
- 来自作者
- 相关推荐