O que são Transferências Confidenciais?
As transferências confidenciais permitem transferir tokens entre token accounts sem revelar o valor da transferência. Isso é útil para transações que preservam a privacidade. Apenas os valores das transferências e os saldos de tokens são privados. Os endereços das token accounts permanecem públicos.
- Visão Geral do Protocolo - Detalhes sobre o protocolo criptográfico subjacente
- Guia de Início Rápido - Configuração e comandos básicos de CLI
- Cookbook de Saldos Confidenciais - Trechos de código sobre como usar a extensão de Transferência Confidencial
Como funciona?
A extensão de Transferência Confidencial adiciona instruções ao Token Extensions Program que permite transferir tokens entre contas sem revelar o valor da transferência.
O fluxo básico das transferências confidenciais de tokens é o seguinte:
- Criar um mint account com a extensão de transferência confidencial.
- Criar token accounts com a extensão de transferência confidencial para o remetente e o destinatário.
- Cunhar tokens na conta do remetente.
- Depositar o saldo público do remetente no saldo pendente confidencial.
- Aplicar o saldo pendente do remetente ao saldo disponível confidencial.
- Transferir confidencialmente os tokens da token account do remetente para a token account do destinatário.
- Aplicar o saldo pendente do destinatário ao saldo disponível confidencial.
- Sacar o saldo disponível confidencial do destinatário para o saldo público.
Para mais detalhes sobre as etapas do fluxo de transferência confidencial, consulte as páginas correspondentes:
Criar Mint Account
Como criar um mint account com a extensão de Transferência Confidencial
Criar Token Account
Como configurar uma token account com a extensão de Transferência Confidencial
Depositar Tokens
Como depositar tokens no saldo pendente confidencial
Aplicar Saldo Pendente
Como aplicar o saldo pendente ao saldo confidencial disponível
Sacar Tokens
Como sacar tokens do saldo confidencial disponível
Transferir Tokens
Como transferir tokens confidencialmente entre token accounts
Guia de Integração
Como carteiras, exploradores e exchanges podem suportar tokens de transferência confidencial
Guia para Emissores
Como emitir e operar um token de transferência confidencial (política de aprovação, auditores, taxas, cunhagem e queima)
O diagrama abaixo mostra uma sequência detalhada do fluxo básico para transferências confidenciais de tokens:
Instruções de Transferência Confidencial
A lista completa das instruções da extensão de Transferência Confidencial é a seguinte:
| Instrução | Descrição |
|---|---|
InitializeMint | Configura o mint account para transferências confidenciais. Esta instrução deve ser incluída na mesma transação que a instrução TokenInstruction::InitializeMint. |
UpdateMint | Atualiza as configurações de transferência confidencial para um mint. |
ConfigureAccount | Configura um token account para transferências confidenciais. |
ApproveAccount | Aprova um token account para transferências confidenciais, caso o mint exija aprovação para novos token accounts. |
EmptyAccount | Esvazia os saldos confidenciais pendentes e disponíveis para permitir o encerramento de um token account. |
Deposit | Converte o saldo público de tokens em saldo confidencial pendente. |
Withdraw | Converte o saldo confidencial disponível de volta para saldo público. |
Transfer | Transfere tokens entre token accounts de forma confidencial. |
ApplyPendingBalance | Converte o saldo pendente em saldo disponível após depósitos ou transferências. |
EnableConfidentialCredits | Permite que um token account receba transferências confidenciais de tokens. |
DisableConfidentialCredits | Bloqueia transferências confidenciais recebidas, permitindo ainda transferências públicas. |
EnableNonConfidentialCredits | Permite que um token account receba transferências públicas de tokens. |
DisableNonConfidentialCredits | Bloqueia transferências regulares para que a conta receba apenas transferências confidenciais. |
TransferWithFee | Transfere tokens entre token accounts de forma confidencial com uma taxa. |
ConfigureAccountWithRegistry | Forma alternativa de configurar token accounts para transferências confidenciais usando uma conta ElGamalRegistry em vez de uma prova VerifyPubkeyValidity. |
Is this page helpful?