Transferencia confidencial

¿Qué son las transferencias confidenciales?

Las transferencias confidenciales te permiten 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 Transferencia Confidencial agrega instrucciones al Token Extensions Program que te permite transferir tokens entre cuentas sin revelar el monto de la transferencia.

Confidential Transfer Basic Overview

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

  1. Crea una mint account con la extensión de transferencia confidencial.
  2. Crea token accounts con la extensión de transferencia confidencial 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.

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 Transfer Detailed Overview

Instrucciones de Transferencia Confidencial

La lista completa de las instrucciones de la extensión de Transferencia Confidencial es la siguiente:

InstrucciónDescripción
InitializeMintConfigura el mint account para transferencias confidenciales. Esta instrucción debe incluirse en la misma transacción que la instrucción TokenInstruction::InitializeMint.
UpdateMintActualiza la configuración de transferencias confidenciales para un mint.
ConfigureAccountConfigura un token account para transferencias confidenciales.
ApproveAccountAprueba un token account para transferencias confidenciales si el mint requiere aprobación para nuevos 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 transferencias confidenciales usando una cuenta ElGamalRegistry en lugar de una prueba VerifyPubkeyValidity.

Is this page helpful?

Tabla de Contenidos

Editar Página