您需要了解的有关NFT的所有知识

元宇宙联络员 2022-09-13 18:30:28

非同质化代币(NFT)是具有区块链管理所有权的独特数字项目。例如收藏品,游戏项目,数字艺术,活动门票,域名,甚至实物资产的所有权记录。

如果您在加密货币世界中生活了一段时间,则可能听说过“非同质化代币”或“ NFT”一词。也许您是一个怀疑论者,信徒,或者您仍然不真正知道不可替代的代币到底是什么。无论如何,这篇文章适合您!

作为NFT的市场,OpenSea有一个独特的优势:自2017年底第一个NFT标准出现以来,几乎所有与NFT相关的项目都已上线。实际上,我们会打赌给您一张Gods Unchained Card,如果您向我们询问有关NFT项目的信息,我们已经听说过它,并且有可能在某些时候与开发人员进行了交谈!NFT生态系统是由令人难以置信的创新者组成的紧密联系的团队:从发烧友到开发人员再到游戏玩家再到企业家再到艺术家,每个人都如此。我们很荣幸能成为这个社区的一员。

这篇文章旨在提供对不可替代代币的深入概述:ERC721的技术剖析,NFT的历史,对NFT的常见误解以及NFT市场的现状。我们希望这对本领域的新手以及已经了解NFT但想更好地了解其内部工作细微差别的人们都有意义。

什么是非同质化代币?

非同质化具有不可替代性。不可替代资产是正常的东西,而可替代的资产是奇怪的!

关于非同质化代币的大多数讨论都是从引入可替换性的想法开始的,可替换性的概念被定义为“能够替换或被另一个相同的项目替换”。我们认为这会使事情复杂化。为了更好地了解非同质化(不可替代)资产的构成,只需考虑一下您拥有的大部分资产即可。您坐在的椅子,手机,笔记本电脑以及可以在eBay上出售的任何物品。所有这些都属于不可替代的事物。

事实证明,可替代资产实际上是奇怪的资产。货币是可替代资产的经典示例。无论特定的五美元钞票上的序列号是五美元还是存入您的银行帐户,五美元始终是五美元。用另一张五美元的钞票(或者说五张钞票)代替五美元的钞票的能力使货币可以互换。

注意互换性是相对的; 它仅适用于比较多个事物。考虑商务舱,经济舱和头等舱机票。每张车票在其班级中大致可以互换,但是您不能公平地将头等车票换成商务舱车票。甚至您坐在的椅子都可以与相同型号的椅子互换使用,除非您为特定的椅子开发了特殊的附件。

有趣的是,可替代性也可以是主观的。回到机票示例:一个在乎坐在靠窗座位还是靠过道座位的人可能不会认为两张经济舱机票可以互换。同样,一分钱稀少的硬币对我来说可能价值1美分,但对硬币收藏家来说价值更高。我们将看到,当在区块链上表示这些项目时,其中一些细微差别变得非常重要。

基于区块链的非同质化代币

正如在加密货币出现之前我们拥有数字货币(例如航空点数,游戏中的货币)一样,自互联网诞生以来,我们就拥有了不可替代的数字资产。域名,活动门票,游戏内物品,甚至是Twitter或Facebook等社交网络上的手柄,都是不可替代的数字资产;它们只是在可交易性,流动性和互操作性上有所不同。其中许多都是非常有价值的:仅在2018年,Epic Games就通过其免费游戏Fortnite出售了服装,实现了24亿美元的收入;到2025年,活动门票市场预计将达到680亿美元;域名市场继续保持稳定增长。

显然,我们已经拥有大量的数字资料。

但是,我们在多大程度上“拥有”这些数字产品?如果数字所有权仅表示某项商品属于您而不是其他人,那么您在某种意义上拥有它们。但是,如果数字所有权更像是物理世界中的所有权(无限期持有和转让的自由),那么数字资产似乎并非总是如此。相反,您在特定的上下文中拥有这些资产,这可能使迁移它们变得容易,也可能使迁移变得不容易。尝试在eBay上出售Fortnite皮肤,您会发现将数字资产从一个人转移到另一个人的困难。

这就是区块链进入的地方!区块链为数字资产提供了一个协调层,授予用户所有权和管理权限。区块链为不可替代资产增加了一些独特的属性,从而改变了用户和开发人员与这些资产的关系。

标准化

从事件门票到域名的传统数字资产在数字世界中没有统一的表示形式。游戏可能以与事件票务系统完全不同的方式表示其游戏内收藏品。通过在公共区块链上表示非同质化代币,开发人员可以构建与所有非同质化代币相关的通用,可重用,可继承的标准。这些包括诸如所有权,传输和简单访问控制之类的基本原语。可以将其他标准(例如,如何显示NFT的规范)放在顶部,以在应用程序内部进行丰富的显示。

这些类似于数字世界的其他构建块,例如用于图像的JPEG或PNG文件格式,用于计算机之间的请求的HTTP和用于在网络上显示内容的HTML / CSS。区块链在顶部添加了一层,为开发人员提供了一套全新的有状态原语,可在其上构建应用程序。

互通性

不可替代的令牌标准允许不可替代的令牌在多个生态系统之间轻松移动。当开发人员启动新的NFT项目时,这些NFT可以立即在数十个不同的钱包提供程序中查看,可以在市场上进行交易,并且最近可以在虚拟世界中显示。这是可能的,因为开放标准为读取和写入数据提供了清晰,一致,可靠和许可的API。

可交易性

互操作性最令人信服的功能是开放市场上的自由贸易。第一次,用户可以向外移动的物品原来的环境,进入一个市场,他们可以利用复杂的交易功能,如易趣式拍卖,招投标,捆绑,并在任何货币的能力来卖,像stablecoins和专用货币。

特别是对于游戏开发商来说,资产的可交易性代表着从封闭经济向开放自由市场经济的过渡。游戏开发商不再需要管理经济的每一个环节:从资源供应到定价再到资本控制。相反,他们可以让自由市场承担重任!

流动性

非同质化代币的即时可交易性将导致更高的流动性。NFT市场可以满足各种受众的需求,从铁杆交易者到更多新手,都可以使资产更广泛地接触更多的购买者。与2017年的ICO繁荣催生出由即时流动代币驱动的新资产类别一样,NFT扩大了独特数字资产的市场。

不变性和可证明的稀缺性

智能合约允许开发人员对非同质化代币的供应施加硬上限,并强制执行在发行NFT后无法修改的永久属性。例如,开发人员可以以编程方式强制执行,只能创建特定数量的特定稀有物品,同时保持更多常见物品的供应无限。开发人员还可以通过在链上进行编码来强制特定属性不随时间变化。对于艺术而言,这尤其有趣,因为艺术很大程度上取决于原始作品的可证明的稀缺性。

可编程性

当然,像传统的数字资产一样,NFT是完全可编程的。CryptoKitties(我们将在后面讨论)在繁殖技师中直接烘焙到代表数字猫的合同中。当今许多NFT具有更复杂的机制,例如锻造,制作,兑换,随机生成等。设计空间充满了可能性。

非同质化代币的标准

标准是使非同质化代币变得强大的一部分。他们向开发人员保证资产将以特定方式运行,并准确描述如何与资产的基本功能进行交互。

ERC721

由CryptoKitties率先开发的ERC721是代表不可替代的数字资产的第一个标准。ERC721是可继承的密实度的智能的合同标准,这意味着开发人员可以很容易地从导入它创造新的符合ERC721-合同OpenZeppelin库(我们在创建第一个ERC721合同有用的教程在这里)。ERC721实际上相对简单:它提供唯一标识符(每个标识符代表一个资产)到地址的映射,这些地址代表该标识符的所有者。ERC721还提供了使用该transferFrom方法转让这些资产的许可方式。

interface ERC721 {

function ownerOf(uint256 _tokenId) external view returns (address);

function transferFrom(address _from, address _to, uint256 _tokenId) external payable;

}

如果考虑一下,这两种方法实际上就是代表NFT所需要的:一种检查谁拥有什么的方法以及一种移动事物的方法。该标准还有其他一些特色(其中有些对NFT市场非常重要),但是ERC721的核心是非常基本的。

ERC1155

ERC1155,由首创Enjin团队,带来了半可替代性到NFT世界的想法。在ERC1155中,ID代表的不是资产,而是资产的类别。例如,一个ID可能代表“剑”,而一个钱包可能拥有其中的1000把剑。在这种情况下,该balanceOf方法将返回钱包拥有的剑的数量,并且用户可以通过transferFrom使用“剑” ID进行调用来转移这些剑中的任意数量。

interface ERC1155 {

function balanceOf(address _owner, uint256 _id) external view returns (address);

function transferFrom(address _from, address _to, uint256 _id, uint256 quantity) external payable;

}

这种类型的系统的一个优势是效率:使用ERC721,如果用户想要转移1,000把剑,他们将需要(通过调用transferFrom方法)修改智能合约的状态以获取1,000个唯一令牌。使用ERC1155,开发人员只需要呼叫transferFrom数量为1,000的电话并执行一次转移操作。当然,这种提高的效率伴随着信息的丢失:我们再也无法追踪单个剑的历史。

还要注意,ERC1155提供了ERC721功能的超集,这意味着可以使用ERC1155构建ERC721资产(您只需为每个资产拥有单独的ID和数量1)。由于这些优势,我们最近目睹了ERC1155标准的越来越多的采用。OpenSea最近在Github上开发了一个存储库,以开始使用ERC1155标准。

ERC20,ERC721和ERC1155标准的剖析。ERC20将地址映射到金额,ERC721将唯一的ID映射到所有者,而ERC1155具有将ID映射到所有者到金额的嵌套映射。

可组合物

由ERC-998标准领导的可组合物提供了一个模板,NFT可以通过该模板拥有不可替代和可替代资产。在主网上只部署了几个可组合的NFT,但是我们认为有很多令人兴奋的机会来使用它们!

…加密货币猫可能会拥有挠头和喂养盘;这道菜可能包含一些可替代的“猪”令牌。如果我出售加密猫,我将出售加密猫的所有财产。

非以太坊标准

虽然以太坊是目前大多数行动的发生地,但其他链条上还出现了其他几种NFT标准。由神话游戏团队首创的DGoods致力于从EOS开始提供功能丰富的跨链标准。Cosmos项目还正在开发NFT模块,该模块可以作为Cosmos SDK的一部分加以利用。

非同质化代币的元数据

如上所述,该ownerOf方法提供了一种查找NFT所有者的方法。例如,通过查询ownerOf(1500718)在CryptoKitties智能合同,我们可以看到,CryptoKitty#1500718在写作时的主人是一个账户的地址0x6452。这可以通过访问他们的CryptoKitty验证上OpenSea或CryptoKitties.co。

但是,OpenSea和CryptoKitties如何找出CryptoKitty#1500718的外观?那么它的名称和独特属性呢?

这就是元数据的来源。元数据为特定令牌ID提供描述性信息。对于CryptoKittty,元数据是猫的名字,猫的图片,描述以及任何其他特征(在CryptoKitties中称为“ cattributes”)。对于事件票证,元数据除了名称和描述之外,还可能包括事件的日期和票证的类型。上面猫的元数据可能看起来像这样:

{

"name": "Duke Khanplum",

"image": "https://storage.googleapis.com/ck-kitty-image/0x06012c8cf97bead5deae237070f9587f8e7a266d/1500718.png",

"description": "Heya. My name is Duke Khanplum, but I've always believed I'm King Henry VIII reincarnated."

}

问题在于如何和在何处存储此数据,以便关心NFT的应用程序可以访问它。

上链与下链

开发人员的第一个决定是什么元数据代表链上还是链外。也就是说,您是将元数据直接烘焙到代表代币的智能合约中,还是单独托管它?

链上元数据

在链上表示元数据的好处是:1)它与令牌一起永久存在,并在任何给定应用程序的生命周期内持续存在,以及2)它可以根据链上逻辑进行更改。如果资产要具有远超其原始创造价值的持久价值,则第一点很重要。例如,无论用于创作该艺术的原始网站是否还在身边,人们都希望数字艺术能够在整个时代持续存在。因此,重要的是其元数据必须与令牌标识符的生命周期一起保留。

另外,链上逻辑可能需要与元数据进行交互。例如,对于CryptoKitty,CryptoKitty的“世代”会影响CryptoKitty繁殖的速度,并且繁殖都发生在链上(高代猫的繁殖速度较慢)。因此,智能合约内部的逻辑需要能够从其内部状态读取元数据。

链下元数据

尽管有这些好处,但大多数项目只是由于以太坊区块链当前的存储限制而将其元数据脱链存储。因此,ERC721标准包括一种称为tokenURI开发人员可以实现的方法,以告知应用程序在何处查找给定项目的元数据。

function tokenURI(uint256 _tokenId) public view returns (string)

该tokenURI方法返回公共URL。反过来,这将返回JSON数据字典,类似于上面的CryptoKitty的示例字典。此元数据应符合官方的ERC721元数据标准,以供OpenSea之类的应用程序使用。在OpenSea,我们希望使开发人员能够构建可在我们的市场内显示的丰富元数据,因此我们在ERC721元数据标准中添加了扩展,允许开发人员包括特征,动画和背景色之类的东西。

链外存储解决方案

如果要脱链存储元数据,则有两种选择:

集中式服务器

存储元数据的最简单方法是在某处的中央服务器或AWS等云存储解决方案上。当然,这有缺点:1)开发人员可以随意更改元数据,2)如果项目脱机,则元数据可能会从其原始来源中消失。为了缓解问题2,现在有几种服务(包括OpenSea)将在其自己的服务器上缓存元数据,以确保即使原始托管解决方案出现故障也可以将元数据有效地提供给用户。

IPFS

越来越多的开发人员,尤其是在数字艺术领域的开发人员,正在使用行星际文件系统(IPFS)来离线存储元数据。IPFS是一种点对点文件存储系统,它允许在计算机之间托管内容,从而可以在许多不同的位置复制文件。这确保了A)元数据是不可变的,因为它是由文件的哈希唯一地寻址的,而B)只要有愿意托管数据的节点,数据就会随着时间的流逝而持久。现在有诸如Pinata之类的服务,通过处理用于部署和管理IPFS节点的基础架构以及备受期待的Filecoin网络,使开发人员可以简化此过程。 (理论上)将在IPFS之上添加一层以激励节点托管文件。

0 阅读:40

元宇宙联络员

简介:WEB3探索者 程序猿 NFTer 币圈老韭菜