Solana引入了代币扩展(Token Extensions)的概念,旨在增强代币功能并推动生态系统发展。Token2022作为新代币程序,提供了一系列新功能,如铸造、转账费用、转账挂钩、非转让代币、保密转账等。这些扩展赋予代币创建者更多控制和灵活性,拓展了DeFi领域的可能性。与以太坊和币安智能链相比,Solana凭借其速度和价格优势,以及Token2022的功能,成为加密世界中的竞争对手。早期采用者包括$BERN、FluxBeam、Backpack等。代币扩展的推出标志着Solana在区块链领域迈出的
- 原文链接: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 扩展包括一个功能,强制所有收到的转账附带备忘录。备忘录基本上是一个短的链上消息。这个功能有点像收到礼物时附带一张便条,这样你就知道是谁送的以及为什么送给你。
不可变所有者扩展通过使账户的所有权不可重新分配来增加安全层级。这项规定增强了代币交易的安全性。要更好地理解这一点,我们需要看一下标准代币程序中的代币是如何存储的。通常,当某人想要向一个钱包发送代币时,第一步是创建一个代币账户来在接收者的钱包中持有该代币,这个账户由代币铸造地址和接收者钱包地址的组合构成。这一切都很好,但是一旦创建了这个账户,它的所有权就可以转让给其他人。在 Token2022 中使用不可变所有者扩展后,这将不再可能。
默认账户状态扩展使铸造者能够通过将所有新的代币账户设置为默认冻结状态来限制代币的使用。这提供了对代币分发和使用的额外控制层级。这意味着您可以收到代币,但在代币创建者允许之前无法对其进行任何操作。
使用 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 生态系统。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!