Saldos Confidenciales

¿Qué son los Saldos Confidenciales?

Saldos Confidenciales es una extensión de Token-2022 que te permite transferir tokens entre token accounts sin revelar el monto de la transferencia. Esto es útil para transacciones que preservan la privacidad. Solo los montos de transferencia y los saldos de tokens son privados. Las direcciones de las token accounts siguen siendo públicas.

¿Cómo funciona?

La extensión de Saldos Confidenciales agrega instrucciones al Token Extension program que te permite transferir tokens entre cuentas sin revelar el monto de la transferencia.

Confidential Balances Basic Overview

El flujo básico de las transferencias confidenciales de tokens es el siguiente:

  1. Crea una mint account con Saldos Confidenciales habilitados.
  2. Crea token accounts con Saldos Confidenciales habilitados para el emisor y el destinatario.
  3. Acuña tokens en la cuenta del emisor.
  4. Deposita el saldo público del emisor en el saldo pendiente confidencial.
  5. Aplica el saldo pendiente del emisor al saldo disponible confidencial.
  6. Transfiere de forma confidencial los tokens desde la token account del emisor a la token account del destinatario.
  7. Aplica el saldo pendiente del destinatario al saldo disponible confidencial.
  8. Retira el saldo disponible confidencial del destinatario al saldo público.

Claves de auditor

Una mint account de Saldos Confidenciales puede almacenar una clave pública ElGamal global opcional para el auditor. Cuando se configura una, cada transferencia confidencial incluye el monto cifrado para el emisor, el destinatario y el auditor. La prueba de transferencia verifica que los tres textos cifrados contienen el mismo monto. El público sigue sin poder leer el monto, pero el titular de la clave secreta del auditor puede descifrar los montos de transferencia para esa mint account.

La autoridad de Saldos Confidenciales establece la clave del auditor al inicializar la extensión o la modifica posteriormente con UpdateMint. La autoridad puede rotar o eliminar la clave. Una rotación se aplica solo a las transferencias futuras, por lo que se deben conservar las claves secretas anteriores cuando se requiere acceso a auditorías históricas. Las claves de auditor proporcionan acceso de lectura; no autorizan transferencias de tokens ni revelan el saldo confidencial completo de una cuenta.

Para ejemplos de configuración y rotación, consulta Configurar un auditor. Las billeteras, exploradores, exchanges y proveedores de cumplimiento normativo también deben revisar la guía de integración del auditor.

Para más detalles sobre los pasos del flujo de transferencia confidencial, consulta las páginas correspondientes:

El diagrama a continuación muestra una secuencia detallada del flujo básico para transferencias de tokens confidenciales:

Confidential Balances Detailed Overview

Instrucciones de Saldos Confidenciales

La lista completa de instrucciones de la extensión de Saldos Confidenciales es la siguiente:

InstrucciónDescripción
InitializeMintHabilita los Saldos Confidenciales en una mint account. Esta instrucción debe incluirse en la misma transacción que la instrucción TokenInstruction::InitializeMint.
UpdateMintActualiza la política de aprobación de cuentas de la mint account y la clave pública ElGamal global opcional del auditor.
ConfigureAccountHabilita los Saldos Confidenciales en una token account.
ApproveAccountAprueba una token account para Saldos Confidenciales si la mint account requiere aprobación para nuevas token accounts.
EmptyAccountVacía los saldos confidenciales pendientes y disponibles para permitir el cierre de un token account.
DepositConvierte el saldo público de tokens en saldo confidencial pendiente.
WithdrawConvierte el saldo confidencial disponible de vuelta a saldo público.
TransferTransfiere tokens entre token accounts de forma confidencial.
ApplyPendingBalanceConvierte el saldo pendiente en saldo disponible tras depósitos o transferencias.
EnableConfidentialCreditsPermite que un token account reciba transferencias de tokens confidenciales.
DisableConfidentialCreditsBloquea las transferencias confidenciales entrantes mientras permite las transferencias públicas.
EnableNonConfidentialCreditsPermite que un token account reciba transferencias de tokens públicas.
DisableNonConfidentialCreditsBloquea las transferencias regulares para que la cuenta solo reciba transferencias confidenciales.
TransferWithFeeTransfiere tokens entre token accounts de forma confidencial con una comisión.
ConfigureAccountWithRegistryForma alternativa de configurar token accounts para Saldos Confidenciales usando una cuenta ElGamalRegistry en lugar de la prueba VerifyPubkeyValidity.

Is this page helpful?

Tabla de Contenidos

Editar Página