这篇文章详细介绍了半可替代代币(SFTs)的特性、优势及其在Solana区块链上的应用。文章解析了SFTs与可替代代币(FTs)和不可替代代币(NFTs)的不同之处,并通过示例说明了SFTs在游戏及元宇宙中的使用。
半可替代代币(SFTs)结合了可替代代币(FTs)和非可替代代币(NFTs)的特征,是Solana区块链的一项相对较新的创新。SFTs目前主要用于游戏和元宇宙应用,预计未来还会有许多其他用途。
半可替代代币的概念最初是基于以太坊的ERC1155多代币标准创建的,现在在Solana上以SFTs的形式存在。要理解SFTs在Solana上的功能,有必要了解区块链的架构,它将逻辑和数据分为数据账户和程序账户,还包括Solana的Token Metadata程序。
半可替代代币在其生命周期的不同阶段显示出可替代代币和非可替代代币的特性。最初,SFTs的功能类似于可替代代币,可以与相同的代币进行交换,双方不会因此而失去价值。一旦被使用,它们就会失去交换价值,并获得可收藏的非可替代代币特征。
在某些情况下,SFTs比NFTs更可取,因为它们更高效、成本效益更高、更灵活,并且交易安全性得到了改善。
使用SFTs而非NFTs的最大优势之一是,错误地址的代币交易是可逆和可退款的。
与必须单独转移的NFTs不同,SFTs支持批量转移。这意味着多个SFTs可以在一次程序调用中转移,从而节省时间并显著降低交易成本。
SFTs通过改善现有的NFT标准,允许高度安全的转移。
目前,SFTs主要用于游戏和元宇宙环境,其中链上活动可以附加到游戏内资产。我们来看两个例子:管理相同NFT的多个单位和记录游戏成就。
Genopets是一个在Solana区块链上运行的NFT游戏,它同时使用NFTs和SFTs。玩家可以作为NFT购买一个独特的宠物,而他们收集的丰富资源(例如木材、水、晶体、金属等)以SFTs的形式提供。
SFTs在NFT游戏中更可取,因为它们允许玩家在一次交易中购买和销售多个资产(例如15个水晶)。可替代代币可以在单个程序(即智能合约)中容纳多个资产,这意味着它们的转移比逐个处理的标准NFT生成更少的拥堵和较低的交易费用。
SFTs也可以用于记录游戏历史。例如,一个游戏内武器可以作为SFT创建,随着该武器的使用,它将获得NFT的特点,成为一个新的独特物品,因为它的游戏内历史被记录。
随着物品在一段时间内的转手,可以存储新的历史(例如,该武器被使用了多少次,多少次被用于击杀其他玩家等),就像在web2视频游戏中的传统武器特征一样。
Solana上的SFTs作为一种独特的账户类型运行,其元数据附加到代币上以表示在游戏或元宇宙环境中的特征。
SFTs在Solana上的功能与区块链的独特架构有关,具体而言,将逻辑和数据分为两个不同的组件,称为程序和数据账户,并且还有Token Metadata程序。
与大多数区块链不同,Solana将逻辑和数据分为两个不同的组件,称为程序和账户。与Solidity智能合约中将数据存储在变量中不同,Solana中的程序可以与存储在数据账户中的外部数据进行交互,并能够对其进行更改。
这种独特的结构使Solana中的程序性能极高,因为允许程序在访问多个账户时并行运行。可执行代码和数据账户之间的分离使Solana的程序更加模块化,因为它们并不固有地绑定于任何单独数据。
Solana账户是存储在特定地址的字节数组。账户的地址可以定义为加密对的公钥。要登录到一个账户,程序还必须能访问密钥对的私钥。一些类型的程序能够更改该账户中的数据。
新创建的账户通常由标记为账户所有者的程序初始化。该程序定义分配给账户的数据结构,并负责提供给账户的指令。
Solana上的账户类型包括:
Mint账户 - 存储代币的全局信息
Token账户 - 存储用户的Wallet账户与Mint账户之间的关系。
来源:Metaplex文档
PDAs是算法派生的账户地址,它们来源于拥有账户的程序的公钥,而不是构成加密对的一部分。
位于PDA上的账户旨在由其地址生成的特定程序控制。由于程序派生地址是算法生成的,因此不可能有两个不同的程序生成相同的PDA。
PDAs具有一些重要的用途,例如允许程序签名跨程序调用并支持在地址内创建可以确定地派生出多个账户。
Solana上的Token Metadata程序的目的是允许向代币添加额外的元数据,因为Mint账户在可以存储的数据的种类和数量上是有限的。
Token Metadata程序是Metaplex协议的一部分,该协议最初是为了简化在Solana上创建NFT而开发的。然而,该程序也可与SFTs一起使用。
Mint账户仅存储有关代币的一些数据属性,例如其当前供应量和权限。Mint账户不能持有其他应用和市场使用的数据。为了解决这个限制,Token Metadata程序提供了一个位于由Mint账户地址派生的PDA的Metadata账户。Metadata账户包含许多有价值的属性,使常规链上代币可以转变为数字资产。
Metadata账户
JSON标准是一种向代币添加数据的方式,这些数据存储在链下,以节省存储额外链上数据有关的费用。Metadata账户中的URI属性链接到一个链下的JSON文件,用于以某种标准存储代币的有用信息。
为了确保JSON文件无法更新,可以使用永久存储解决方案(如Arweave)进行存储。此外,Metadata账户中的Is Mutable属性可以用于防止URI属性和其他属性被更改。
链下JSON对象
Token Metadata是SFTs在游戏或元宇宙环境中作为元数据负荷重的对象(如武器)变得功能完整的方法。
Solana中的半可替代代币由一个Mint账户和两个属性组成:
它的供应量大于或等于0(例如,流通中有多个代币)
它没有小数位(例如,只有整数)
Metadata账户的添加通过代币标准属性跟踪代币的可替代性。该程序自动分配此属性,且不可手动更新。此外,FungibleAsset属性表示SFT的代币标准。
SFT的代币标准
Metadata账户还包含其他重要信息,指定SFT作为特定的游戏内武器,例如。该信息包括动画或徽标,这些内容根据JSON标准可使用URI属性在链下存储。
SFT元数据字段及其描述示例
Solana SFT元数据的JSON示例
SFTs的混合特性为如何在多种环境中以成本效益高且高度功能化的方式代表复杂数字资产提供了新的可能性。
尽管游戏和元宇宙用例是SFTs最受欢迎的用途,但由于其增强的灵活性以及通过链下存储数据来降低成本的机会,它们正吸引大量关注。
- 原文链接: alchemy.com/overviews/se...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!