Solana的代币扩展引入了一系列新功能,旨在增强和改进Solana上的代币功能。当前代币程序被视为spl代币,而代币扩展是Solana上代币程序的新版本,旨在满足日益增长的对更复杂和灵活代币功能的需求。关键扩展包括铸造、转账费用、转账钩子等,为代币创建者提供更多控制和定制能力。早期采用者如$BERN、去中心化交易所和钱包已开始应用代币扩展。Solana在速度和价格方面的优势使其成为加密货币领域的强大竞争对手。Token2022的推出被视为Solana在web3旅程中的重要飞跃,为DeFi领域带来新的可能
- 原文链接:https://www.helius.dev/blog/what-is-token-2022
- 译者:AI翻译官 校对:
- 本文永久链接:learnblockchain.cn/article…
在过去一年里,Solana 生态系统的发展迅速,推出了许多新的令人兴奋的技术。Solana 以其超快的处理速度和较低的交易费用而闻名,但即使具有这些令人印象深刻的优势,仍然有改进的空间。引入代币扩展,这是一个旨在增强 Solana 当前代币功能的新代币程序。让我们探讨一下代币扩展标准为 Solana 生态系统带来了什么。
在 Solana 上,除了原生代币 $SOL 之外的所有代币都被视为 spl 代币。这包括可互换的代币(如 $BONK)和不可互换的代币(NFT)。代币程序是一个定义了用于创建和处理可互换和不可互换代币的常见功能的程序。代币程序提供了一些开发人员和最终用户已经习惯的功能。这些操作包括铸造、转移和销毁代币。此外,它还提供了更新代币和冻结代币等功能,这使得可以冻结代币账户,防止对账户状态进行任何更改,直到解冻为止。
您可以将代币扩展视为 Solana 上代币程序的新版本。它可以处理可互换和不可互换的代币。这个新程序仍然具有旧代币程序的所有功能,但现在增加了一组旨在改进 Solana 上代币功能的有用新功能。这些新功能,也就是 Token2022 的真正魔力,以扩展的形式呈现。
但是为什么需要代币扩展?随着 Solana 的发展,对更复杂和适应性更强的代币功能的需求增长。虽然 Solana 上当前的代币程序通过一组简单的功能满足了可互换和不可互换代币的基本需求,但其简单性会带来可能限制创新的局限性。拥有新想法的开发人员通常需要分叉代币程序以添加所需功能,这对于实现广泛采用提出了挑战。Solana 的编程模型要求在交易中包含程序和账户,这使得创建涉及多个代币程序的交易变得复杂。此外,钱包和链上程序必须信任他们选择支持的任何代币程序,这可能存在风险。针对这种不断发展的情况,Solana 推出了 Token2022——一套旨在扩展生态系统内代币功能的附加功能和增强功能。
这个新标准的改变能力在于可用的扩展,这是为满足各种需求而引入的一组新字段。简单来说,在代币扩展的上下文中,扩展是指可以添加到代币中以增强其功能和有用性的额外功能或功能。扩展允许代币创建者定制其代币的行为和特征,以满足特定需求或目标。在创建代币时,可以选择使用任意数量的这些扩展。让我们解开一些关键扩展及其对 Solana 生态系统的潜在影响。重要的是要注意,并非所有这些扩展目前都已上线。
虽然现有的代币程序不允许在转账中收取费用,但代币扩展标准通过允许在协议级别配置转账费用来改变这一点。这种机制引入了对交易的新的财务控制水平。
转账钩子扩展赋予代币创建者对其代币转账的额外控制层。这对于管理与 NFT 版税相关的挑战尤为重要。转账钩子扩展通过使代币创建者能够创建自定义程序,这些程序将在代币转移时使用,从而允许进行任何后续操作。
代币扩展通过允许通过自己选择的地址关闭铸造账户来解决代币程序中的一个重大缺陷,这在以前是不可能的。这是通过在初始化铸造之前初始化 MintCloseAuthority 扩展来实现的。这允许除授权钱包之外的其他人关闭代币的铸造。
代币扩展引入了 InterestBearingMint 扩展,允许以不同方式表示代币的 UI 金额,包括它们已累积的利息。这个功能基本上允许代币“赚取利息”,使得持有时间越长,代币就越有价值。
NonTransferable 铸造扩展使得可以创建“灵魂绑定”代币,这些代币无法从钱包中移动。这对于独特成就或奖励非常合适,这些代币也非常适用于活动门票,因为您无法将该门票发送给其他人。
代币扩展引入了一种名为保密转账的新的保密代币扩展,这是一种利用零知识证明对 SPL 代币的余额和转账金额进行加密的功能。这个扩展的整体目标是通过专注于保密性而不是匿名性来提高用户隐私。由于余额可以增加或减少,代币扩展标准需要一种加密方案,允许进行这些隐藏的数学运算;加密必须是同态的。同态加密是一种特殊类别的加密方案,允许在加密数据上执行特定类型的计算,而无需实际解密数据。因此,这些隐藏的计算将产生一个加密结果,解密后等同于在明文中应用相同数学运算的结果。保密转账使用“扭曲的 ElGamal 加密”来实现对密文的隐藏数学运算的性能。
对于那些更感兴趣的人,扭曲的 ElGamal 加密 是标准 ElGamal 加密方案的一个简单变体,其中一个密文被分为加密消息的 Pedersen 承诺和解密句柄,以便在密文上执行隐藏的数学运算。
保密转账使用 Sigma 协议进行验证,这是一种特定类别的零知识证明,其中一方(证明者)可以向另一方(验证者)证明他们知道一个秘密,而不泄露秘密本身。这些 Sigma 协议对于提供的一些指令是必需的。让我们逐一解释每个证明:
(公钥) 有效性证明
验证扭曲的 ElGamal 公钥格式是否正确
可以将其视为在开始安全聊天之前验证另一个人的“数字身份证”
这对于 ConfigureAccount 指令是必需的(密文)有效性证明
确保加密消息格式正确
可以将其视为收到一个密封的盒子 - 你知道盒子没有被篡改,因为它仍然是密封的
这对于提款、转账和带手续费的指令是必需的
零余额证明
相等性证明
费用 Sigma 证明
范围证明
TLDR;这些零知识证明用于验证一方知道另一方可以验证而不用大声说出来的秘密。这些不同类型的证明有助于确保代币余额和转账在数学上按预期工作,以完全通过加密的方式保持私密。
只有持有解密密钥的账户持有人可以在这个保密系统中查看他们的余额。然而,可能存在外部第三方需要审查余额的情况,无论是出于审计还是合规目的。机密代币扩展允许使用他们的全球审计系统进行这一点。在这个系统中,每个账户可以有一个单独的解密密钥,因此持有者可以有选择地为特定账户提供读取访问权限。铸造代币的实体具有一个特殊的数据结构,可以选择包括一个全局“审计加密密钥”。代码如下:
转账 {
发送方金额: PKE::encrypt(pke_pubkey_sender, 10),
接收方金额: PKE::encrypt(pke_pubkey_receiver, 10),
审计员金额: PKE::encrypt(pke_pubkey_auditor, 10),
范围证明: 范围证明,
相等性证明: 相等性证明,
...
}
amount_auditor 参数是使用审计员的公共加密密钥加密的转账金额。任何拥有审计员秘钥的人都可以解密 amount_auditor,从而能够审计特定铸造的交易金额。
如果您是一位安全爱好者,您可能已经注意到这种设计中的一个潜在缺陷。假设 Alice 生成了关于她加密余额的证明。但是,与此同时,Bob 向 Alice 发送代币并且他的交易先被处理。然后,Alice 的交易被拒绝,因为生成的证明不会反映新更新的账户状态。这种攻击,称为前置交易,可能会导致 Alice 的账户无法使用,如果 Bob 持续向 Alice 的账户发送交易。账户的加密余额被划分为其待处理余额和可用余额,以防止这种类型的攻击:
let ct_pending = PKE::encrypt(pke_pubkey, 10);
let ct_available = PKE::encryption(pke_pubkey, 50);
账户 {
铸造: Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB,
拥有者: 5vBrLAPeMjJr9UfssGbjUaBmWtrXTg2vZuMN6L4c8HE6,
加密密钥: mpbpvs1LksLmdMhCEzyu5UEWEb3dsRPbB5,
待处理余额: ct_pending,
账户余额: ct_available,
...
}
任何支出资金都从可用余额中扣除,而任何收入资金都会增加待处理余额。
机密转账尚未上线,Solana 的介绍和快速入门指南子标题仍在开发中。您可以通过此 GitHub 问题跟踪机密转账的剩余任务,该问题位于 solana-program-library 存储库上。文档中确实有一个协议深入 ,但需要注意的是,不需要理解深入讨论中的内容就可以使用扩展。上面段落中关于机密转账的外行人摘要应该足以让您在一切上线后开始使用机密转账。
Token 扩展包括一个功能,强制所有收到的转账都附带备忘录。备忘录基本上是一条简短的链上消息。这个功能有点像收到礼物时附带一张便条,这样您就知道礼物是谁送的以及为什么送给您。
ImmutableOwner扩展通过使账户的所有权不可重新分配来增加安全层级。这项规定增强了代币交易的安全性。要更好地理解这一点,我们需要看一下标准代币程序中的代币是如何存储的。通常,当某人想要向一个钱包发送代币时,第一步是创建一个代币账户来在接收者的钱包中持有该代币,这个账户由代币铸造地址和接收者钱包地址的组合构成。这一切都很好,但事实上,一旦创建了这个账户,它的所有权就可以转移给其他人。在 Token2022 中使用不可变所有者扩展后,这将不再可能。
DefaultAccountState扩展使铸造者能够通过将所有新的代币账户设置为默认冻结状态来限制代币的使用。它提供了对代币分发和使用的额外控制层。这意味着您可以收到代币,但在代币创建者允许之前无法对其进行任何操作。
使用 Token 扩展,可以为代币指定一个永久账户委托。这基本上允许您指定一个永远具有管理来自铸造的代币权限的人(委托)。他们可以执行诸如转移或销毁代币的操作。如果使用此扩展,权限将对该铸造的任何账户具有无限的委托权限,这可能非常危险,因为该委托/人员将能够在任何人的钱包中转移或销毁代币。
以太坊和币安智能链(BSC)在 DeFi 领域已经取得了重大进展,我们已经在这些链上的代币上看到了一些 Token 扩展功能。一个例子是 BSC 上的 SafeMoon,它在每笔交易中引入了 10% 的费用,其中 5% 重新分配给其他 SafeMoon 持有者。这鼓励持有者持有。使用零知识证明进行机密转账的概念也并非新鲜事物。在以太坊上,像 Aztec Protocol 这样的项目探索了私密交易。
即使 Solana 在提供这些功能方面稍显缓慢,其卓越的速度和较低的交易成本为代币扩展提供了有利的环境,从而在竞争中占据优势,超越了以太坊和 BSC。
开发人员、dApps 和钱包需要适应这些新功能,以充分利用代币扩展所提供的优势。以下是一些新程序的早期采用情况:
$BERN,由 $BONK 社区创建,是第一个构建在代币扩展程序之上的代币之一。目前,$BERN 正在使用转账费扩展,对所有转账收取 6.9% 的费用。$BERN 团队正在使用此费用奖励 $BERN 持有者和 $BONK 持有者。
详细说明:
FluxBeam 是 Solana 上的一个 DEX,目前支持使用代币扩展程序创建的代币。
Backpack,一个流行的钱包扩展,已经添加了对 代币扩展 的支持,而 Phantom 将很快具备功能。
使用代币扩展程序挖掘自己的代币的工具现在已经 在 FluxBeam 上实时运行。
RugCheck 是一个用于查看 Solana 代币市场和不同代币的工具,已经允许查看使用 Token 2022 构建的代币。
代币扩展的引入是 Solana 在 web3 旅程中的一大飞跃。它带来了一系列新颖功能,同时增强了现有功能的能力。其开创性的扩展不仅赋予代币创建者更多的控制和灵活性,还在 DeFi 领域开辟了新的可能性。尽管其他区块链已经提供了类似的功能,但 Solana 在速度和价格方面的优势,加上 Token2022 的功能,使其在加密货币世界中成为一位强大的竞争对手。随着最初用户和庞大社区的支持不断扩大,Token2022 已准备好增强和提升 Solana 生态系统。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!