Soldes Confidentiels

Que sont les Soldes Confidentiels ?

Soldes Confidentiels est une extension Token-2022 qui vous permet de transférer des tokens entre token accounts sans révéler le montant du transfert. Cela est utile pour les transactions préservant la confidentialité. Seuls les montants des transferts et les soldes des token accounts sont privés. Les adresses des token accounts restent publiques.

Comment cela fonctionne-t-il ?

L'extension Soldes Confidentiels ajoute des instructions au Token Extensions Program qui vous permettent de transférer des tokens entre comptes sans révéler le montant du transfert.

Confidential Balances Basic Overview

Le flux de base des transferts de jetons confidentiels est le suivant :

  1. Créer un mint account avec les Soldes Confidentiels activés.
  2. Créer des token accounts avec les Soldes Confidentiels activés pour l'expéditeur et le destinataire.
  3. Émettre des jetons vers le compte de l'expéditeur.
  4. Déposer le solde public de l'expéditeur dans le solde en attente confidentiel.
  5. Appliquer le solde en attente de l'expéditeur au solde disponible confidentiel.
  6. Transférer confidentiellement des jetons du token account de l'expéditeur au token account du destinataire.
  7. Appliquer le solde en attente du destinataire au solde disponible confidentiel.
  8. Retirer le solde disponible confidentiel du destinataire vers le solde public.

Clés d'auditeur

Un mint account avec Soldes Confidentiels peut stocker une clé publique ElGamal globale optionnelle pour l'auditeur. Lorsqu'elle est configurée, chaque transfert confidentiel inclut le montant chiffré pour l'expéditeur, le destinataire et l'auditeur. La preuve de transfert vérifie que les trois textes chiffrés contiennent le même montant. Le public ne peut toujours pas lire le montant, mais le détenteur de la clé secrète d'auditeur peut déchiffrer les montants des transferts pour ce mint.

L'autorité des Soldes Confidentiels définit la clé d'auditeur lors de l'initialisation de l'extension ou la modifie ultérieurement avec UpdateMint. L'autorité peut effectuer une rotation ou supprimer la clé. Une rotation ne s'applique qu'aux transferts futurs ; conservez donc les clés secrètes antérieures lorsqu'un accès d'audit historique est requis. Les clés d'auditeur fournissent un accès en lecture ; elles n'autorisent pas les transferts de tokens ni ne révèlent le solde confidentiel complet d'un compte.

Pour des exemples de configuration et de rotation, consultez Configurer un auditeur. Les portefeuilles, explorateurs, exchanges et fournisseurs de conformité doivent également consulter les recommandations d'intégration pour les auditeurs.

Pour plus de détails sur les étapes du flux de transfert confidentiel, consultez les pages correspondantes :

Le diagramme ci-dessous illustre la séquence détaillée du flux de base pour les transferts de jetons confidentiels :

Confidential Balances Detailed Overview

Instructions des Soldes Confidentiels

La liste complète des instructions de l'extension Soldes Confidentiels est la suivante :

InstructionDescription
InitializeMintActive les Soldes Confidentiels sur un mint account. Cette instruction doit être incluse dans la même transaction que l'instruction TokenInstruction::InitializeMint.
UpdateMintMet à jour la politique d'approbation des comptes du mint et la clé publique ElGamal globale optionnelle pour l'auditeur.
ConfigureAccountActive les Soldes Confidentiels sur un token account.
ApproveAccountApprouve un token account pour les Soldes Confidentiels si le mint exige une approbation pour les nouveaux token accounts.
EmptyAccountVide les soldes confidentiels en attente et disponibles pour permettre la fermeture d'un token account.
DepositConvertit le solde public de jetons en solde confidentiel en attente.
WithdrawConvertit le solde confidentiel disponible en solde public.
TransferTransfère des jetons entre token accounts de manière confidentielle.
ApplyPendingBalanceConvertit le solde en attente en solde disponible après des dépôts ou des transferts.
EnableConfidentialCreditsPermet à un token account de recevoir des transferts de jetons confidentiels.
DisableConfidentialCreditsBloque les transferts confidentiels entrants tout en autorisant les transferts publics.
EnableNonConfidentialCreditsPermet à un token account de recevoir des transferts de jetons publics.
DisableNonConfidentialCreditsBloque les transferts ordinaires pour que le compte ne reçoive que des transferts confidentiels.
TransferWithFeeTransfère des jetons entre token accounts de manière confidentielle avec des frais.
ConfigureAccountWithRegistryMéthode alternative pour configurer des token accounts pour les Soldes Confidentiels en utilisant un compte ElGamalRegistry au lieu d'une preuve VerifyPubkeyValidity.

Is this page helpful?

Table des matières

Modifier la page
© 2026 Fondation Solana. Tous droits réservés.