探索Solana上的NFT压缩技术

本文详细介绍Solana链上的NFT压缩技术

探索Solana上的NFT压缩技术

在加密货币世界中,最近的一项进展是数字资产的出现——通常被称为非同质化代币或简称NFT。NFT允许对数字资产(如艺术品、游戏物品、门票等)进行抗审查的所有权认证,同时促进了处理这些资产的活跃的点对点经济。实际上,可以说NFT是在加密货币中找到产品市场契合度(PMF)的第二大应用(继数字货币概念之后)。然而,NFT也面临着挑战。特别是在Solana上,存储这些资产的成本是一个主要挑战。虽然Solana受益于非常低的交易费用,但存储费用则是另一回事。要使数字资产在数字世界中真正普及,存储这些资产的成本必须尽可能地广泛负担得起。这就是Solana上的NFT压缩技术的用武之地。

NFT压缩技术通过允许开发者和创作者以显著降低的成本铸造大量NFT,使得下一代加密驱动的应用成为可能。想象一下,一个大型多人在线角色扮演游戏(MMORPG),其中游戏物品是可交易的NFT,游戏经济与全球经济无缝整合。自然地,这些游戏将包含数百万乃至数十亿的物品,在像以太坊这样的区块链上铸造这些物品将花费巨资。NFT压缩使这在Solana上成为可能——现在就可以。

为了看出这有多强大,让我们来看一个例子:Polygon(以太坊的一个扩展解决方案)目前的铸造NFT的费用大约为0.05美元。这意味着在Polygon上铸造大约十亿个NFT将花费大约5000万美元。

而在Solana上(使用压缩技术),铸造每个NFT的成本将是0.0000005 SOL,因此铸造十亿个NFT的成本为撰写本文时约为11,000美元。这是约5000万美元,或大约便宜三个数量级。这就是压缩的力量。

但是压缩是如何工作的呢?让我们来找出答案。

简而言之——NFT压缩让开发者和创作者将大部分NFT数据存储在账本上(这比链上存储便宜得多),同时在Solana区块链上以默克尔树的形式存储该数据的数字指纹。如果索引数据被以任何方式篡改,这些数据的数字指纹将与链上的指纹不匹配——从而保证数据的完整性。

metaplex nft数据存储成本

Solana NFTs 背景(可选)

在深入了解压缩之前,让我们先回顾一下Solana上的NFT是如何工作的。对于那些已经熟悉Solana NFT的人来说,可以跳过这部分,直接阅读下一节。

在Solana上的代币使用两种类型的账户:铸币账户(mint accounts)和代币账户(token accounts)。铸币账户包含有关代币的全球信息,例如供应量。代币账户将代币与另一个用户账户关联。例如,如果用户A接收到1500 USDC,那么用户A的USDC代币账户(从其主用户账户派生)将存储这些代币。这个过程适用于所有代币。如果我想向用户A发送100 USDT,转账程序将首先派生用户A的USDT代币账户(如果它不存在),或者查找它(如果它存在)。这有点像在现实世界中你的主钱包里有许多不同的小钱袋,每种不同的货币都有一个小钱袋。你在一个钱袋里存欧元,在另一个钱袋里存美元,等等——但主钱包属于你,即用户。

solana用户账户

Solana上的NFT是单一供应的代币,即每种只存在一个。Metaplex还引入了一个称为Token Metadata Program的程序,该程序为NFT附加了一个元数据账户。元数据账户包括名称、符号、集合等信息,当然还有NFT图像本身。这是一个相当深入的话题,因此我们不会在这里进一步深入讨论。

压缩背景

压缩的目的是减少链上存储的数据量。这是通过在Solana账本上的Merkle树中存储数据(例如图像元数据)并将根存储在链上来实现的。索引器通过处理涉及该树的所有交易来维护Merkle树的当前状态。用户可以从索引器快速检索其数据。链上的根确保程序交互的有效性和安全性,用户可以将索引器数据与链上根进行对照,以确保数据是最新且有效的。

好的,慢一点,什么是Merkle树?

Merkle树是一种数据结构,它允许你快速高效地验证大量数据的完整性。它通过将数据分解成更小的片段,称为“叶子”,然后将这些叶子组合成越来越大的“节点”。

树中的每个节点代表其子节点的哈希。然后父节点结合其子节点的哈希来创建自己的唯一哈希。这个过程重复进行,直到所有的叶子都合并成树顶部的单个哈希,称为“根哈希”。根哈希可以用来验证树中的所有数据都是完整且未更改的,而无需检查所有单独的叶子。

默克尔树

Solana压缩由账户压缩程序驱动。该程序允许开发者创建一个Merkle树账户,该账户将存储根哈希。然后,开发者可以添加新的叶子或替换现有的叶子。任何叶子的替换都需要一个“证明路径”,这是包含叶子和所有计算根哈希所需节点的树的最小子集。压缩程序将根据根哈希检查证明以验证数据的有效性。这是必要的,因为树的实际内容不存储在链上。

总之,压缩程序允许开发者创建Merkle树,并在树内添加/更新项目。由于每个操作都是通过Solana交易执行的,树的历史记录可在Solana账本上查看。如果索引器或RPC提供者出现故障,或者开发者想要更换提供者,可以通过重放树的历史来构建整棵树。最后,树的根存储在链上,用于数据验证和安全。综合考虑,该系统消除了在链上存储状态的需要,减少了成本,并有效地“压缩”了数据。

注意:开发者对压缩常有的一个担忧是:“如果我依赖的RPC提供者被破坏或关闭了怎么办?我就倒霉了吗?”答案是不会!因为所有交易仍然存储在链本身上,任何人都可以重放这些交易以推导出链的当前状态。你可以将RPC提供者视为方便访问当前状态的“缓存”。

NFT压缩

NFT压缩由一个名为Bubblegum的程序驱动。Bubblegum使用压缩程序将每个NFT存储在一个Merkle树中,从而消除了创建铸币账户、代币账户和元数据账户的需要。这就是为什么压缩NFT如此便宜的原因!

铸造压缩NFT就像在Merkle树中添加新项目一样简单,每个添加的项目都会包括NFT名称、集合、所有者等信息。除了铸造之外,Bubblegum还提供以下方法:

  • 转移
  • 销毁
  • 委托,取消委托
  • 销毁
  • 赎回,取消赎回
  • 解压
  • 验证创建者,设置并验证创建者
  • 验证集合,设置并验证集合

我们还添加了一些文档来帮助您开始使用这些方法,详情请见这里

读取压缩的NFTs

阅读压缩的NFT最简单的方式是通过数字资产标准(DAS)API,这是一个开源规范和系统,提供了一个统一的接口来查询代币。该系统由一个索引器驱动,该索引器处理所有Bubblegum交易并存储Merkle树。此外,该API允许用户通过创作者、集合和拥有者来查询NFT。是的,你没看错。DAS API不仅适用于压缩的NFT,还适用于常规的Solana NFT!这意味着你可以在一个API调用中以极快的速度获取链上的铸币列表或查看用户或程序持有的所有NFT。

我们还编写了关于这个API的文档,并且还提供了示例代码以帮助您开始使用,详情请见这里

压缩使用案例

截至撰写本文时,压缩技术已经推出几周,已经有一些令人惊叹的使用案例正在进行中。一些例子包括:

  • Dialect 正在利用NFT压缩技术为其聊天中的贴纸包提供支持。
  • Helium 正在利用NFT压缩来代表他们的Helium热点。
  • Crossmint 正在利用NFT压缩向数十万人空投,并为您提供了一个铸币API供您尝试。
  • Drip Haus 利用NFT压缩进行大规模空投。
  • Render 正在考虑转移到Solana,以利用NFT压缩对整个场景图进行代币化,用于GPU渲染。

这些使用案例展示了NFT压缩技术的多样性和潜力,特别是在提高效率和降低成本方面。

开始构建数字资产的未来

对使用压缩NFT感到兴奋吗?您可以立即开始使用Helius进行构建!Helius支持NFT压缩,并在Devnet和Mainnet中提供DAS API。您可以在这里免费生成一个API密钥,无需输入电子邮件或信用卡信息 —— 只需连接您的Solana钱包。还不确定如何铸造压缩NFT?查看我们的开源压缩示例仓库。我们迫不及待地想看到您的创作!

💡
原文链接:Exploring NFT Compression on Solana
本文由SlerfTools翻译,转载请注明出处。