Confidential Balances

Confidential Balancesとは?

Confidential BalancesはToken-2022の拡張機能で、転送金額を公開せずにtoken account間でトークンを転送できます。これはプライバシーを保護するトランザクションに役立ちます。非公開になるのは転送金額とトークン残高のみです。token accountのアドレスは公開されたままです。

どのように機能しますか?

Confidential Balances拡張機能は、Token Extension programに instructions を追加し、転送金額を公開せずにアカウント間でトークンを転送できるようにします。

Confidential Balances Basic Overview

コンフィデンシャルトークン転送の基本的な流れは次のとおりです:

  1. Confidential Balancesを有効にしたmint accountを作成します。
  2. 送信者と受信者向けにConfidential Balancesを有効にしたtoken accountを作成します。
  3. 送信者のアカウントにトークンをミントする。
  4. 送信者の公開残高をコンフィデンシャル保留残高デポジットする。
  5. 送信者の保留残高をコンフィデンシャル利用可能残高適用する。
  6. 送信者のtoken accountから受信者のtoken accountへトークンをコンフィデンシャルに転送する。
  7. 受信者の保留残高をコンフィデンシャル利用可能残高適用する。
  8. 受信者のコンフィデンシャル利用可能残高を公開残高引き出す

監査者キー

Confidential Balancesのmintには、オプションのグローバル監査者ElGamal公開鍵を保存できます。設定されている場合、すべての機密転送には送信者、受信者、および監査者向けに暗号化された金額が含まれます。転送プルーフは、3つの暗号文がすべて同じ金額を含んでいることを検証します。一般の人々は金額を読み取ることができませんが、監査者の秘密鍵を保持している人は、そのmintの転送金額を復号化できます。

Confidential Balancesの権限は、拡張機能の初期化時に監査者キーを設定するか、後から UpdateMint を使用して変更します。権限はキーのローテーションまたは削除が可能です。ローテーションは将来の転送にのみ適用されるため、過去の監査アクセスが必要な場合は以前の秘密鍵を保持してください。監査者キーは読み取りアクセスを提供するものであり、トークン転送の承認やアカウントの完全な機密残高の公開は行いません。

セットアップとローテーションの例については、 監査者の設定 を参照してください。 ウォレット、エクスプローラー、取引所、およびコンプライアンスプロバイダーは、 監査者統合ガイダンス も確認してください。

コンフィデンシャル転送フローの各ステップの詳細については、対応するページを参照してください:

以下の図は、機密トークン転送の基本フローの詳細なシーケンスを示しています:

Confidential Balances Detailed Overview

Confidential Balances Instructions

Confidential Balances拡張機能の instructions の完全なリストは以下のとおりです:

Instruction説明
InitializeMintmint accountでConfidential Balancesを有効にします。このinstructionは TokenInstruction::InitializeMint instructionと同じトランザクションに含める必要があります。
UpdateMintmintのアカウント承認ポリシーおよびオプションのグローバル監査者ElGamal公開鍵を更新します。
ConfigureAccounttoken accountでConfidential Balancesを有効にします。
ApproveAccountmintが新しいtoken accountの承認を必要とする場合、Confidential Balances向けにtoken accountを承認します。
EmptyAccounttoken accountをクローズできるよう、保留中および利用可能な機密残高を空にします。
Deposit公開トークン残高を保留中の機密残高に変換します。
Withdraw利用可能な機密残高を公開残高に戻します。
Transfertoken account間で機密的にトークンを転送します。
ApplyPendingBalanceデポジットまたは転送後に、保留中の残高を利用可能な残高に変換します。
EnableConfidentialCreditstoken accountが機密トークン転送を受け取れるようにします。
DisableConfidentialCredits公開転送は許可しながら、受信側の機密転送をブロックします。
EnableNonConfidentialCreditstoken accountが公開トークン転送を受け取れるようにします。
DisableNonConfidentialCredits通常の転送をブロックし、アカウントが機密転送のみを受け取るようにします。
TransferWithFee手数料付きでtoken account間で機密的にトークンを転送します。
ConfigureAccountWithRegistryVerifyPubkeyValidity プルーフの代わりに ElGamalRegistry アカウントを使用して、Confidential Balances向けにtoken accountを設定する代替方法。

Is this page helpful?

目次

ページを編集
© 2026 Solana Foundation. 無断転載を禁じます。