Solana 程序库(SPL)是一套预编码程序,用于在 Solana 平台上发行代币和构建去中心化应用(dapp)。
区块链平台通常作为编程层运行,允许开发者在链上执行智能合约代码。
与 Ethereum 等平台允许开发者自由编写任何代码不同,Solana 由于其无状态模型和独特的共识协议而有所不同。在 Ethereum上,每个智能合约部署都包含代码以及智能合约本身的执行状态。而在 Solana 的无状态模型中,账户负责数据的存储和程序。
Ethereum 的状态模型意味着它必须以线性方式运行,按顺序处理每个交易以更新区块链的状态。相比之下,Solana 的无状态模型结合其历史证明共识,该共识为交易打上时间戳,意味着它可以并行处理许多交易,提供远高于 Ethereum 的吞吐量。
无状态模型意味着 Solana 上的程序可以通过 Solana 程序库(SPL)以通用方式实现,SPL 是一套预定义的智能合约,部署在 Solana 区块链上,可以跨多个账户并行运行。
程序库的可用性意味着 Solana 相对于 Ethereum 提供了更低的技术门槛,使其平台对编程经验或专业知识较少的开发者更加友好。然而,一个权衡是 Solana 在可编程性方面不一定像其他区块链平台那样灵活。
值得注意的是,SPL 定义了 Solana 上代币发行和交易所需的智能合约。因此,SPL 经常被用来指代 Solana 的代币类型,并经常与 Ethereum 的 ERC-20代币标准进行比较。然而,SPL 涵盖的应用范围比代币标准更广。
SPL 程序是用 Rust 编写的,这是 Solana 生态系统的编程语言。
SPL 涵盖了许多不同类型的功能和应用程序,供 Solana 上的 dapp开发者使用。最知名的类型如下所述。
代币程序定义了在 Solana 上发行可替代和不可替代 SPL 代币的通用标准。可替代性由开发者作为代币属性定义,以及其他属性,如代币名称、符号和最大供应量。
交换程序是一个用于构建去中心化交易所的程序,使用自动做市商,无需中央限价订单簿。SPL 交换程序受到 Uniswap和 Balance r 的强烈影响。
另一个受DeFi启发的程序,SPL 借贷允许开发者部署自己的流动性池 借贷协议实现,类似于 Aave 或 Compound。
SPL 有两种类型的质押池程序。一种允许质押池,使 SOL 可以离线质押,因此委托机器人可以将所有汇集的质押分布在整个验证器网络中。
另一种类型的池是第一种的简化版本,使用更少的代码来实现针对单个验证器的质押池。
SPL 名称服务允许在 Solana 上链上发行和管理名称。名称可以涵盖域名或 URL、Solana 公钥、Twitter 句柄等。
备忘服务允许将简短的备忘附加到交易中,验证备忘来源的账户也是交易签名者。
SPL 代币为开发者提供了几个功能,并且是 Solana 区块链上最常用的功能之一。
SPL 代币可以是可替代的或不可替代的。然而,与 Ethereum 不同,Ethereum 有单独的标准用于每种类型,SPL 代币的可替代性作为 SPL 程序实现的一部分定义。
与 Ethereum 上的 ERC-20 代币类似,SPL 代币在 Solana 生态系统中是可组合和互操作的,因此单个 dapp 可以支持所有 SPL 代币。
SPL 代币受益于底层 Solana 架构,意味着交易几乎是即时的,交易费用远低于 Ethereum。
一般来说,设计用于支持 Ethereum 代币的钱包和那些在 EVM 兼容网络上发行的钱包可能不支持 SPL 代币,反之亦然。Phantom是专为 Solana 和 SPL 代币开发的钱包的一个例子,其他流行的选项包括 Slope 和 Solflare。
2024 年初,Solana 宣布了一个项目,引入代币扩展,也称为 Token-2022。代币扩展为 SPL 代币带来了新功能,克服了现有 SPL 功能的一些限制。
新功能包括机密转移、扩展元数据等。这些扩展显著扩展了 Solana 代币的功能。例如,能够设置代币转移的规则可能使 Solana 成为希望仅限于那些已经通过相关反洗钱检查的账户进行交易的机构更具吸引力的平台。
Token-2022 计划于 2024 年底部署到 Solana 主网。