Workflow API wrapper CBDC all'ingrosso riservato

Lo scenario della valuta digitale della banca centrale all'ingrosso riservata (CBDC) rappresenta una valuta distribuita attraverso una gerarchia strutturata di istituti finanziari, con informazioni riservate memorizzate privatamente.

La versione riservata dello scenario CBDC all'ingrosso è diversa dalla modalità di gestione dei dati delle transazioni. Le informazioni non riservate, come i dettagli delle transazioni di base e le informazioni sul conto organizzativo, vengono memorizzate nel libro contabile pubblico. Le informazioni riservate (ad esempio ID utente, valori di saldo effettivi e fattori di accecamento) vengono memorizzate nella raccolta dati privata di ciascuna organizzazione e passate al codice concatenato tramite una mappa transitoria, in modo che non vengano mai scritte nel libro mastro pubblico. I saldi contabili e i saldi in sospeso sono rappresentati come valori di impegno Pedersen nel registro pubblico, consentendo la verifica pubblica tramite prove a conoscenza zero senza esporre gli importi sottostanti. A livello di banca centrale, i trasferimenti di blocco utilizzano un processo di commit a due fasi per una transazione atomica che richiede l'esecuzione simultanea delle API executeHoldTokensSender e executeHoldTokensReceiver, che mantiene la riservatezza durante tutto il trasferimento. I trasferimenti a livello di istituto finanziario utilizzano l'API standard executeHoldTokens.

La tabella seguente riassume le principali differenze tra le versioni non riservate e riservate dello scenario CBDC all'ingrosso.
Operazione/dati CBDC non riservato CBDC riservato
Trasferimento tra organizzazioni (l'approvatore della banca centrale esegue il blocco) API executeHoldTokens (chiamata singola) API executeHoldTokensSender e executeHoldTokensReceiver (due chiamate simultanee eseguite in commit a due fasi)
Trasferimento intra-organizzazione (l'approvatore dell'istituto finanziario esegue il blocco) API executeHoldTokens (chiamata singola) API executeHoldTokens (chiamata singola, nessuna differenza)
Dati transazione nel libro contabile Tutti i dati memorizzati in formato normale sul libro contabile pubblico, nessuna separazione dei dati Dati non sensibili su libri contabili pubblici, dati sensibili (ID utente, saldi effettivi, fattori accecanti) memorizzati nella raccolta di dati privati di ciascuna organizzazione
Rappresentazione saldo Valori saldo effettivi memorizzati direttamente Saldi rappresentati come valori di impegno Pedersen, importi effettivi non esposti nel libro contabile pubblico
Metodo di verifica Diretto: i valori sono leggibili nel libro contabile Le prove a conoscenza zero consentono la verifica pubblica senza rivelare gli importi sottostanti
Gestione dei dati sensibili Memorizzato nel libro contabile pubblico Passato tramite mappa transitoria al codice concatenato, non scritto nel libro contabile pubblico

Nota

Le interfacce API executeHoldTokensSender e executeHoldTokensReceiver devono essere richiamate contemporaneamente come parte di un processo di commit a due fasi. Chiamando solo uno senza l'altro si ottiene un errore.

Il diagramma riportato di seguito mostra un flusso di processo tipico quando si utilizzano le API wrapper CBDC all'ingrosso riservate di esempio.