详解NFT原理:数字货币艺术作品卖出6900万美元
摘要: 知道创宇区块链实验室带你走近 NFT(非同质化代币)。
(图为 NFT 数字艺术作品:《每一天:前 5000 天(Everydays: The First 5000 Days)》)
火爆的 NFT
2021 年 3 月 11 日,佳士得历史上首次以非同质化代币(NFT)形式拍卖的数字艺术家 Beeple 的 NFT 作品——《每一天:前 5000 天》(Everydays: The First 5000 Days),底价 100 美元,最终以 6934.6 万美元成交,一举成为在世艺术家成交作品第三高价。万万让人想不到的是,一副虚拟的画,居然卖了 4.5 亿元人民币。
(从 Cryptoslam 统计的销售量上,感受 NFT 市场的火热程度)
NFT 的突然火爆,使得区块链成功”出圈“,吸引更多的用户想要参与到加密数字货币的市场中来,好在这火热的市场也分到一杯羹。
什么是 NFT?
NFT 是 Non-Fungible Tokens 的缩写,翻译后是非同质化通证。
区块链上有两种类型的数字货币,原生币和代币。原生币如熟知的比特币 (BTC) 和以太币 (ETH) 等,它们有自己的主链,链上交易消耗原生币作为手续费。代币则是依赖主链,使用智能合约来记录账本,如以太坊上发布的代币。代币又分为同质化币 (FT) 和非同质化币 (NFT)。
ERC-20
ERC20 为同质代币的创建和交易定义了标准。ERC20 标准规定包含了代币总量、名称、转账功能等,每一个代币并没有什么不同,可以相互替换。
同质代币可虚拟游戏中的货币金币,玩家可进行相互转账,每个金币是等价且可以被分割。然而对于游戏中道具或者皮肤来说,每一件都拥有不同的属性,那么就会对应不同售价。ERC721 是代表不可替代代币所有权的标准,也就是说,每个代币都是唯一的。
ERC-721
ERC721 为非同质代币的创建和交易定义了标准。与 ERC20 代币本质上的区别是,NFT 没有 decimal 小数点的概念,每个 NFT 最小单位是 1。ERC721 定义了智能合约必须实现的最小接口,以允许对唯一令牌进行管理,拥有和交易。每一个代币有唯一的 ID,是独一无二的,所以不可互换且不可分割,非同质性让数字资产可具有稀缺性。
ERC72 没有强制要求令牌元数据有标准,也没有限制添加补充功能。2017 年,最早的 NFT 项目是加密猫 (CryptoKitties) ,游戏中存在的每一只猫就是一个个 NFT 代币,它们有自己专属的 ID 和基因,都是独一无二的存在,它无法被复制、拿走、或销毁,同时每只猫会有指向的所属权。
(图为加密猫)
ERC1155
ERC1155 借鉴了 ERC20,ERC721 的思想。ERC20 和 ERC721 标准要求针对每种令牌部署单独的合同,ERC1155 的独特之处在于它使用单个智能合约一次代表多个令牌,这种方法可为需要多个令牌的项目节省大量气体。
由于 ERC721 一份合约只能发行一种 NFT 资产,随着像 Enjin Coin 这样的区块链游戏和平台的兴起,游戏开发人员可能会创建数千种令牌类型,因此需要一种新型的令牌标准来支持它们,于是诞生了 ERC1155 标准。
使用 ERC1155 标准可以在一份合约内发行多种类型的 NFT 资产。
使用 ERC1155 标准在游戏设计中,通过数量来区分发行的是 FT 还是 NFT,像倚天剑、屠龙刀这种独有的道具发行的数量是 1,那就是发行的 NFT 代币,而一些普通的长弓,猎刀,会发行成千上万个,这些就是同质代币。不仅如此,在一笔交易里去完成多类型 NFT 资产的锻造,而基于 ERC720 的合约,一笔交易只能锻造一枚资产 (如加密猫游戏,一次交易只能锻造一只猫)。
游戏中初始化发行了 5 种类型的 NFT 资产,如可相互替换的金币,和独一无二的雷神之锤
ERC-1155 并不特定于游戏。那么究竟 ERC115 是做了什么重大改变,能完成几乎所有 NFT 项目的发行?ERC1155 标准中,可以做的操作,列如:
1. 批量转账 -safeBatchTransferFrom 接口。实现可以有效的在单个交易中操作多种类型的令牌。(以太坊中一个交易完成大概需要 15 到 30 秒,如果要交易几百个需要很长时间,而在 ERC1155 合约中批量交易,不仅省时,还大大节省了燃料的消耗)
函数定义把 from 地址的多类型代币 (ids) 的数量 (values) 转到 to 地址;函数没有返回值,交易失败时将回滚。
2. 批量查询余额 -balanceOfBatch 接口,实现批量查询多种类型的代币。
3. 批量授权 -setApprovalForAll 接口,与 ERC-20 略有不同。在 ERC1155 中无需设置授权金额,只需调用 setApprovalForAll 将操作员设置为批准或未批准即可。
4. 接受钩子 -onERC1155BatchReceived 函数。函数必须返回一个预定义的 4 字节 magic 值,即 bytes4(keccak256("onERC1155BatchReceived(address\,address\,uint256[]\,uint256[]\,bytes)"))。
该函数在 safeBatchTransferFrom 函数中,更新代币数量后调用。确保代币是发送给支持 ERC1155 的合约,避免代币丢失。
5. 可以再合约构造函数中铸造所有类型的 NFT,也可以在合同中添加铸造功能,以便按需铸造需求。比如像 Enjin Coin 这样的区块链游戏平台。
NFT 领域
NFT 代币的主要应用领域就是收集游戏、艺术品、域名、收藏品、虚拟资产、体育等领域,尤其是艺术品和游戏在市场上关注度较高。有些游戏道具和艺术品天然就具备唯一性和不可拆分性,正好与 NFT 耦合,因此 NFT 可以有效防止此类物品的伪造与欺诈。
NFT 大猜想
为什么 NFT 有机会在加密世界实现突破?从三个方面来看,首先,NFT 本身具有的属性,跟加密世界非常契合,有机会通过跟应用结合实现产品和市场的契合。其次,加密游戏的整体发展为它提供了底层基础。第三,NFT 交易的兴起,也为 NFT 突破提供助力。
我们只有不断的了解 NFT 的历史、由来、初衷,才能真正了解他的价值所在。NFT 必将在加密行业体现他的价值,无论是游戏还是收藏品,NFT 迟早会出圈在区块链的发展中留下绚丽的色彩。
作者:创宇区块链安全实验室;来自链得得内容开放平台“得得号”,本文仅代表作者观点,不代表链得得官方立场凡“得得号”文章,原创性和内容的真实性由投稿人保证,如果稿件因抄袭、作假等行为导致的法律后果,由投稿人本人负责得得号平台发布文章,如有侵权、违规及其他不当言论内容,请广大读者监督,一经证实,平台会立即下线。如遇文章内容问题,请发送至邮箱:linggeqi@chaindd.com
评论(0)
Oh! no
您是否确认要删除该条评论吗?