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.
- Présentation du protocole - Détails sur le protocole cryptographique sous-jacent
- Guide de démarrage rapide - Configuration et commandes CLI de base
- Confidential Balances Cookbook - Extraits de code sur l'utilisation de l'extension Confidential Transfer
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.
Le flux de base des transferts de jetons confidentiels est le suivant :
- Créer un mint account avec l'extension de transfert confidentiel.
- Créer des token accounts avec l'extension de transfert confidentiel pour l'expéditeur et le destinataire.
- Émettre des jetons vers le compte de l'expéditeur.
- Déposer le solde public de l'expéditeur dans le solde en attente confidentiel.
- Appliquer le solde en attente de l'expéditeur au solde disponible confidentiel.
- Transférer confidentiellement des jetons du token account de l'expéditeur au token account du destinataire.
- Appliquer le solde en attente du destinataire au solde disponible confidentiel.
- 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 :
Créer un mint account
Comment créer un mint account avec l'extension Confidential Transfer
Créer un token account
Comment configurer un token account avec l'extension Confidential Transfer
Déposer des jetons
Comment déposer des jetons dans le solde en attente confidentiel
Appliquer le solde en attente
Comment appliquer le solde en attente au solde confidentiel disponible
Retirer des jetons
Comment retirer des jetons du solde confidentiel disponible
Transférer des jetons
Comment transférer confidentiellement des jetons entre des token accounts
Guide d'intégration
Comment les portefeuilles, explorateurs et exchanges peuvent prendre en charge les jetons à transfert confidentiel
Guide de l'émetteur
Comment émettre et gérer un jeton à transfert confidentiel (politique d'approbation, auditeurs, frais, émission et destruction)
Le diagramme ci-dessous illustre la séquence détaillée du flux de base pour les transferts de jetons confidentiels :
Instructions de transfert confidentiel
La liste complète des instructions de l'extension de transfert confidentiel est la suivante :
| Instruction | Description |
|---|---|
InitializeMint | Configure le mint account pour les transferts confidentiels. Cette instruction doit être incluse dans la même transaction que l'instruction TokenInstruction::InitializeMint. |
UpdateMint | Met à jour les paramètres de transfert confidentiel pour un mint. |
ConfigureAccount | Configure un token account pour les transferts confidentiels. |
ApproveAccount | Approuve un token account pour les transferts confidentiels si le mint exige une approbation pour les nouveaux token accounts. |
EmptyAccount | Vide les soldes confidentiels en attente et disponibles pour permettre la fermeture d'un token account. |
Deposit | Convertit le solde public de jetons en solde confidentiel en attente. |
Withdraw | Convertit le solde confidentiel disponible en solde public. |
Transfer | Transfère des jetons entre token accounts de manière confidentielle. |
ApplyPendingBalance | Convertit le solde en attente en solde disponible après des dépôts ou des transferts. |
EnableConfidentialCredits | Permet à un token account de recevoir des transferts de jetons confidentiels. |
DisableConfidentialCredits | Bloque les transferts confidentiels entrants tout en autorisant les transferts publics. |
EnableNonConfidentialCredits | Permet à un token account de recevoir des transferts de jetons publics. |
DisableNonConfidentialCredits | Bloque les transferts ordinaires pour que le compte ne reçoive que des transferts confidentiels. |
TransferWithFee | Transfère des jetons entre token accounts de manière confidentielle avec des frais. |
ConfigureAccountWithRegistry | Mé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?