保密余额

什么是保密余额?

保密余额是一种 Token-2022 扩展,允许您在 token account 之间转移代币而不泄露转账金额。这对于隐私保护交易非常有用。只有转账金额和代币余额是私密的,token account 地址仍然是公开的。

它是如何工作的?

保密余额扩展向 Token Extension 程序添加了 指令 ,使您能够在账户之间转移代币而不泄露转账金额。

Confidential Balances Basic Overview

机密代币转账的基本流程如下:

  1. 创建一个启用了保密余额的 mint account。
  2. 为发送方和接收方创建启用了保密余额的 token account。
  3. 向发送方账户铸造代币。
  4. 将发送方的公开余额存入**机密待处理余额**。
  5. 将发送方的待处理余额应用机密可用余额
  6. 以机密方式将代币从发送方 token account 转账至接收方 token account。
  7. 将接收方的待处理余额应用机密可用余额
  8. 将接收方的机密可用余额提取公开余额

审计员密钥

保密余额 mint 可以存储一个可选的全局审计员 ElGamal 公钥。配置后,每笔保密转账都会包含分别为发送方、接收方和审计员加密的金额。转账证明会验证这三个密文包含相同的金额。公众仍然无法读取该金额,但持有审计员私钥的人可以解密该 mint 的转账金额。

保密余额授权方在初始化扩展时设置审计员密钥,或稍后通过 UpdateMint 进行更改。授权方可以轮换或清除该密钥。轮换仅适用于未来的转账,因此在需要历史审计访问时请保留之前的私钥。审计员密钥提供读取权限,不授权代币转账,也不会泄露账户的完整保密余额。

有关设置和轮换示例,请参阅 配置审计员。 钱包、区块浏览器、交易所和合规服务提供商还应查阅 审计员集成指南

有关机密转账流程各步骤的详细说明,请参阅对应页面:

下图展示了机密代币转账基本流程的详细序列:

Confidential Balances Detailed Overview

保密余额指令

保密余额扩展 指令 的完整列表如下:

指令说明
InitializeMint在 mint account 上启用保密余额。此指令必须与 TokenInstruction::InitializeMint 指令包含在同一笔交易中。
UpdateMint更新 mint 账户的审批策略及可选的全局审计员 ElGamal 公钥。
ConfigureAccount在 token account 上启用保密余额。
ApproveAccount如果 mint 要求对新 token account 进行审批,则批准该 token account 使用保密余额。
EmptyAccount清空待处理和可用的机密余额,以便关闭 token account。
Deposit将公开代币余额转换为待处理的机密余额。
Withdraw将可用的机密余额转换回公开余额。
Transfer在 token account 之间以机密方式转移代币。
ApplyPendingBalance在存款或转账后,将待处理余额转换为可用余额。
EnableConfidentialCredits允许 token account 接收机密代币转账。
DisableConfidentialCredits屏蔽传入的机密转账,同时仍允许公开转账。
EnableNonConfidentialCredits允许 token account 接收公开代币转账。
DisableNonConfidentialCredits屏蔽常规转账,使账户仅接收机密转账。
TransferWithFee以机密方式在 token account 之间转移代币并收取手续费。
ConfigureAccountWithRegistry使用 ElGamalRegistry 账户代替 VerifyPubkeyValidity 证明来配置 token account 保密余额的替代方式。

Is this page helpful?

Table of Contents

Edit Page
©️ 2026 Solana 基金会版权所有