Конфіденційні перекази

Що таке конфіденційні перекази?

Конфіденційні перекази дозволяють передавати токени між token accounts без розкриття суми переказу. Це корисно для транзакцій із збереженням конфіденційності. Лише суми переказів і баланси токенів є приватними. Адреси token account залишаються публічними.

Як це працює?

Розширення конфіденційних переказів додає інструкції до Token Extensions Program, що дозволяє передавати токени між акаунтами без розкриття суми переказу.

Confidential Transfer Basic Overview

Базовий процес конфіденційних переказів токенів виглядає так:

  1. Створіть mint account із розширенням конфіденційних переказів.
  2. Створіть token accounts із розширенням конфіденційних переказів для відправника та отримувача.
  3. Відкарбуйте токени на акаунт відправника.
  4. Внесіть публічний баланс відправника до конфіденційного очікуваного балансу.
  5. Застосуйте очікуваний баланс відправника до конфіденційного доступного балансу.
  6. Конфіденційно перекажіть токени з token account відправника до token account отримувача.
  7. Застосуйте очікуваний баланс отримувача до конфіденційного доступного балансу.
  8. Виведіть конфіденційний доступний баланс отримувача до публічного балансу.

Докладніше про кроки процесу конфіденційного переказу дивіться на відповідних сторінках:

Діаграма нижче показує детальну послідовність основного процесу конфіденційних переказів токенів:

Confidential Transfer Detailed Overview

Інструкції конфіденційних переказів

Повний список інструкцій розширення конфіденційних переказів виглядає так:

ІнструкціяОпис
InitializeMintНалаштовує mint account для конфіденційних переказів. Ця інструкція повинна бути включена в ту саму транзакцію, що й інструкція TokenInstruction::InitializeMint.
UpdateMintОновлює налаштування конфіденційних переказів для mint.
ConfigureAccountНалаштовує token account для конфіденційних переказів.
ApproveAccountСхвалює token account для конфіденційних переказів, якщо mint вимагає підтвердження для нових token accounts.
EmptyAccountОчищує очікувані та доступні конфіденційні баланси, щоб дозволити закриття token account.
DepositКонвертує публічний баланс токенів у очікуваний конфіденційний баланс.
WithdrawКонвертує доступний конфіденційний баланс назад у публічний баланс.
TransferКонфіденційно переказує токени між token accounts.
ApplyPendingBalanceКонвертує очікуваний баланс у доступний баланс після депозитів або переказів.
EnableConfidentialCreditsДозволяє token account отримувати конфіденційні перекази токенів.
DisableConfidentialCreditsБлокує вхідні конфіденційні перекази, водночас дозволяючи публічні перекази.
EnableNonConfidentialCreditsДозволяє token account отримувати публічні перекази токенів.
DisableNonConfidentialCreditsБлокує звичайні перекази, щоб token account міг отримувати лише конфіденційні перекази.
TransferWithFeeКонфіденційно переказує токени між token accounts з комісією.
ConfigureAccountWithRegistryАльтернативний спосіб налаштування token accounts для конфіденційних переказів з використанням облікового запису ElGamalRegistry замість доказу VerifyPubkeyValidity.

Is this page helpful?

Зміст

Редагувати сторінку