写点什么

你的 NFT 会消失吗?DFINITY 提供 NFT 存储最佳方案

作者:TinTinLand
  • 2022 年 7 月 22 日
  • 本文字数:2996 字

    阅读完需:约 10 分钟

2021 年 NFT(Non-Fungible Token)浪潮席卷而至,NFT 作品屡次被拍出天价,一众明星纷纷入场,开启了 NFT 元年。据 NFT 数据公司 Nonfungible 报告,今年区块链世界 NFT 热度不减,NFT 市场爆发了巨大的潜力,越来越多的用户开始接受 NFT 数字资产,参与交易并拥有自己的 NFT,NFT 生态在用户和市场的青睐下不断扩展。

NFT 作为记录艺术品或收藏品等虚拟数字资产所有权的加密数字凭证,具有永久保存、独一无二、可编程性和可追溯性等特点。基于这些属性,NFT 拥有者深信自己持有的是“未来互联网的一片所有权”,而在热情高涨的 NFT 买家的背后,持有者可能需要应对突然掉线的项目方、模糊不清的版权,乃至 NFT 被盗却无处申诉等困境。而造成些风险的关键因素在于 NFT 源文件的存储——大多数 NFT 存储在 AWS 等集中式服务器中,并不真正存在区块链上。



NFT 数字艺术品的存储量十分繁重,而以太坊等大多数区块链上托管数据的成本十分昂贵,每年高达数百万美元,以致很多 NFT 无法实现链上存储。DFINITY 拥有独特的容器智能合约,打破数据存储成本壁垒,每个容器具备一定的运行内存,业务的数据库可以运行在 DFINITY 上,使得 NFT 源文件的链上存储变得安全且容易。下文将从 NFT 存储问题入手,探索 DFINITY 如何实现 NFT 链上存储,在此分享给对 NFT 赛道感兴趣的诸位。


你的 NFT 会消失吗

NFT 的核心是一个托管在 ERC(Ethereum Request for Comment)区块链上的智能合约,购买 NFT 实质上得到了用智能合约协议生成的一段永久保存的数据,NFT 保证:您拥有对某些数据的唯一且不可更改的引用。

当用户购买 NFT 的时候,表面上它们在某平台终端应用上的存储,实际上多数平台只是提供了一个链上验证的方式,它指向实际存储 NFT 数据的地方——持有者往往会忽视这些 NFT 数字资产源文件真正的托管地,而这恰恰决定了所购买的 NFT 是否能够永久存在、又是否安全?下面从技术角度介绍 NFT 源文件的两类存储地。



NFT 源文件的存储方式

1. 链上+ 链下存储

链上存储 NFT 基本属性、创作者、流通等信息,将 NFT 源文件内容存储在链下。而这种链下存储又主要有 HTTP 中心化存储和 IPFS 分布式存储两种模式:

  • HTTP 中心化存储

这种存储方式将 NFT 源文件内容托管在中心化存储系统上,通过 HTTP URL 进行“地址寻址”的方式进行 NFT 内容搜索展示。这种方式高效地减轻了区块链的网络负担。

但是由于 HTTP 中心化存储在中心化服务器上,一方面,服务器掌控者能够在不经过许可的情况下,任意篡改 NFT 元数据中的内容;另一方面,服务器很可能面临技术问题、黑客攻击,甚至平台破产关闭服务器,那么持有的 NFT 将会随之彻底“消失”

  • IPFS 分布式存储

IPFS 是一种去中心化的分布节点存储方式,使用一个基于内容的地址系统。当一个文件请求被提出时,网络会使用文件的哈希值找到一个持有该文件的节点,并将其提供给请求者。这种方式既解决了 NFT 的存储安全问题,也缓解了区块链网络压力。

但是 IPFS 无法保证 NFT 源数据的永久保存。IPFS 缺乏各节点维护上的奖励机制,谁也没有绝对的义务帮助他人永久存储,一旦某个节点内存达到临界点,系统也有可能将原有数据删除,释放容量以容纳新的数据。此外,如果维护 NFT 的 IPFS 数据平台发生故障,那么所有存储的信息将会丢失,IPFS 存储方案的稳定性有待考量。



2. 链上完全存储

目前链下存储的两种主要方式都有其缺点。相信屏幕前的你和先驱开发者一样,会产生是否能够实现链上完全存储的想法?然而中心化服务器进行数据长期存储势必会带来数据丢失和损坏的风险,去中心化的链上存储是解决 NFT 存储问题的大势所趋。从现有技术而言,实现链上方式的存储完全没有问题,但海量的 NFT 信息数据会导致大部分区块链网络拥堵、链条负载,产生高额的数据维护和存储成本。

目前,存储成本是阻碍 NFT 源文件链上存储的问题之一。每笔 NFT 相关的交易涉及计算资源和存储等复杂的流程,昂贵的费用极大地限制了 NFT 的广泛应用。然而,通过 DFINITY 上的容器智能合约,使链上低价存储大量 NFT 成为可能,让持有者能够安全地享受 NFT 数字资产。


DFINITY 如何破局 NFT 存储困境

安全、去中心化的链上存储

「容器」(Canister)是 DFINITY 独有的一种计算单元,DFINITY 存储在「容器」之中进行。由容器和 Cycles 组成独特的存储基础设施,可以将智能合约和元数据(Metadata)统一放置在一个地方,保障了 NFT 的去中心化和安全性。此外,DFINITY 上所有数据都保存在代码所定义的数据结构中,从构建简单的数组、哈希图或任何其他数据结构,各种类型的 NFT 数据都能得以保存。

至于链上存储容量,受到 WebAssembly 的限制,一个容器只能存储 4GB 的内存页面。为此,DFINITY 专门设计了一个经典的架构 Open Internet Service ——包括前端容器和后端数据桶容器。目前,开发者可以通过使用名为 BigMap 的现有库,只需使用一行代码,就可以向其写入对象。BigMap 可以达到 EB 级的数据存储,这种架构将通过前端容器和数据桶容器分叉,透明且动态地横向扩展,能够满足源源不断增长的 NFT 存储需求。



低价的存储成本

DFINITY 生态建立在基于不同原理的容器 Cycles 上,使其能够快速运行、托管网站、游戏、复杂的企业系统,由于其反向 Gas 模型,无论用户是铸造 NFT、使用 DEX,还是参与 SocialFi 或 Metaverse,都不会为用户收取预付费用,ICP 对最终用户而言也比以太坊便宜得多。

目前在 DFINITY 上的容器储存数据的成本佷低,如以太坊网络上储存 1 GB 数据一年的成本在百万美金,而在 DFINITY 每年 1 GB 的存储成本大约 5 美元左右。对比其他公链的天价成本,DFINITY 的存储成本微乎其微。

除此之外,DFINITY 还具有无限的可扩展性和网络速度,这对于以 NFT 为基础、旨在构建宏大元宇宙的众多项目来说,是极其利好的技术优势。从交互式 NFT 元宇宙到动态 NFT,我们可以预见未来更多 DFINITY 中将产生更多出色的创新 NFT 项目。


结 语

人类发展离不开文化的演进,随着越来越多的 NFT 应用场景落地实践,NFT 有望成为下一代的社交和文化的载体,引领用户探索区块链各个新领域,推进 Web3 世界的扩张与发展。而 NFT 存储安全问题成为当前 NFT 系统中最薄弱的环节,尽管当下主流方案尽可能地将 NFT 相关的数据存储在链下,解决了高昂的存储费用问题,但同时也带来了各种风险。

DFINITY 凭借技术优势,利用区块链的去中心化优势,助力构建繁荣安全的 NFT 生态系统,用户能够在 DFINITY 上安全可靠地获得 NFT 资产,直接使得开发者在 IC 上构建的 NFT 项目,也拥有着无限可能。


参考数据:

http://nonfungible.com/reports/2022/en/q1-quarterly-nft-market-report-free/thank-you

参考资料:

Where are your NFT’s really stored? On a centralized server, unless it’s on The Internet Computer

https://medium.com/@talkingweb3/where-are-your-nfts-really-stored-on-a-centralized-server-unless-it-s-on-the-internet-computer-161a10502519

How NFT Metadata works

https://medium.com/coinmonks/how-nft-metadata-works-a65ba7631842

A Technical Overview of the Internet Computer

https://medium.com/dfinity/a-technical-overview-of-the-internet-computer-f57c62abc20f

A Closer Look at Software Canisters, an Evolution of Smart Contracts

https://medium.com/dfinity/software-canisters-an-evolution-of-smart-contracts-internet-computer-f1f92f1bfffb

发布于: 6 小时前阅读数: 15
用户头像

TinTinLand

关注

还未添加个人签名 2022.01.14 加入

TinTin 是赋能下一代开发者的技术社区,通过聚集、培育、输送开发者到各开放网络,共同定义并构建未来。

评论

发布
暂无评论
你的 NFT 会消失吗?DFINITY 提供 NFT 存储最佳方案_区块链_TinTinLand_InfoQ写作社区