前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >NFT技术浅谈

NFT技术浅谈

原创
作者头像
小亮
发布2021-07-26 21:47:54
5.4K0
发布2021-07-26 21:47:54
举报
文章被收录于专栏:腾讯云区块链腾讯云区块链

2021年3月,由社交媒体“推特”(Twitter)联合创始人、首席执行官杰克·多西(Jack Dorsey)发出的第一条推文(下图),以非同质化代币(NFT)的形式拍卖,最终以超过290万美元的价格出售。

2021年6月,一幅像素艺术风格的《CryptoPunk 7523》NFT头像(下图),在纽约苏富比拍卖行以1175万美元的价格成交。

越来越多的公司涌入到NFT赛道中,部分NFT数字商品的成交价高的难以想象,是物有所值,还是热钱炒作?个人理解,对艺术品的价值认定会带不少主观色彩,是否物有所值,仁者见仁。而作为区块链的技术从业者,我更关注的是NFT背后的技术原理:NFT是什么?NFT在智能合约中是如何存储的?NFT技术有哪些延展方向?

NFT是什么?

NFT(Non-Fungible Token), 字面意思是非同质化代币,每个代币背后所代表的资产是不同的,不可分割的。在现实世界中,不同的艺术品,不同的设计方案,这些资产是不可分割的,背后对应价值也不同。NFT可以更好的承载这些价值。NFT可以理解为基于区块链的特定资产登记方式。结合区块链的透明性,防篡改特性,可以方便识别资产的创造者,持有者,结合智能合约,可以确保资产的持有者才有权对资产进行操作。

NFT在智能合约存储方式?

目前已知最早的NFT项目是2017年基于以太坊的由Larva Labs开发的CryptoPunks项目。当时还没有标准的NFT协议,可以通过以下地址查看到相关智能合约代码,https://etherscan.io/address/0xb47e3cd837ddf8e4c57f05d70ab865de6e193bbb#code。其中部分代码如下:

在初始化代码中,定义了CryptoPunks有10000个:

10000个头像组成的图片hash存储在链上,通过hash上链的方式,确保每个头像对应的位置以及具体内容不可以随意更改,一旦更改后,新生成的图片hash和智能合约中的hash将无法达成一致:

10000个头像,每个头像的持有人地址保存在以上的mapping中:

在对每个头像进行操作的时候,都会检查操作者是否是头像的持有者。

结合以上,我们可以观察到,CryptoPunks项目中的每个头像的内容是确定的,同时每个头像的持有者也是可以查到的。经过智能合约处理,可以很方便的定位出每个数字资产背后的持有人地址,权属关系明确。同时,NFT对应的数字资产,大家都可以欣赏。创意共享,但是权属关系清晰,对资产的操作权在资产持有人手里。

2018年,伴随着CryptoKitties的火热,ERC721 NFT协议被提出(具体内容参考https://eips.ethereum.org/EIPS/eip-721)。在协议里定义了721的接口规范,规定了智能合约必须实现的函数以及可选的一些实现。

2021年,Larva Labs的另外一个基于ERC721规范实现的项目Meebits上线(查看合约的具体内容:https://etherscan.io/address/0x7bd29408f11d2bfc23c34f18275bbf23bb716bc7#code),其中部分代码如下:

在这个版本中,NFT相关的内容存储在IPFS中:

这里定义了每个Meebits所代表的具体内容,比如我们打开https://meebits.larvalabs.com/meebit/1:

以上内容对应了每个Meebits对外的展示形式以及特有的属性。从该智能合约中,可以发现链上一般通过存储hash来保证资产的不可更改性,同时,服务层会提供资产展示的具体样式。

结合以上代码,我们发现,其实发行一个NFT并不难,关键在于NFT背后承载的价值:好的创意、优秀的方案等。有兴趣的同学可以思考下,如果基于现有的NFT协议,如何最简化的实现NFT盲盒发行?

NFT技术延展

随着NFT的应用生态日益丰沛,人们也在期待其技术能力能满足更多应用场景,例如NFT自身可被拆分吗?用户购买NFT能支持个性化创作吗?

1.NFT拆分:

NFT本身具有不可分割的特性。若要拆分,可以通过锁定NFT资产,然后基于该资产发行特定的可拆分的NFT资产,让更多人共享艺术品,让它的价值流动更为灵活和高效。

感兴趣的同学可以参考如下智能合约:https://etherscan.io/address/0x85aa7f78bdb2de8f3e0c0010d99ad5853ffcfc63#code。 部分代码如下:

以上代码实现了新开一个代理合约处理发行ERC20协议的代币,同时把对应的ERC721资产转移到代理合约:

以上代码确保如果用户需要从代理合约提取对应的NFT资产时,需要持有所有对应发行的ERC20,并且销毁掉。

2.NFT二次创作:

NFT数字资产持有者,是否可以在NFT上进行二次创作?基于区块链不可篡改的特性,已生成的NFT是不能被修改的,但用户能基于原来的NFT去重新铸造新的NFT。可参照【1.NFT拆分】,把原有的NFT锁定在合约层,再基于它去创作新的NFT。用户还能卸掉二次创作部分,还原NFT去做流传交易。

结语:

基于区块链的NFT协议,让数字世界的信息流转化为价值流。数据作为信息互联网最重要的生产要素,要发挥它的应用价值,不仅要关注数据拥有者的权益保护,也要关注数据资产如何能更灵活、更自由的流通。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • NFT是什么?
  • NFT在智能合约存储方式?
  • NFT技术延展
    • 1.NFT拆分:
      • 2.NFT二次创作:
      • 结语:
      相关产品与服务
      区块链
      云链聚未来,协同无边界。腾讯云区块链作为中国领先的区块链服务平台和技术提供商,致力于构建技术、数据、价值、产业互联互通的区块链基础设施,引领区块链底层技术及行业应用创新,助力传统产业转型升级,推动实体经济与数字经济深度融合。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
      http://www.vxiaotou.com