Fluxo de trabalho Chaincode 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 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.

A tabela a seguir resume as principais diferenças entre as versões não confidenciais e confidenciais do cenário de CBDC de atacado.
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 APIs executeHoldTokensSender 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.

O diagrama a seguir mostra um fluxo de processo típico ao usar o código de cadeia CBDC de atacado confidencial de amostra.