Flujo de trabajo confidencial de la aplicación CBDC al por mayor
El escenario confidencial de la moneda digital del banco central mayorista (CBDC) representa la moneda que se distribuye a través de una jerarquía estructurada de instituciones financieras, con información confidencial almacenada de forma privada.
La versión confidencial del escenario CBDC mayorista difiere en la forma en que se manejan los datos de transacción. La información no confidencial, como los detalles básicos de las transacciones y la información de las cuentas de la organización, se almacena en el libro mayor público. La información confidencial (como los ID de usuario, los valores de saldo reales y los factores de cegamiento) se almacena en la recopilación de datos privados de cada organización y se transfiere al código de cadena mediante una asignación transitoria, de modo que nunca se escribe en el libro mayor público. Los saldos de cuenta y los saldos retenidos se representan como valores de compromiso de Pedersen en el libro mayor público, lo que permite la verificación pública a través de pruebas de conocimiento cero sin exponer los importes subyacentes. En el nivel de banco central, las transferencias retenidas utilizan un proceso de confirmación en dos fases para una transacción atómica que requiere la ejecución simultánea de las API executeHoldTokensSender y executeHoldTokensReceiver, que mantiene la confidencialidad durante toda la transferencia. Las transferencias a nivel de institución financiera utilizan la API estándar única executeHoldTokens.
| Operación/Datos | CBDC no confidencial | CBDC confidencial |
|---|---|---|
| Transferencia entre organizaciones (el aprobador del banco central ejecuta la retención) | API executeHoldTokens (una sola llamada)
|
API executeHoldTokensSender y executeHoldTokensReceiver (dos llamadas simultáneas realizadas en confirmación en dos fases)
|
| Transferencia intraorganización (el aprobador de la institución financiera ejecuta la retención) | API executeHoldTokens (una sola llamada)
|
API executeHoldTokens (una sola llamada, sin diferencias)
|
| Datos de Transacción en Contabilidad | Todos los datos almacenados en formato simple en el libro mayor público, sin separación de datos | Datos no confidenciales en el libro mayor público, datos confidenciales (ID de usuario, saldos reales, factores de cegamiento) almacenados en la recopilación de datos privados de cada organización |
| Representación de balance | Valores de balance reales almacenados directamente | Saldos representados como valores de compromiso de Pedersen, importes reales no expuestos en la contabilidad pública |
| Método de Verificación | Directo: los valores se pueden leer en el libro mayor | Las pruebas de conocimiento cero permiten la verificación pública sin revelar los importes subyacentes |
| Manejo de datos confidenciales | Almacenado en libro mayor público | Se transfiere mediante una asignación transitoria al código de cadena, no se escribe en el libro mayor público |
Note:
Las APIexecuteHoldTokensSender y executeHoldTokensReceiver se deben llamar simultáneamente como parte de un proceso de confirmación en dos fases. Si solo se llama a uno sin el otro, se produce un error.
| Actor | Función | Descripción |
|---|---|---|
| Administrator | Administrador de token | Inicializa el sistema y asigna roles. |
| Creador | Minuto | Solicita la extracción de tokens y recibe tokens extraídos. |
| Aprobador de banco central | Notario | Aprueba todas las operaciones a nivel de banco central. |
| Emisor | ninguno | Recibe tokens del creador, envía tokens al oficial de la institución financiera o al retirado. |
| Oficial de instituciones financieras | ninguno | Recibe tokens del emisor y los distribuye a los usuarios de instituciones financieras. |
| Aprobador de institución financiera | Notario | Permite aprobar transferencias de retención de funcionarios de instituciones financieras a usuarios de instituciones financieras. |
| Usuario de institución financiera | ninguno | Destinatario final de tokens transferidos en una institución financiera. |
| Baja | Quemador | Recibe tokens del emisor y envía solicitudes de grabación al aprobador del banco central. |
- Inicialice el sistema CBDC mediante la API
initializeCBDCToken. - Registre organizaciones mediante la API
registerOrg. - Cree cuentas mediante la API
createAccount. - Asocie el token a las cuentas mediante la API
associateTokenToAccount. - Asigne el rol minter al creador, el rol notario al aprobador del banco central y el rol quemador al retirador mediante la API
addRole.
- Moneda de menta.
- El creador de tokens utiliza la API
requestMintpara enviar una solicitud para acuñar tokens de depósito. - El aprobador del banco central utiliza la API
approveMintpara revisar y aprobar la solicitud de moneda. Los tokens se acreditan en la cuenta del creador. Como alternativa, el aprobador del banco central puede utilizar la APIrejectMintpara denegar la solicitud.
- El creador de tokens utiliza la API
- Transferir tokens al emisor.
- El creador utiliza la API
transferTokenspara enviar tokens al emisor.
- El creador utiliza la API
- Transfiera tokens a los oficiales financieros.
- El emisor utiliza la API
holdTokenspara enviar tokens a un funcionario de la institución financiera. - El aprobador del banco central utiliza las API
executeHoldTokensSenderyexecuteHoldTokensReceivercomo parte de una confirmación en dos fases para validar y aprobar la solicitud de transferencia. Como alternativa, el aprobador del banco central puede usar la APIreleaseHoldpara rechazar la transferencia.
- El emisor utiliza la API
- Emitir tokens a los usuarios.
- El responsable de la institución financiera utiliza la API
holdTokenspara enviar tokens a un usuario de la institución financiera. - El aprobador de la institución financiera utiliza la API
executeHoldTokenspara validar y aprobar la solicitud de transferencia. Como alternativa, el aprobador de la institución financiera puede usar la APIreleaseHoldpara rechazar la transferencia.
- El responsable de la institución financiera utiliza la API
- Grabar tokens.
- El emisor utiliza la API
transferTokenspara transferir tokens al retirador. - El retirador utiliza la API
requestBurnpara enviar una solicitud de grabación al aprobador del banco central. - El aprobador del banco central utiliza la API
approveBurnpara aprobar la solicitud de grabación y los tokens se destruyen. Como alternativa, el aprobador del banco central puede usar la APIrejectBurnpara rechazar la solicitud.
- El emisor utiliza la API
- Verifique el saldo del token.
- Los usuarios pueden utilizar la API
getAccountBalancepara obtener el número total de moneda que tienen.
- Los usuarios pueden utilizar la API