Flujo de trabajo de la aplicación Stablecoin

Una stablecoin es un token fungible que representa la moneda digital con cumplimiento integrado.

El escenario de stablecoin exige conocer las políticas de sus clientes (KYC) y contra el lavado de dinero (AML), las restricciones de transferencia y las aprobaciones de varias partes. El sistema admite transferencias directas y transferencias basadas en retenciones, que requieren aprobación antes de que se produzca la transferencia.

  • Se requieren roles de minero, quemador y notario.
  • La política de cuentas aplica indicadores de restricción y KYC/AML.
  • La política de aprobación define umbrales y requisitos de aprobador secuenciales para transferencias basadas en retenciones.
  • Las restricciones de transferencia son opcionales y se pueden configurar en cualquier momento.
  • La coincidencia de políticas de aprobación se utiliza para determinar si las aprobaciones son necesarias cuando se utiliza la API holdTokens.
  • Las API de historial de transacciones soportan la auditoría y la supervisión.
En la siguiente tabla, se resumen los actores de este escenario.
Actor Función Descripción
Administrator Administrador de token Inicializa el sistema, asigna roles, crea cuentas y políticas de aprobación.
Minuto Minuto Solicita la extracción de tokens.
Aprobador de menta Notario Aprueba o rechaza las peticiones de moneda.
Aprobador de consumo Notario Aprueba o rechaza las solicitudes de grabación.
Remitente ninguno Permite iniciar transferencias directas o basadas en retenciones.
Responsable de Aprobación ninguno Aprueba las transacciones en una secuencia definida. Los aprobadores son titulares de cuentas normales que se han especificado como aprobadores en la política de aprobación (no por un rol asignado).
Notario Notario Completa o libera transferencias basadas en retenciones después de la aprobación.
Receptor ninguno Recibe tokens transferidos.
Auditor Auditor de token Consulta el historial de transacciones con fines de conformidad y generación de informes.
El administrador realiza los siguientes pasos para inicializar el sistema.
  1. Inicialice una stablecoin mediante la API initializeStablecoinToken.
  2. Registre organizaciones mediante la API registerOrg.
  3. Cree cuentas mediante las API createAccount y associateTokenToAccount.
  4. Asigne los roles de minter, burner y notary a las cuentas adecuadas mediante la API addRole.
  5. Cree políticas de cuenta mediante la API createStablecoinAccountPolicyCheck.
  6. Cree políticas de aprobación mediante la API createApprovalPolicyCheck.
Después de que se inicializa el sistema, un flujo de proceso típico sigue estos pasos básicos.
  1. Monedas estables de menta.
    1. El minter utiliza la API requestMint para enviar una solicitud a mint stablecoins.
    2. El aprobador de moneda utiliza la API approveMint para revisar y aprobar la solicitud de moneda estable. Como alternativa, el aprobador de moneda puede utilizar la API rejectMint para denegar la solicitud.
  2. Transferir monedas estables sin aprobaciones.
    • El remitente utiliza la API transferTokens para enviar stablecoins a un usuario.
  3. Transferencia de monedas estables con aprobaciones.
    1. El remitente utiliza la API holdTokens para solicitar la transferencia de los tokens.
    2. Si es necesario, los aprobadores utilizan la API approveTransaction para aprobar la transferencia, según lo especificado por la política de aprobación.
    3. El notario utiliza la API executeHoldTokens para aprobar la solicitud de transferencia. Como alternativa, el notario puede utilizar la API releaseHold para rechazar la transferencia.
  4. Verifique el saldo del token.
    • Los usuarios pueden utilizar la API getAccountBalance para obtener la cantidad de monedas estables que tienen.
  5. Grabar tokens.
    1. Los usuarios pueden utilizar la API requestBurn para enviar una solicitud para quemar sus stablecoins.
    2. El aprobador de grabación utiliza la API approveBurn para revisar y aprobar la solicitud. Como alternativa, el aprobador de grabación puede utilizar la API rejectBurn para denegar la solicitud.
  6. Auditoría del historial de transacciones.
    • Los auditores y usuarios pueden utilizar las API getAccountTransactionHistory y getAccountTransactionHistoryWithFilters para obtener el historial de transacciones para la auditoría y la generación de informes.

Validación de política de cuenta

Las políticas de cuentas son obligatorias para todas las cuentas que transfieren o mantienen monedas estables. Las políticas de cuentas se validan en las siguientes API: transferTokens, holdTokens, approveTransaction, executeHoldTokens.

Cada política de cuenta incluye tres parámetros: KYC, AML y restrictionFlag. Estos se validan tanto para el remitente como para el receptor antes de transferir cualquier token.

KYC (Conozca a su cliente)
La transferencia solo se permite cuando los valores de KYC son true para las cuentas de remitente y de receptor.
AML (Antilavado de dinero)
La transferencia solo se permite cuando los valores de lista de fabricantes aprobados son true para las cuentas de remitente y de receptor.
restrictionFlag
Si el indicador de restricción se define en false para la cuenta de remitente y de receptor, la validación pasa. Si el indicador de restricción se define en true para la cuenta del remitente o del receptor, para las API holdTokens, approveTransaction y executeHoldTokens, la transferencia solo se permite si existe una política de aprobación más baja disponible y si el importe está dentro de los límites de la política. De lo contrario, la transferencia está bloqueada. Para el método transferTokens, la transferencia solo se permite si el importe está en los límites inferior y superior de los límites de restricción de transferencia.

Coincidencia de política de aprobación

La coincidencia de políticas de aprobación se dispara después de una llamada a la API holdTokens. Las políticas de aprobación definen los umbrales de transacción, el número necesario de aprobaciones y los detalles del aprobador, y definen la secuencia para las aprobaciones de varios niveles. Una política de aprobación es obligatoria para una operación de retención. Sin una política de aprobación, los usuarios no pueden retener ni transferir tokens cuando se aplican restricciones.

La coincidencia de políticas de aprobación determina si las aprobaciones son necesarias para que el notario pueda completar la transferencia de retención. Si se necesitan aprobaciones, la coincidencia de políticas de aprobación determina qué aprobadores son necesarios y en qué secuencia.

Si no se define ningún indicador de restricción para el remitente y el receptor, el importe de retención se compara con todos los umbrales de política de aprobación configurados para buscar una coincidencia. Si se encuentra una coincidencia, se utilizan los aprobadores y la secuencia correspondientes. Si no se encuentra ninguna coincidencia, no se requiere aprobación y la transacción continúa directamente con el notario.

Si se define un indicador de restricción para el remitente o el destinatario, se utiliza la política de aprobación más baja disponible. Si no hay ninguna política disponible, la transacción se bloquea.

Después de determinar una coincidencia de política, se extraen los siguientes detalles de la política para su uso en el proceso de aprobación:
  • Aprobadores necesarios
  • Secuencia de aprobación
  • Número necesario de aprobaciones

Aprobación de transacción

La validación de aprobación de transacciones se dispara después de una llamada a la API approveTransaction. La validación aplica todas las reglas de aprobación que se definen en la política de aprobación que se confrontó durante la llamada a la API holdTokens. La validación se ejecuta para cada aprobador en secuencia de acuerdo con los siguientes pasos.

  1. Validar identidad de aprobador: comprueba si el usuario actual existe en la lista de aprobadores necesarios de la política de aprobación.
  2. Validar orden de secuencia: comprueba si el aprobador actual es el aprobador esperado en la posición de secuencia actual.
  3. Comprobación de aprobación duplicada: impide que el mismo aprobador apruebe la misma transacción más de una vez.
  4. Validación de política de cuenta: vuelve a ejecutar la validación de política de cuenta para asegurarse de que los estados de cuenta del remitente y del receptor no hayan cambiado desde que se creó la retención.
  5. Aprobación de registros: registra la aprobación con registro de hora, incrementa el recuento de aprobaciones y comprueba si se han completado todas las aprobaciones necesarias.
Si se registran todas las aprobaciones, la transacción se marca como lista para ser completada por el notario. Si se necesitan más aprobaciones, se espera al siguiente aprobador en secuencia.