Geschäftskunden - CBDC-Anwendungsworkflow
Das Szenario der vertraulichen digitalen Zentralbankwährung (CBDC) stellt eine Währung dar, die über eine strukturierte Finanzinstitutshierarchie verteilt wird, wobei vertrauliche Informationen privat gespeichert werden.
Die vertrauliche Version des CBDC-Großhandels-Szenarios unterscheidet sich in der Handhabung von Transaktionsdaten. Nicht sensible Informationen wie grundlegende Transaktionsdetails und Organisationskontoinformationen werden im öffentlichen Buch gespeichert. Sensible Informationen (wie Benutzer-IDs, Ist-Saldenwerte und Blinding-Faktoren) werden in der privaten Datenerfassung jeder Organisation gespeichert und über eine transiente Karte an den Chaincode übergeben, sodass sie niemals in das öffentliche Buch geschrieben werden. Kontensalden und Einbehaltungssalden werden im öffentlichen Buch als Pedersen-Verpflichtungswerte dargestellt, sodass die öffentliche Verifizierung durch Zero-Knowledge-Nachweise ermöglicht wird, ohne die zugrunde liegenden Beträge anzugeben. Auf Zentralbankebene verwenden Überweisungen einen Zwei-Phasen-Commit-Prozess für eine atomare Transaktion, bei der gleichzeitig die APIs executeHoldTokensSender und executeHoldTokensReceiver ausgeführt werden müssen, wodurch die Vertraulichkeit während der Übertragung gewahrt wird. Transfers auf Finanzinstitutsebene verwenden die standardmäßige einzelne executeHoldTokens-API.
| Arbeitsvorgang/Daten | Nicht vertraulicher CBDC | CBDC vertraulich |
|---|---|---|
| Zwischenbetriebliche Überweisung (Zentralbankgenehmiger führt Sperre aus) | executeHoldTokens-API (einzelner Aufruf)
|
executeHoldTokensSender- und executeHoldTokensReceiver-APIs (zwei gleichzeitige Aufrufe bei Two-Phase Commit)
|
| Transfer innerhalb der Organisation (Genehmiger des Finanzinstituts führt eine Sperre aus) | executeHoldTokens-API (einzelner Aufruf)
|
executeHoldTokens-API (einzelner Aufruf, kein Unterschied)
|
| Transaktionsdaten im Buch | Alle Daten, die in einfacher Form im öffentlichen Ledger gespeichert sind, ohne Datentrennung | Nicht sensible Daten im öffentlichen Buch, sensible Daten (Benutzer-IDs, Istsalden, Blinding-Faktoren), die in der privaten Datenerfassung jeder Organisation gespeichert sind |
| Saldendarstellung | Tatsächliche Saldenwerte direkt gespeichert | Salden, die als Pedersen-Verpflichtungswerte dargestellt werden, Istbeträge, die nicht im öffentlichen Buch angezeigt werden |
| Verifizierungsmethode | Direkt: Werte können im Buch gelesen werden | Zero-Knowledge-Beweise ermöglichen eine öffentliche Überprüfung, ohne die zugrunde liegenden Beträge aufzudecken |
| Handhabung sensibler Daten | In öffentlichem Ledger gespeichert | Über transiente Map an Chaincode übergeben, nicht in öffentliches Ledger geschrieben |
Hinweis:
Die APIsexecuteHoldTokensSender und executeHoldTokensReceiver müssen gleichzeitig als Teil eines Zwei-Phasen-Commit-Prozesses aufgerufen werden. Wenn nur einer ohne den anderen aufgerufen wird, tritt ein Fehler auf.
| Teilnehmer | Rolle | Beschreibung |
|---|---|---|
| Administrator | Token-Admin | Initialisiert das System und weist Rollen zu. |
| Ersteller | Minter | Fordert das Prägen von Token an und erhält geprägte Token. |
| Zentralbankgenehmiger | Notar | Genehmigt alle Vorgänge auf Zentralbankebene. |
| Ausgebender Benutzer | Kein | Erhält Token vom Ersteller, leitet Token an den Finanzinstitutsleiter oder Retirer weiter. |
| Finanzinstitutsbeauftragter | Kein | Erhält Token vom Aussteller und verteilt Token an Benutzer von Finanzinstituten. |
| Finanzinstitutsgenehmiger | Notar | Genehmigt Sperrenübertragungen von Finanzinstitutsmitarbeitern an Finanzinstitutsbenutzer. |
| Finanzinstitutbenutzer | Kein | Endgültiger Empfänger übertragener Token bei einem Finanzinstitut. |
| Retoure | Brenner | Erhält Token vom Aussteller und sendet Verbrennungsanforderungen an den Zentralbankgenehmiger. |
- Initialisieren Sie das CBDC-System mit der API
initializeCBDCToken. - Registrieren Sie Organisationen mit der API
registerOrg. - Erstellen Sie Accounts mit der API
createAccount. - Verknüpfen Sie das Token mit der
associateTokenToAccount-API mit Accounts. - Weisen Sie den Ersteller, die Notarrolle dem Zentralbankgenehmiger und die Brennerrolle dem Retirer mit der API
addRolezu.
- Münzwährung.
- Der Tokenersteller verwendet die API
requestMint, um eine Anforderung an Mint-Einzahlungstoken weiterzuleiten. - Der Zentralbankgenehmiger verwendet die API
approveMint, um die Mint-Anforderung zu prüfen und zu genehmigen. Die Token werden dem Konto des Erstellers gutgeschrieben. Alternativ kann der Zentralbankgenehmiger die Anforderung mit der APIrejectMintablehnen.
- Der Tokenersteller verwendet die API
- Token an den Aussteller übertragen.
- Der Ersteller verwendet die
transferTokens-API-Sendetoken an den Aussteller.
- Der Ersteller verwendet die
- Übertragen Sie Token an Finanzbeamte.
- Der Emittent verwendet die API
holdTokens, um Token an einen Finanzinstitutsbeauftragten zu senden. - Der Zentralbankgenehmiger verwendet die APIs
executeHoldTokensSenderundexecuteHoldTokensReceiverals Teil eines zweiphasigen Commits, um die Übertragungsanforderung zu validieren und zu genehmigen. Alternativ kann der Zentralbankgenehmiger die Übertragung mit der APIreleaseHoldablehnen.
- Der Emittent verwendet die API
- Geben Sie Benutzern Token aus.
- Der Finanzinstitutsbeauftragte verwendet die API
holdTokens, um Token an einen Finanzinstitutsbenutzer zu senden. - Der Genehmiger des Finanzinstituts verwendet die API
executeHoldTokens, um die Transferanforderung zu validieren und zu genehmigen. Alternativ kann der Genehmiger des Finanzinstituts die APIreleaseHoldverwenden, um den Transfer abzulehnen.
- Der Finanzinstitutsbeauftragte verwendet die API
- Token brennen.
- Der Aussteller verwendet die API
transferTokens, um Token an den Retirer zu übertragen. - Der Retirer verwendet die API
requestBurn, um eine Burn-Anforderung an den Zentralbankgenehmiger zu senden. - Der Zentralbankgenehmiger verwendet die API
approveBurn, um die Burn-Anforderung zu genehmigen, und die Token werden zerstört. Alternativ kann der Zentralbankgenehmiger die Anforderung mit der APIrejectBurnablehnen.
- Der Aussteller verwendet die API
- Token-Saldo prüfen.
- Benutzer können die API
getAccountBalanceverwenden, um die Gesamtzahl der gesperrten Währungen abzurufen.
- Benutzer können die API