Solana 上的压缩 NFT 通过将数据存储在账本本身中来降低铸造和管理大量 NFT 的成本。铸造压缩 NFT 比铸造传统 NFT 更具成本效益,这创造了一系列新的用例和吸引更多 Solana 活跃用户的方法。

本文将解释什么是压缩 NFT、它们如何工作以及如何压缩现有或新的 NFT。
什么是压缩 NFT?
压缩 NFT 是 Solana 上的 NFT,它们将其数据存储在 Merkle 树结构中,其中 Merkle 根在账户的链上,而 Merkle 叶存储在 Solana 分类账中(链下,但要经过共识),而不是像传统 NFT 那样完全在链上。
与普通 NFT一样Solana RPC 提供程序用于链下存储和处理数据,以最大限度地降低存储成本。
压缩 NFT 使用索引器来管理交易数据并促进 RPC 和链上智能合约之间的数据查询。现有的智能合约必须进行修改才能与压缩 NFT 交互。或者,压缩 NFT 可以解压缩以与未修改的 Solana 程序一起使用。
谁创建了压缩 NFT?
压缩 NFT 是 Solana Labs 的 Merkle 树程序(称为account-compression)和 Metaplex Foundation 的压缩 NFT 程序(称为 Bubblegum)共同创造的。
Metaplex为 Solana 制定了 NFT 标准,创始团队是从 Solana Labs 中分离出来的。自 2021 年推出以来,Metaplex 已促成了超过 2200 万个 NFT 的铸造,并产生了 33.6 亿美元的 NFT 销售额。Solana 上的 Merkle 树程序使通过 Metaplex 创建的压缩 NFT能够被编码到 Solana 区块链的账本中。
压缩 NFT 的常见用例有哪些?
压缩 NFT 使企业和个人能够大规模铸造 NFT,而无需承担与传统 NFT 相比过高的相关成本。可以利用压缩 NFT 的行业包括:游戏、音乐、活动、元宇宙和企业。
1. 游戏
压缩 NFT 有可能成为数百万玩家的游戏内资产。由于 web3 游戏的潜在规模,压缩 NFT 可以为 web3 游戏开发公司节省成本,同时发行数百万个游戏内 NFT。
2. 音乐与活动
每年售出的音乐会和活动门票高达数百万张,压缩 NFT 可以为票务公司节省资金,并充当活动参与者的数字收藏品,同时提供 web3 产品的安全性和真实性。
3. 元宇宙
随着元宇宙和类元宇宙游戏的日益流行,压缩 NFT 使元宇宙开发公司能够为全球数百万人数字化大量游戏内收藏品。
4. 企业级系统
从跨供应链追踪商品到数字化公共记录,压缩 NFT 可以让大型组织以当今 NFT 实施成本的一小部分铸造、存储和检索大量 NFT。
何时应使用压缩 NFT?
在大规模铸造 NFT 时应该使用压缩 NFT,因为链下存储数据可以显著降低租用账户空间的成本,每个 Solana 账户都需要支付租用账户空间的费用来管理数据。
压缩 NFT 与未压缩 NFT
压缩 NFT 和非压缩 NFT 都是在链上发行和验证的,但主要区别在于 NFT 元数据的存储位置。压缩 NFT 将元数据存储在链下,而传统 Solana NFT 将数据存储在链上。
压缩 NFT 与 NFT 有何不同?
压缩 NFT 与传统 NFT 有四个主要区别:
1. NFT 元数据存储
压缩 NFT 将其数据存储在 Merkle 树的链下,并通过 Solana RPC 提供商访问。
2.成本
由于压缩 NFT 将数据存储在链下,因此其成本效益显著提高。
3. 数据所有权
当你想修改压缩的NFT时,你必须通过加密方式证明你有更改链下数据的权限,从而保证链下数据存储的可信度。
4. 程序交互
现有程序(即 Solana 智能合约)必须进行修改才能与压缩的 NFT 交互,除非 NFT 本身被解压缩。
压缩的 NFT 能节省多少钱?
铸造 100 万个传统 NFT 大约需要 12,000 SOL,而铸造相同数量的压缩 NFT 仅需 5 SOL,即节省 99.9% 的成本。
事实上,NFT 的集合越大,铸造成本的压缩幅度就越大,如下图所示:
因为铸造传统 NFT 时最大的支出是支付 Solana 上的存储空间,而压缩 NFT 则消除了这些存储空间,所以剩余成本大部分都是简单的交易费用。
铸造 10,000 个 Solana NFT 收藏品的成本是多少?
铸造 10,000 个压缩 NFT(新项目的标准 NFT 集合大小)大约需要 3.5 SOL。下表详细介绍了铸造数量从 1 万到 10 亿个 NFT 的压缩 NFT 集合的成本:
压缩 NFT 如何工作?
NFT 的压缩方式如下:
Metaplex 的 Bubblegum 程序用于验证与 NFT 相关的元数据
Bubblegum 调用 account-compression 为 Merkle 树添加新的叶子
账户压缩会更新链上的 Merkle 树,以反映世界的新状态
对 Merkle 树的任何更改(例如添加新的 NFT)都会写入 Solana 区块链
链下索引器跟踪对 Merkle 树的修改并管理支持 dapps 和程序所需的信息和授权。
什么是压缩的 NFT 权限?
权限是与 NFT 帐户相关的属性,用于指定帐户可以执行的操作。每个 NFT 帐户下都有其他三个帐户:
每个下属帐户均具有与其相关的不同属性。
1. 树木权威
该机构通常是一个程序,它被授权通过帐户压缩程序向树中添加新叶子,并且该程序还负责对加密哈希进行编码。
2. 叶权威
这是赋予拥有叶子的钱包账户的属性。钱包账户可用于替换、移除和解压叶子。
压缩的 NFT 存储在哪里?
压缩的 NFT 元数据通过 Solana RPC 服务提供商存储在链下 Merkle 树中,并且该数据由索引器监控。这比将相同数据存储在链上更具成本效益。实际上,数据是链下的,而数据的小得多的证明以 Merkle 树根的形式存储在链上。
如何压缩 NFT
压缩 NFT 是一项相当简单的任务,但根据您压缩新的还是现有的 NFT,其过程略有不同。
压缩新的 NFT
以下是压缩新 NFT(尚未铸造的 NFT)的四个步骤:
Metaplex 的 Bubblegum 软件用于创建 Gummyroll Merkle 树
Bubblegum mintNFT指令名为
链下索引器从账本中检索mintNFT指令,并保存叶元数据。
dapp 通过 RPC 节点调用 get_assets_for_owner 指令来返回NFT
压缩现有的 NFT
以下是压缩现有 NFT(已经铸造的 NFT)的三个步骤:
在 Bubblegum 程序中调用转移指令以及 NFT 信息
Bubblegum 程序对 Gummyroll 进行跨程序调用,以添加新的 Merkle 树根
链下索引器从区块链检索转移指令并更新叶子的所有者属性。
第三步确保叶子所代表的 NFT 的所有权转移给新所有者。
要压缩现有的 NFT,无需从头开始创建 Gummyroll 树,而是阅读Metaplex 的压缩 NFT 文档以获取更多信息。
NFT 减压如何工作?
解压过程会从链下 Merkle 树数据集中删除 NFT。以下是简单的分解:
一旦代币元数据程序验证了与 NFT 相对应的 Merkle 树上叶子的完整性,程序就会创建以下帐户:
Mint 账户
关联代币账户 (ATA)
代币元数据账户
主版本帐户
然后,Token 元数据程序会更新 Merkle 树以删除叶子。