Что такое конфиденциальные переводы?
Конфиденциальные переводы позволяют передавать токены между token accounts без раскрытия суммы перевода. Это полезно для транзакций с защитой конфиденциальности. Только суммы переводов и балансы токенов остаются приватными. Адреса token accounts остаются публичными.
- Обзор протокола - Подробная информация о лежащем в основе криптографическом протоколе
- Руководство по быстрому старту - Настройка и основные команды CLI
- Cookbook по конфиденциальным балансам - Фрагменты кода для работы с расширением конфиденциального перевода
Как это работает?
Расширение конфиденциального перевода добавляет инструкции в Token Extensions Program, которые позволяют передавать токены между аккаунтами без раскрытия суммы перевода.
Базовый процесс конфиденциальных переводов токенов выглядит следующим образом:
- Создайте mint account с расширением конфиденциального перевода.
- Создайте token accounts с расширением конфиденциального перевода для отправителя и получателя.
- Выпустите токены на аккаунт отправителя.
- Внесите публичный баланс отправителя в конфиденциальный ожидающий баланс.
- Примените ожидающий баланс отправителя к конфиденциальному доступному балансу.
- Конфиденциально переведите токены с token account отправителя на token account получателя.
- Примените ожидающий баланс получателя к конфиденциальному доступному балансу.
- Выведите конфиденциальный доступный баланс получателя в публичный баланс.
Подробнее о каждом шаге процесса конфиденциального перевода см. в соответствующих разделах:
Создание mint account
Как создать mint account с расширением конфиденциального перевода
Создание token account
Как настроить token account с расширением конфиденциального перевода
Внесение токенов
Как внести токены в конфиденциальный ожидающий баланс
Применение ожидающего баланса
Как применить ожидающий баланс к доступному конфиденциальному балансу
Вывод токенов
Как вывести токены из конфиденциального доступного баланса
Перевод токенов
Как конфиденциально переводить токены между token accounts
Руководство по интеграции
Как кошельки, обозреватели и биржи могут поддерживать токены с конфиденциальным переводом
Руководство для эмитента
Как выпускать токены с конфиденциальным переводом и управлять ими (политика подтверждения, аудиторы, комиссии, выпуск и сжигание)
На диаграмме ниже показана подробная последовательность базового процесса конфиденциальных переводов токенов:
Инструкции конфиденциальных переводов
Полный список инструкций расширения конфиденциальных переводов выглядит следующим образом:
| Инструкция | Описание |
|---|---|
InitializeMint | Настраивает mint account для конфиденциальных переводов. Эта инструкция должна быть включена в ту же транзакцию, что и инструкция TokenInstruction::InitializeMint. |
UpdateMint | Обновляет настройки конфиденциальных переводов для mint account. |
ConfigureAccount | Настраивает token account для конфиденциальных переводов. |
ApproveAccount | Подтверждает token account для конфиденциальных переводов, если mint требует подтверждения для новых token account. |
EmptyAccount | Очищает ожидающие и доступные конфиденциальные балансы, чтобы разрешить закрытие token account. |
Deposit | Конвертирует публичный баланс токенов в ожидающий конфиденциальный баланс. |
Withdraw | Конвертирует доступный конфиденциальный баланс обратно в публичный баланс. |
Transfer | Конфиденциально переводит токены между token account. |
ApplyPendingBalance | Конвертирует ожидающий баланс в доступный после депозитов или переводов. |
EnableConfidentialCredits | Позволяет token account получать конфиденциальные переводы токенов. |
DisableConfidentialCredits | Блокирует входящие конфиденциальные переводы, сохраняя при этом возможность публичных переводов. |
EnableNonConfidentialCredits | Позволяет token account получать публичные переводы токенов. |
DisableNonConfidentialCredits | Блокирует обычные переводы, чтобы аккаунт принимал только конфиденциальные переводы. |
TransferWithFee | Конфиденциально переводит токены между token account с комиссией. |
ConfigureAccountWithRegistry | Альтернативный способ настройки token account для конфиденциальных переводов с использованием аккаунта ElGamalRegistry вместо доказательства VerifyPubkeyValidity. |
Is this page helpful?