半同质化代币 (SFT) 结合了同质化代币 (FT) 和非同质化代币 (NFT) 的特点,是 Solana 区块链的一项相对较新的创新。SFT 目前用于游戏和元宇宙应用程序,预计未来会有许多其他用途。
半同质化代币的概念最初是在以太坊上使用ERC1155 多代币标准创建的,现在以 SFT 的形式存在于 Solana 上。要了解 SFT 在 Solana 上的运作方式,必须了解区块链的架构,该架构将逻辑和数据分为数据账户和程序账户,以及 Solana 的代币元数据程序。
SFT 与可同化代币和不可同化代币有何不同?
半同质化代币在其生命周期的不同阶段表现出同质化代币和非同质化代币的特质。最初,SFT 的功能类似于同质化代币,可以与相同的代币进行交换,双方都不会损失价值。一旦使用,它们就会失去交换价值,并获得可收藏的非同质化代币的属性。
使用 SFT 而不是 NFT 的主要优势是什么?
在某些情况下,SFT 比 NFT 更可取,因为它们更高效、更具成本效益、更灵活,并且交易安全性更高。
1.可逆交易
与 NFT 相比,使用 SFT 的最显著优势可能在于,发往错误地址的代币交易是可逆且可退款的。
2. 更高效、更具成本效益
与必须单独转移的 NFT 不同,SFT 支持批量转移。这意味着可以在单个程序调用中转移多个 SFT,从而节省时间并显著降低交易成本。
3. 提高安全性
SFT 通过改进 NFT 的现有标准来实现高度安全的传输。
SFT 有何用途?
目前,SFT 主要用于游戏和元宇宙环境,其中链上活动可以附加到游戏内资产。让我们看两个例子:管理同一 NFT 的许多单元,以及记录游戏成就。
1. Genopets SFT 示例
Genopets 是Solana 区块链上的一款 NFT 游戏,同时使用了 NFT 和 SFT。玩家可以购买独特的宠物作为 NFT,而他们收集的丰富资源(例如木材、水、水晶、金属等)可以作为 SFT 使用。
SFT 更适合 NFT 游戏,因为它们允许玩家在单笔交易中买卖多种资产(例如 15 颗水晶)。同质化代币可以在单个程序(即智能合约)中容纳多种资产,这意味着它们的转移比单独处理的标准 NFT 产生的拥塞更少,交易费用更低。
2. 游戏内成就示例
SFT 还可用于记录游戏历史。例如,游戏中的武器可以制作成 SFT,随着武器的使用,它会获得 NFT 的特性,成为一种新的独特物品,因为它记录了游戏历史。
当物品随着时间的推移而转手时,可以存储新的历史记录(例如,该武器被使用了多少次,有多少次被用来杀死其他玩家等),就像 web2 视频游戏中的传统武器特征一样。
SFT 如何在 Solana 上运作?
Solana 上的 SFT 是一种独特类型的帐户,其元数据附加到令牌以表示游戏或元宇宙环境中的特征。
Solana 上 SFT 的功能与区块链的独特架构有关,具体来说,就是将逻辑和数据分为两个不同的组件(称为程序和数据账户)以及 Token 元数据程序。
Solana 上的程序和账户是什么?
与大多数区块链不同,Solana 将逻辑和数据分为两个不同的组件,称为程序和账户。Solana 中的程序不是将数据存储在变量中(如 Solidity 智能合约),而是可以与存储在数据账户中的外部数据进行交互,并能够对其进行变异。
这种独特的结构允许程序在访问多个帐户时并行运行,从而使 Solana 中的程序具有高性能。可执行文件和数据帐户之间的分离使 Solana 中的程序更加模块化,因为它们本质上并不与任何单个数据绑定。
Solana 帐户是存储在特定地址的字节数组。帐户地址可以定义为加密对的公钥。要登录帐户,程序还必须能够访问密钥对的私钥。某些类型的程序能够改变该帐户中的数据。
新创建的账户通常由标记为账户所有者的程序初始化。该程序定义分配给账户的数据结构,并负责向账户提供指令。
Solana 上的账户类型包括:
Mint账户- 存储代币的全局信息
代币账户- 存储用户的钱包账户和 Mint 账户之间的关系。

程序派生地址 (PDA) 与 Solana 上的其他账户有何不同?
PDA 是通过算法从拥有其所在账户的程序的公钥派生出来的账户地址,而不是构成加密对的一部分。
PDA 上的账户旨在由生成其地址的特定程序控制。由于程序派生地址是通过算法从程序的公钥生成的,因此两个不同的程序不可能生成 PDA。
PDA 有一些重要用途,例如允许程序签署跨程序调用,并允许在可确定性派生的地址内创建多个帐户。
Solana 上的 Token Metadata 程序是什么?
Solana 上的 Token Metadata 程序的目的是允许向 token 添加额外的元数据,因为 Mint Accounts 可以存储的数据量和类型是有限的。
Token Metadata 程序是Metaplex 协议的一部分,该协议最初是为了简化在 Solana 上创建 NFT 而开发的。不过,该程序也适用于 SFT。
Mint 帐户仅存储有关代币的少数数据属性,例如其当前供应量和权限。Mint 帐户无法保存应用程序和市场使用的其他数据。为了克服这一限制,代币元数据程序提供了一个位于从 Mint 帐户地址派生的 PDA 上的元数据帐户。元数据帐户包含许多有价值的属性,允许将常规链上代币制成数字资产。

JSON 标准是什么?
JSON 标准是一种将数据添加到链下存储的代币的方法,以节省在链上存储额外数据的费用。元数据帐户中的 URI 属性链接到链下 JSON 文件,该文件存储了遵循特定标准的代币的有用信息。
为了确保 JSON 文件无法更新,可以使用永久存储解决方案(例如 Arweave)进行存储。此外,元数据帐户中的Is Mutable属性可用于防止 URI 属性和其他属性被更改。

Token Metadata 程序与 Solana 上的 SFT 有何关联?
代币元数据是 Solana 上的 SFT 在游戏或元宇宙环境中作为元数据密集型对象(例如武器)发挥作用的方式。
Solana 中的半同质化代币由具有两个属性的 Mint 账户组成:
其供应量大于或等于 0,(例如,流通中的代币超过 1 个)
没有小数(例如,只有整数)
添加元数据帐户可通过其代币标准属性跟踪代币的可互换性。程序会自动分配此属性,无法手动更新。此外,FungibleAsset 属性代表 SFT 的代币标准。

元数据帐户还包含其他重要信息,例如,将 SFT 指定为特定的游戏内武器。此信息包括动画或徽标,根据 JSON 标准,可以使用 URI 属性进行链下存储。


SFT 对于 web3 的未来有何影响?
SFT 的混合性质为如何以经济高效、功能强大的方式在各种环境中使用代币来表示复杂的数字资产开辟了新的可能性。
尽管游戏和元宇宙用例是 SFT 最受欢迎的用途,但由于其增强的灵活性以及通过链下存储数据来降低成本的机会,它们吸引了大量关注。