Fluxo de Trabalho do Aplicativo CBDC de Atacado Confidencial
O cenário de moeda digital do banco central atacadista confidencial (CBDC) representa a moeda que é distribuída por meio de uma hierarquia de instituição financeira estruturada, com informações confidenciais armazenadas de forma privada.
A versão confidencial do cenário de CBDC de atacado difere na forma como os dados da transação são tratados. Informações não confidenciais, como detalhes básicos da transação e informações da conta organizacional, são armazenadas no razão público. Informações confidenciais (como IDs de usuário, valores de saldo reais e fatores de ocultação) são armazenadas na coleta de dados privada de cada organização e transmitidas ao chaincode por meio de um mapa transitório, para que nunca sejam gravadas no razão público. Os saldos de conta e os saldos em retenção são representados como valores de compromisso Pedersen no razão público, permitindo a verificação pública por meio de provas de conhecimento zero sem expor os valores subjacentes. No nível do banco central, as transferências de retenção usam um processo de commit de duas fases para uma transação atômica que requer a execução simultânea das APIs executeHoldTokensSender e executeHoldTokensReceiver, que mantém a confidencialidade durante toda a transferência. As transferências no nível da instituição financeira usam a API executeHoldTokens única padrão.
| Operação/Dados | CBDC Não Confidencial | CBDC Confidencial |
|---|---|---|
| Transferência Interorganizações (aprovador do banco central executa retenção) | API executeHoldTokens (chamada única)
|
APIs executeHoldTokensSender e executeHoldTokensReceiver (duas chamadas simultâneas feitas em commit de duas fases)
|
| Transferência Intraorganizações (aprovador da instituição financeira executa suspensão) | API executeHoldTokens (chamada única)
|
API executeHoldTokens (chamada única, sem diferença)
|
| Dados da Transação no Razão | Todos os dados armazenados em formato simples na contabilidade pública, sem separação de dados | Dados não confidenciais no razão público, dados confidenciais (IDs de usuário, saldos reais, fatores de ocultação) armazenados na coleta de dados privada de cada organização |
| Representação de Saldo | Valores de saldo reais armazenados diretamente | Saldos representados como valores de compromisso Pedersen, valores reais não expostos no razão público |
| Método de Verificação | Direto: os valores podem ser lidos no razão | As provas de conhecimento zero permitem a verificação pública sem revelar os valores subjacentes |
| Tratamento de Dados Sigilosos | Armazenado no razão público | Transmitido por meio de mapa transitório para chaincode, não gravado no razão público |
Observação:
As APIsexecuteHoldTokensSender e executeHoldTokensReceiver devem ser chamadas simultaneamente como parte de um processo de commit de duas fases. Chamar apenas um sem o outro resulta em um erro.
| Ator | Atribuição | Descrição |
|---|---|---|
| Administrator | Administração de token | Inicializa o sistema e atribui funções. |
| Criador | Minter | Solicita cunhagem de tokens e recebe tokens cunhados. |
| Aprovador do Banco Central | Notário | Aprova todas as operações a nível do banco central. |
| Emissor | nenhuma | Recebe tokens do criador, encaminha tokens para o diretor da instituição financeira ou aposentador. |
| Diretor de Instituição Financeira | nenhuma | Recebe tokens do emissor, distribui tokens para usuários de instituições financeiras. |
| Aprovador da Instituição Financeira | Notário | Aprova transferências de retenção do oficial da instituição financeira para usuários da instituição financeira. |
| Usuário da instituição financeira | nenhuma | Destinatário final de tokens transferidos em uma instituição financeira. |
| Retirador | Queimador | Recebe tokens do emissor e envia solicitações de gravação para o aprovador do banco central. |
- Inicialize o sistema CBDC usando a API
initializeCBDCToken. - Registre organizações usando a API
registerOrg. - Crie contas usando a API
createAccount. - Associe o token às contas usando a API
associateTokenToAccount. - Atribua a função de mineiro ao criador, a função de notário ao aprovador do banco central e a função de queimador ao recuperador usando a API
addRole.
- Moeda da moeda.
- O criador do token usa a API
requestMintpara enviar uma solicitação para tokens de depósito de moeda. - O aprovador do banco central usa a API
approveMintpara analisar e aprovar a solicitação de hortelã. Os tokens são creditados na conta do criador. Como alternativa, o aprovador do banco central pode usar a APIrejectMintpara recusar a solicitação.
- O criador do token usa a API
- Transfira tokens para o emissor.
- O criador usa os tokens de envio da API
transferTokenspara o emissor.
- O criador usa os tokens de envio da API
- Transfira tokens para funcionários financeiros.
- O emissor usa a API
holdTokenspara enviar tokens a um diretor de instituição financeira. - O aprovador do banco central usa as APIs
executeHoldTokensSendereexecuteHoldTokensReceivercomo parte de um commit de duas fases para validar e aprovar a solicitação de transferência. Como alternativa, o aprovador do banco central pode usar a APIreleaseHoldpara rejeitar a transferência.
- O emissor usa a API
- Emitir tokens aos usuários.
- O diretor da instituição financeira usa a API
holdTokenspara enviar tokens a um usuário da instituição financeira. - O aprovador da instituição financeira usa a API
executeHoldTokenspara validar e aprovar a solicitação de transferência. Como alternativa, o aprovador da instituição financeira pode usar a APIreleaseHoldpara rejeitar a transferência.
- O diretor da instituição financeira usa a API
- Queimar tokens.
- O emissor usa a API
transferTokenspara transferir tokens para o aposentador. - O aposentador usa a API
requestBurnpara enviar uma solicitação de gravação ao aprovador do banco central. - O aprovador do banco central usa a API
approveBurnpara aprovar a solicitação de gravação, e os tokens são destruídos. Como alternativa, o aprovador do banco central pode usar a APIrejectBurnpara rejeitar a solicitação.
- O emissor usa a API
- Verifique o saldo do token.
- Os usuários podem usar a API
getAccountBalancepara obter o número total de moedas que eles mantêm.
- Os usuários podem usar a API