简介
概述
Bubblegum V2是Metaplex协议程序的最新迭代,用于在Solana上创建和交互压缩NFT(cNFT)。专为大规模操作而构建,Bubblegum V2保留了原始Bubblegum的所有优势,同时引入了强大的新功能。压缩NFT通过重新思考链上数据存储方式,使NFT的创建可以扩展到新的数量级。
请注意,某些Bubblegum V2指令将需要协议费用。请查看协议费用页面以获取最新信息。
Bubblegum V2的新功能
Bubblegum V2在原始Bubblegum程序的基础上构建,同时引入了几个强大的新功能:
- 冻结和解冻功能:提供两种类型的冻结/解冻:1)cNFT所有者可以将冻结权限委托给叶子委托人,用于资产级别的控制,为各种用例提供灵活性,如在特定事件期间阻止转账或实现锁定机制。2)如果在集合创建时启用了
PermanentFreezeDelegate插件,项目创建者可以通过永久冻结委托人对cNFT进行集合级别的冻结和解冻控制 - MPL-Core集合集成:Bubblegum V2 NFT现在可以添加到MPL-Core集合,而不仅限于代币元数据集合,允许更大的灵活性和与更广泛的Metaplex生态系统的集成。
- 版税强制执行:由于Bubblegum V2使用MPL-Core集合,可以使用
ProgramDenyList等方式对cNFT强制执行版税。 - 灵魂绑定NFT:cNFT现在可以设为灵魂绑定(不可转让),将其永久绑定到所有者的钱包。这非常适合凭证、出席证明、身份验证等。它需要在创建集合时启用
PermanentFreezeDelegate插件。 - 允许永久转账:如果在集合上启用了
PermanentTransferDelegate插件,永久转账委托人现在可以在没有叶子所有者交互的情况下将cNFT转移给新所有者。 - 授权销毁:如果集合启用了
PermanentBurnDelegate插件,委托人可以在没有叶子所有者签名的情况下销毁NFT。 - 属性:可以使用MPL-Core的
attributes插件在集合级别添加属性数据。
为了使上述功能正常工作,Bubblegum V2引入了新的叶子模式(LeafSchemaV2)。要了解更多关于Bubblegum V2中使用的叶子,请查看以下部分。
LeafSchemaV2
Bubblegum V2引入了新的叶子模式(LeafSchemaV2),它支持额外的功能同时保持向后兼容。这个新模式允许:
- 与MPL-Core集合集成,而不是传统的代币元数据
- 支持冻结/解冻功能
- 启用灵魂绑定功能 项目可以根据需求选择使用旧版Bubblegum的原始叶子Schema或使用Bubblegum V2的新v2模式。
要使用新的LeafSchemaV2,必须使用需要通过createTreeV2指令创建的V2默克尔树。V1默克尔树不支持新的叶子模式,V2默克尔树与V1叶子不兼容。
默克尔树、叶子和证明
压缩NFT仅存在于默克尔树的上下文中。我们在专门的高级指南中解释了什么是默克尔树,但就本概述而言,您可以将默克尔树视为我们称为叶子的哈希集合。每个叶子是通过哈希压缩NFT的数据获得的。
对于默克尔树中的每个叶子,可以提供一个哈希列表——称为证明——使任何人都能验证给定的叶子是该树的一部分。每当压缩NFT被更新或转移时,其关联的叶子将改变,其证明也会改变。
因此,默克尔树充当链上结构,允许任何人验证给定的压缩NFT是否存在。它们在不存储任何NFT数据的情况下完成这一点,这使它们具有极高的可扩展性。
这带来了一个重要的问题:NFT数据存储在哪里?
Metaplex DAS API
当我们铸造新的压缩NFT时,其数据被哈希并作为新叶子添加到默克尔树中。但还有更多。此外,整个NFT数据存储在创建压缩NFT的交易中。类似地,当压缩NFT被更新时,其更新的数据再次作为更改日志保存在交易中。因此,虽然没有任何账户跟踪该数据,但可以查看分类账中的所有先前交易并找到该信息。
每次仅为获取一个NFT的数据就要爬取数百万个交易,这显然不是最佳用户体验。因此,压缩NFT依赖某些RPC实时索引该信息,以将此抽象化,不让最终用户感知。我们将这个能够获取压缩NFT的RPC API称为Metaplex DAS API。
请注意,并非所有RPC都支持DAS API。因此,在应用程序中使用压缩NFT时,您可能对"Metaplex DAS API RPC"页面感兴趣,以选择适当的RPC。
我们在高级"存储和索引NFT数据"指南中更详细地讨论了这一点。
功能
尽管NFT数据不存储在账户中,但仍然可以对压缩NFT执行各种操作。这是通过请求当前NFT数据并确保其哈希叶子在默克尔树上有效来实现的。因此,可以对压缩NFT执行以下操作:
- 铸造cNFT,带或不带关联集合。
- 转移cNFT。
- 更新cNFT的数据或集合。
- 销毁cNFT。
- 委托cNFT。
- 验证和取消验证cNFT集合。
- 验证和取消验证cNFT的创作者。
- 冻结和解冻cNFT。
- 使cNFT成为灵魂绑定。
下一步
现在我们从高层次了解了压缩NFT的工作原理以及Bubblegum V2的新功能,我们建议查看我们的快速开始页面,其中列举了可用于与压缩NFT交互的各种语言/框架。之后,可以使用各种功能页面了解更多关于可在cNFT上执行的特定操作。最后,还提供高级指南以加深您对cNFT和默克尔树的了解。
