¿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.
- Descripción general del protocolo - Detalles sobre el protocolo criptográfico subyacente
- Guía de inicio rápido - Configuración y comandos básicos de CLI
- Confidential Balances Cookbook - Fragmentos de código que muestran cómo usar Saldos Confidenciales
¿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.
El flujo básico de las transferencias confidenciales de tokens es el siguiente:
- Crea una mint account con Saldos Confidenciales habilitados.
- Crea token accounts con Saldos Confidenciales habilitados para el emisor y el destinatario.
- Acuña tokens en la cuenta del emisor.
- Deposita el saldo público del emisor en el saldo pendiente confidencial.
- Aplica el saldo pendiente del emisor al saldo disponible confidencial.
- Transfiere de forma confidencial los tokens desde la token account del emisor a la token account del destinatario.
- Aplica el saldo pendiente del destinatario al saldo disponible confidencial.
- 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:
Crear Mint Account
Cómo crear una mint account con Saldos Confidenciales habilitados
Crear Token Account
Cómo configurar una token account con Saldos Confidenciales habilitados
Depositar Tokens
Cómo depositar tokens en el saldo pendiente confidencial
Aplicar Saldo Pendiente
Cómo aplicar el saldo pendiente al saldo confidencial disponible
Retirar Tokens
Cómo retirar tokens del saldo confidencial disponible
Transferir Tokens
Cómo transferir tokens de forma confidencial entre token accounts
Guía de Integración
Cómo las billeteras, exploradores y exchanges pueden dar soporte a tokens de Saldos Confidenciales
Guía para Emisores
Cómo emitir y operar un token de Saldos Confidenciales (política de aprobación, auditores, comisiones, emisión y quema)
El diagrama a continuación muestra una secuencia detallada del flujo básico para transferencias de tokens confidenciales:
Instrucciones de Saldos Confidenciales
La lista completa de instrucciones de la extensión de Saldos Confidenciales es la siguiente:
| Instrucción | Descripción |
|---|---|
InitializeMint | Habilita los Saldos Confidenciales en una mint account. Esta instrucción debe incluirse en la misma transacción que la instrucción TokenInstruction::InitializeMint. |
UpdateMint | Actualiza la política de aprobación de cuentas de la mint account y la clave pública ElGamal global opcional del auditor. |
ConfigureAccount | Habilita los Saldos Confidenciales en una token account. |
ApproveAccount | Aprueba una token account para Saldos Confidenciales si la mint account requiere aprobación para nuevas token accounts. |
EmptyAccount | Vacía los saldos confidenciales pendientes y disponibles para permitir el cierre de un token account. |
Deposit | Convierte el saldo público de tokens en saldo confidencial pendiente. |
Withdraw | Convierte el saldo confidencial disponible de vuelta a saldo público. |
Transfer | Transfiere tokens entre token accounts de forma confidencial. |
ApplyPendingBalance | Convierte el saldo pendiente en saldo disponible tras depósitos o transferencias. |
EnableConfidentialCredits | Permite que un token account reciba transferencias de tokens confidenciales. |
DisableConfidentialCredits | Bloquea las transferencias confidenciales entrantes mientras permite las transferencias públicas. |
EnableNonConfidentialCredits | Permite que un token account reciba transferencias de tokens públicas. |
DisableNonConfidentialCredits | Bloquea las transferencias regulares para que la cuenta solo reciba transferencias confidenciales. |
TransferWithFee | Transfiere tokens entre token accounts de forma confidencial con una comisión. |
ConfigureAccountWithRegistry | Forma alternativa de configurar token accounts para Saldos Confidenciales usando una cuenta ElGamalRegistry en lugar de la prueba VerifyPubkeyValidity. |
Is this page helpful?