Transfert confidentiel

Que sont les transferts confidentiels ?

Les transferts confidentiels vous permettent de transférer des jetons entre des 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 de jetons sont privés. Les adresses des token accounts restent publiques.

Comment cela fonctionne-t-il ?

L'extension Confidential Transfer ajoute des instructions au Token Extensions Program qui vous permet de transférer des jetons entre des comptes sans révéler le montant du transfert.

Confidential Transfer Basic Overview

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

  1. Créer un mint account avec l'extension de transfert confidentiel.
  2. Créer des token accounts avec l'extension de transfert confidentiel 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.

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 Transfer Detailed Overview

Instructions de transfert confidentiel

La liste complète des instructions de l'extension de transfert confidentiel est la suivante :

InstructionDescription
InitializeMintConfigure le mint account pour les transferts confidentiels. Cette instruction doit être incluse dans la même transaction que l'instruction TokenInstruction::InitializeMint.
UpdateMintMet à jour les paramètres de transfert confidentiel pour un mint.
ConfigureAccountConfigure un token account pour les transferts confidentiels.
ApproveAccountApprouve un token account pour les transferts 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 transferts 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.