Flux de travail de demande CBDC de gros confidentiel
Le scénario CBDC (devise numérique de la banque centrale de gros confidentielle) représente la devise qui est distribuée au moyen d'une hiérarchie structurée d'institutions financières, 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 transaction de base et les informations de compte organisationnel sont stockées dans le grand livre public. Les informations sensibles (notamment les ID utilisateur, les valeurs de solde réel et les facteurs de masquage) sont stockées dans la collecte de données privée de chaque organisation et transmises au code de chaîne au moyen d'une carte transitoire, de sorte qu'elles ne soient jamais écrites dans le livre public. Les soldes de comptes et les soldes bloqués sont représentés sous forme de valeurs d'engagement Pedersen sur le grand livre public, ce qui permet une vérification publique par des preuves de connaissance zéro sans exposer les montants sous-jacents. Au niveau de la banque centrale, le blocage des transferts utilise 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 assure 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 lors de la validation en deux phases)
|
| Transfert intraorganisation (l'approbateur de l'institution financière exécute le blocage) | API executeHoldTokens (appel unique)
|
API executeHoldTokens (appel unique, aucune différence)
|
| Données de transaction sur le livre | Toutes les données stockées sous forme simple sur le grand livre public, sans 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ées de chaque organisation |
| Représentation du solde | Valeurs de solde réel stockées directement | Soldes représentés par des valeurs d'engagement Pedersen, montants réels non exposés sur le grand livre public |
| Méthode de vérification | Direct : les valeurs sont lisibles sur le livre | Les preuves sans connaissance permettent une vérification publique sans révéler les montants sous-jacents |
| Traitement des données sensibles | Stocké dans le livre public | Transmis par une carte transitoire vers du code de chaîne, non écrit dans le livre public |
Note :
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 | Administrateur de jetons | Initialise le système, affecte des rôles. |
| Créateur | Minter | Demande la frappe de jetons et reçoit des jetons frappés. |
| Approbateur de la banque centrale | Notaire | Approuve toutes les opérations au niveau de la banque centrale. |
| Émetteur | aucune | Reçoit les jetons du créateur, achemine les jetons au responsable de l'institution financière ou les retire. |
| Agent d'institution financière | aucune | Reçoit des jetons de l'émetteur et les distribue aux utilisateurs d'institutions financières. |
| Approbateur de l'institution financière | Notaire | Permet d'approuver les transferts d'agent d'institution financière aux utilisateurs d'institution financière. |
| Utilisateur de l'institution financière | aucune | Destinataire final des jetons transférés dans une institution financière. |
| Retraité | Brûleur | Reçoit des jetons de l'émetteur et envoie des demandes de brûlage à l'approbateur de la banque centrale. |
- Initialisez le système CBDC à l'aide de l'API
initializeCBDCToken. - Enregistrez les 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 d'initiateur au créateur, le rôle de notaire à l'approbateur de la banque centrale et le rôle de brûleur à retirer à l'aide de l'API
addRole.
- Monnaie.
- Le créateur du jeton utilise l'API
requestMintpour soumettre une demande d'extraction de jetons de dépôt. - L'approbateur de la banque centrale utilise l'API
approveMintpour vérifier et approuver la demande de menthe. 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 du jeton utilise l'API
- Transférer des jetons à l'émetteur.
- Le créateur utilise l'API
transferTokenspour envoyer des jetons à l'émetteur.
- Le créateur utilise l'API
- Transférer des jetons aux agents financiers.
- L'émetteur utilise l'API
holdTokenspour envoyer des jetons à un agent 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 l'API
- Émettre des jetons aux utilisateurs.
- Le responsable de l'institution financière utilise l'API
holdTokenspour envoyer des jetons à un utilisateur d'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 l'API
- Brûlez des jetons.
- L'émetteur utilise l'API
transferTokenspour transférer les jetons vers le retrait. - La suppression utilise l'API
requestBurnpour envoyer une demande de gravure à l'approbateur de la banque centrale. - L'approbateur de la banque centrale utilise l'API
approveBurnpour approuver la demande de gravure 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érifier le solde du jeton.
- Les utilisateurs peuvent utiliser l'API
getAccountBalancepour obtenir le nombre total de devises qu'ils détiennent.
- Les utilisateurs peuvent utiliser l'API