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.
- Présentation du protocole - Détails sur le protocole cryptographique sous-jacent
- Guide de démarrage rapide - Configuration et commandes CLI de base
- Cookbook sur les Soldes Confidentiels - Extraits de code montrant comment utiliser les Soldes Confidentiels
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.
Le flux de base des transferts de jetons confidentiels est le suivant :
- Créer un mint account avec les Soldes Confidentiels activés.
- Créer des token accounts avec les Soldes Confidentiels activés 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.
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 :
Créer un mint account
Comment créer un mint account avec les Soldes Confidentiels activés
Créer un token account
Comment configurer un token account avec les Soldes Confidentiels activés
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 tokens avec Soldes Confidentiels
Guide de l'émetteur
Comment émettre et gérer un token avec Soldes Confidentiels (politique d'approbation, auditeurs, frais, mint et burn)
Le diagramme ci-dessous illustre la séquence détaillée du flux de base pour les transferts de jetons confidentiels :
Instructions des Soldes Confidentiels
La liste complète des instructions de l'extension Soldes Confidentiels est la suivante :
| Instruction | Description |
|---|---|
InitializeMint | Active les Soldes Confidentiels sur un mint account. Cette instruction doit être incluse dans la même transaction que l'instruction TokenInstruction::InitializeMint. |
UpdateMint | Met à jour la politique d'approbation des comptes du mint et la clé publique ElGamal globale optionnelle pour l'auditeur. |
ConfigureAccount | Active les Soldes Confidentiels sur un token account. |
ApproveAccount | Approuve un token account pour les Soldes 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 Soldes Confidentiels en utilisant un compte ElGamalRegistry au lieu d'une preuve VerifyPubkeyValidity. |
Is this page helpful?