Workflow de l'application CBDC de gros confidentiel
Le scénario confidentiel de devise numérique de la banque centrale de gros (CBDC) représente la devise qui est distribuée via une hiérarchie d'institutions financières structurée, avec des informations sensibles stockées en privé.
La version confidentielle du scénario CBDC de gros diffère dans la façon dont les données de transaction sont traitées. Les informations non sensibles telles que les détails de base des transactions et les informations de compte organisationnel sont stockées dans le grand livre public. Les informations sensibles (telles que les ID utilisateur, les valeurs d'accumulateur réel et les facteurs d'aveuglement) sont stockées dans la collecte de données privée de chaque organisation et transmises au code chaîne par le biais d'une carte non persistante, de sorte qu'elles ne sont jamais écrites dans le registre public. Les soldes des comptes et les soldes bloqués sont représentés sous la forme de valeurs d'engagement de Pedersen dans le grand livre public, ce qui permet de vérifier le public au moyen de preuves sans connaissance sans exposer les montants sous-jacents. Au niveau de la banque centrale, les transferts en attente utilisent un processus de validation en deux phases pour une transaction atomique qui nécessite l'exécution simultanée des API executeHoldTokensSender et executeHoldTokensReceiver, ce qui maintient la confidentialité tout au long du transfert. Les transferts au niveau de l'institution financière utilisent l'API executeHoldTokens unique standard.
| Opération/Données | CBDC non confidentiel | CBDC confidentiel |
|---|---|---|
| Transfert interorganisation (l'approbateur de la banque centrale exécute le blocage) | API executeHoldTokens (appel unique)
|
API executeHoldTokensSender et executeHoldTokensReceiver (deux appels simultanés effectués dans une validation en deux phases)
|
| Transfert intraorganisation (l'approbateur de l'institution financière bloque) | API executeHoldTokens (appel unique)
|
API executeHoldTokens (appel unique, aucune différence)
|
| Données de transaction dans Livre | Toutes les données stockées sous forme brute dans le grand livre public, pas de séparation des données | Données non sensibles sur le grand livre public, données sensibles (ID utilisateur, soldes réels, facteurs d'aveuglement) stockées dans la collecte de données privée de chaque organisation |
| Représentation du solde | Valeurs de solde réelles stockées directement | Soldes représentés sous forme de valeurs d'engagement Pedersen, montants réels non exposés dans le grand livre public |
| Méthode de vérification | Direct : les valeurs sont lisibles dans le livre | Les preuves sans connaissance permettent une vérification publique sans révéler les montants sous-jacents |
| Gestion des données confidentielles | Stocké dans le grand livre public | Transmis par une correspondance transitoire avec le code chaîne, non écrit dans le registre public |
Remarques :
Les APIexecuteHoldTokensSender et executeHoldTokensReceiver doivent être appelées simultanément dans le cadre d'un processus de validation en deux phases. L'appel d'un seul sans l'autre entraîne une erreur.
| Acteur | Rôle | Description |
|---|---|---|
| Administrateur | Administration des jetons | Initialise le système et affecte des rôles. |
| Créateur | Minter | Demande l'extraction des jetons et reçoit les jetons extraits. |
| Approbateur de la banque centrale | Notaire | Approuve toutes les opérations au niveau de la banque centrale. |
| Emetteur | Aucun élément | Reçoit des jetons du créateur, achemine les jetons vers l'agent de l'institution financière ou les retire. |
| Agent de l'institution financière | Aucun élément | Reçoit des jetons de l'émetteur, distribue des jetons aux utilisateurs des institutions financières. |
| Approbateur de l'institution financière | Notaire | Approuve les transferts bloqués du responsable de l'institution financière aux utilisateurs de l'institution financière. |
| Utilisateur institution financière | Aucun élément | Bénéficiaire final des jetons transférés dans une institution financière. |
| Retraité | Brûleur | Reçoit les jetons de l'émetteur et envoie les demandes de brûlure à l'approbateur de la banque centrale. |
- Initialisez le système CBDC à l'aide de l'API
initializeCBDCToken. - Inscrivez des organisations à l'aide de l'API
registerOrg. - Créez des comptes à l'aide de l'API
createAccount. - Associez le jeton aux comptes à l'aide de l'API
associateTokenToAccount. - Affectez le rôle de mineur au créateur, le rôle de notaire à l'approbateur de banque centrale et le rôle de brûleur au retrait à l'aide de l'API
addRole.
- Monnaie.
- Le créateur de jeton utilise l'API
requestMintpour soumettre une demande aux jetons de dépôt mint. - L'approbateur de la banque centrale utilise l'API
approveMintpour vérifier et approuver la demande de transaction. Les jetons sont crédités sur le compte du créateur. L'approbateur de la banque centrale peut également utiliser l'APIrejectMintpour refuser la demande.
- Le créateur de jeton utilise l'API
- Transférer les jetons à l'émetteur.
- Le créateur utilise les jetons d'envoi d'API
transferTokensà l'émetteur.
- Le créateur utilise les jetons d'envoi d'API
- Transférer des jetons aux agents financiers.
- L'émetteur utilise les jetons d'envoi de l'API
holdTokensà un responsable d'institution financière. - L'approbateur de la banque centrale utilise les API
executeHoldTokensSenderetexecuteHoldTokensReceiverdans le cadre d'une validation en deux phases pour valider et approuver la demande de transfert. L'approbateur de la banque centrale peut également utiliser l'APIreleaseHoldpour rejeter le transfert.
- L'émetteur utilise les jetons d'envoi de l'API
- Emettre des jetons aux utilisateurs.
- Le responsable de l'institution financière utilise les jetons d'envoi de l'API
holdTokensà un utilisateur de l'institution financière. - L'approbateur de l'institution financière utilise l'API
executeHoldTokenspour valider et approuver la demande de transfert. L'approbateur de l'institution financière peut également utiliser l'APIreleaseHoldpour rejeter le transfert.
- Le responsable de l'institution financière utilise les jetons d'envoi de l'API
- Brûler les jetons.
- L'émetteur utilise l'API
transferTokenspour transférer des jetons vers le retrait. - Le retrait utilise l'API
requestBurnpour envoyer une demande de brûlure à l'approbateur de la banque centrale. - L'approbateur de la banque centrale utilise l'API
approveBurnpour approuver la demande d'utilisation et les jetons sont détruits. L'approbateur de la banque centrale peut également utiliser l'APIrejectBurnpour rejeter la demande.
- L'émetteur utilise l'API
- Vérifiez l'équilibre du jeton.
- Les utilisateurs peuvent utiliser l'API
getAccountBalancepour obtenir le nombre total de devises dont ils disposent.
- Les utilisateurs peuvent utiliser l'API