Confidential Balancesとは?
Confidential BalancesはToken-2022の拡張機能で、転送金額を公開せずにtoken account間でトークンを転送できます。これはプライバシーを保護するトランザクションに役立ちます。非公開になるのは転送金額とトークン残高のみです。token accountのアドレスは公開されたままです。
- プロトコル概要 - 基盤となる暗号プロトコルの詳細
- クイックスタートガイド - セットアップおよび基本的なCLIコマンド
- Confidential Balances Cookbook - Confidential Balancesの使用方法を示すコードスニペット
どのように機能しますか?
Confidential Balances拡張機能は、Token Extension programに instructions を追加し、転送金額を公開せずにアカウント間でトークンを転送できるようにします。
コンフィデンシャルトークン転送の基本的な流れは次のとおりです:
- Confidential Balancesを有効にしたmint accountを作成します。
- 送信者と受信者向けにConfidential Balancesを有効にしたtoken accountを作成します。
- 送信者のアカウントにトークンをミントする。
- 送信者の公開残高をコンフィデンシャル保留残高にデポジットする。
- 送信者の保留残高をコンフィデンシャル利用可能残高に適用する。
- 送信者のtoken accountから受信者のtoken accountへトークンをコンフィデンシャルに転送する。
- 受信者の保留残高をコンフィデンシャル利用可能残高に適用する。
- 受信者のコンフィデンシャル利用可能残高を公開残高に引き出す。
監査者キー
Confidential Balancesのmintには、オプションのグローバル監査者ElGamal公開鍵を保存できます。設定されている場合、すべての機密転送には送信者、受信者、および監査者向けに暗号化された金額が含まれます。転送プルーフは、3つの暗号文がすべて同じ金額を含んでいることを検証します。一般の人々は金額を読み取ることができませんが、監査者の秘密鍵を保持している人は、そのmintの転送金額を復号化できます。
Confidential Balancesの権限は、拡張機能の初期化時に監査者キーを設定するか、後から UpdateMint を使用して変更します。権限はキーのローテーションまたは削除が可能です。ローテーションは将来の転送にのみ適用されるため、過去の監査アクセスが必要な場合は以前の秘密鍵を保持してください。監査者キーは読み取りアクセスを提供するものであり、トークン転送の承認やアカウントの完全な機密残高の公開は行いません。
セットアップとローテーションの例については、 監査者の設定 を参照してください。 ウォレット、エクスプローラー、取引所、およびコンプライアンスプロバイダーは、 監査者統合ガイダンス も確認してください。
コンフィデンシャル転送フローの各ステップの詳細については、対応するページを参照してください:
Mint Accountの作成
Confidential Balancesを有効にしたmint accountの作成方法
Token Accountの作成
Confidential Balancesを有効にしたtoken accountの設定方法
トークンのデポジット
コンフィデンシャル保留残高へのトークンのデポジット方法
保留残高の適用
保留残高をコンフィデンシャル利用可能残高に適用する方法
トークンの引き出し
コンフィデンシャル利用可能残高からのトークンの引き出し方法
トークンの転送
token accounts間でのトークンのコンフィデンシャル転送方法
インテグレーションガイド
ウォレット、エクスプローラー、取引所がConfidential Balancesトークンをサポートする方法
発行者ガイド
Confidential Balancesトークンの発行と運用方法(承認ポリシー、監査者、手数料、mintおよびバーン)
以下の図は、機密トークン転送の基本フローの詳細なシーケンスを示しています:
Confidential Balances Instructions
Confidential Balances拡張機能の instructions の完全なリストは以下のとおりです:
| Instruction | 説明 |
|---|---|
InitializeMint | mint accountでConfidential Balancesを有効にします。このinstructionは TokenInstruction::InitializeMint instructionと同じトランザクションに含める必要があります。 |
UpdateMint | mintのアカウント承認ポリシーおよびオプションのグローバル監査者ElGamal公開鍵を更新します。 |
ConfigureAccount | token accountでConfidential Balancesを有効にします。 |
ApproveAccount | mintが新しいtoken accountの承認を必要とする場合、Confidential Balances向けにtoken accountを承認します。 |
EmptyAccount | token accountをクローズできるよう、保留中および利用可能な機密残高を空にします。 |
Deposit | 公開トークン残高を保留中の機密残高に変換します。 |
Withdraw | 利用可能な機密残高を公開残高に戻します。 |
Transfer | token account間で機密的にトークンを転送します。 |
ApplyPendingBalance | デポジットまたは転送後に、保留中の残高を利用可能な残高に変換します。 |
EnableConfidentialCredits | token accountが機密トークン転送を受け取れるようにします。 |
DisableConfidentialCredits | 公開転送は許可しながら、受信側の機密転送をブロックします。 |
EnableNonConfidentialCredits | token accountが公開トークン転送を受け取れるようにします。 |
DisableNonConfidentialCredits | 通常の転送をブロックし、アカウントが機密転送のみを受け取るようにします。 |
TransferWithFee | 手数料付きでtoken account間で機密的にトークンを転送します。 |
ConfigureAccountWithRegistry | VerifyPubkeyValidity プルーフの代わりに ElGamalRegistry アカウントを使用して、Confidential Balances向けにtoken accountを設定する代替方法。 |
Is this page helpful?