我和很多人聊NFT时,发现很难在最底层达成共识,大家都在聊NFT的应用层面,对其底层的实现大家都是模糊的,但我总感觉底层实现如果不理解的话,是会妨碍理解应用层的。所以才写本文。
NFT的标准ERC721
ERC721是一个智能合约标准,可以简单理解为这是一份模板化的合约代码,或者模板化的合同。
智能合约可以简单地理解为部署在以太坊网络上的程序,ERC721就是一套模板化的智能合约程序,开发者可以按这个模板定制一个合约部署在以太坊上。
合约模板和写文章的模板本质是一样的。就是类似于八股文一样,有完整的套路,你照着套路填好符合你自己的个性化资料就可以产生一篇文章。
ERC721这种合约模板定义好了一些标准“方法”(就是程序里的函数)和“事件”(可以简单理解为)
方法就是函数,也可以称之为接口。这些方法就是让用户和其他程序可以和这个NFT项目进行交互的方法。
ERC721标准里第一个方法balanceOf(),就可以查询某个地址持有该NFT的数量。
事件可以简单理解为以太坊的日志模板。当有人调用了这个合约的某个方法,得按日志模板往以太坊上存一些历史记录,方便别人查看。
比如ERC721标准里的第一个事件event Transfer,就是用户转具体某个NFT后,就得在以太坊上按这个模板留下日志记录。
问题:什么样的合约符合ERC721标准?
答案:在ETH上部署了一个合约,只要这个合约包括了ERC721标准里的所有“方法”和“事件”,就是符合ERC721标准。按照ERC721标准生成的代币就是NFT,但反过来却不成立,因为还有其他NFT标准,甚至还有没有总结成标准的NFT。第一步是有一个项目方(简单的就可以是一个开发者)按照ERC721等标准开发一套智能合约,并部署到以太坊上。这个合约代码会详细定义NFT的具体实现,比如要定义这套NFT的总量是多少,每一个NFT的编号,每一个NFT对应的图片存在哪个URL地址什么的。第二步用户就可以调用该合约进行铸造NFT,这就是熟悉的mint过程。一般开发者会设计好调用合约的界面,以方便用户铸造NFT,虽然对“科学家”来说,他们只要有项目开源好的NFT代码,他们可以自己调用。mint的过程一般会有一个初始价格,即用户要付一定的ETH才允许参与铸造这套NFT,这就是NFT的初次发行。铸造好具体的NFT后,就在用户的钱包里可以看到了。用户就可以挂到opensea上去卖了。这里的非同质化的意思就是,这套NFT中的每一个具体的NFT都是各不相同的。这两个概念老容易搞混。这是一个集合,和集合中的元素的关系。NFT项目是一些具体NFT代币的集合。这里的代币不是说NFT项目发行的ERC20代币,而是用户mint出来的ERC721代币。一个NFT项目会发行一套NFT,比如猴子BAYC是一个NFT项目,它发行了1万具体的NFT代币,每一个具体的猴子NFT代币在物理实体上映射成了一张图片。小火科技成立于2013年,是一家专注于互联网前沿技术的软件开发公司。我们高度认可NFT的应用价值,并付诸于实战,为树立品牌数字化形象提供全解方案。我们专长于区块链相关技术,率先在多领域开发应用NFT数字藏品,并提供售后运维保障服务。我们的愿景:做一家区块链应用领域的排头兵,为品牌提供专属化的NFT定制方案,打造创新型的企业品牌数字化形象。同时积极推动我国区块链技术的全业态运用,助力我国成为信息化技术应用强国。
发表评论 取消回复