Skip to main content
Приватный кошелек состоит из пары ключей Solana для подписания, ключа нуллификатора и ключа просмотра для шифрования. Вместе эти ключи образуют экранированную пару ключей. Ваша система управления ключами хранит экранированную пару ключей. Код кошелька использует интерфейс конфиденциальности и SDK для создания приватных транзакций. Key management and the Privacy SDK connect through the Privacy Interface. The Privacy SDK calls the Privacy API. The Privacy API submits the transaction to Solana. Интеграция позволяет вашим пользователям:
  1. Создавать приватный кошелек с самостоятельным хранением средств
  2. Получать приватные переводы по адресу Solana
  3. Вносить токены на приватный баланс
  4. Приватно отправлять средства на адрес Solana
  5. Выводить средства на любой адрес Solana
  6. Локально расшифровывать приватные балансы и историю транзакций
Интеграция включает:
  1. Экранированную пару ключей — в вашей системе управления ключами для шифрования
  2. Интерфейс конфиденциальности и SDK — для создания приватных транзакций
  3. Пользовательские сценарии — для интеграции в ваш кошелек

Контекст для вашего ИИ

Add a Private Wallet to an existing Solana wallet

Открыть в Cursor
1

Интегрируйте экранированную пару ключей

При интеграции приватного кошелька в вашу систему управления ключами добавляется экранированная пара ключей. Экранированная пара ключей подписывает, шифрует и расшифровывает транзакции.Экранированная пара ключей представляет собой набор ключей подписания, нуллификатора и просмотра.
  • Ключ подписания: пара ключей Ed25519 Solana кошелька для подписания транзакций.
  • Ключ просмотра: пара ключей P-256, используемая для шифрования и расшифровки транзакций.
  • Ключ нуллификатора:
Кошелек может получить экранированную пару ключей из подписи EdDSA фиксированного сообщения.Подписи EdDSA детерминированы, поэтому подпись одной и той же парой ключей Solana одного и того же сообщения всегда создает одну и ту же экранированную пару ключей. Мы используем подпись как начальное значение для получения экранированной пары ключей.Фиксированная полезная нагрузка сообщения — "TSPP/derive/v1", закодированная как офчейн-сообщение Solana v0.Экранированный ключ подписания — это ключ EdDSA Solana кошелька. Ключи нуллификатора и просмотра — дополнительные ключи, полученные из подписи.
Подпись является начальным значением для получения ключей. Любой, у кого она есть, может получить ключи нуллификатора и просмотра, а также расшифровать транзакции пользователя. Отклоняйте любые запросы от третьих лиц на подписание сообщения "TSPP/derive/v1".
Псевдокод для получения экранированной пары ключей из подписи Solana:
Пример реализации: TypeScript · Rust
2

Интегрируйте интерфейс конфиденциальности и SDK

Интерфейс конфиденциальности позволяет вашему коду использовать SDK конфиденциальности для создания приватных транзакций без прямого доступа к ключевому материалу. Ваша система управления ключами реализует интерфейс конфиденциальности из двух частей.
  1. Интерфейс подписания для создания транзакций с помощью SDK конфиденциальности. Исходный код: TypeScript/ Rust
  2. Интерфейс шифрования и расшифровки. Исходный код: TypeScript/ Rust
Интерфейс конфиденциальности не хранит состояние, а следовательно, балансы и историю транзакций. Для повышения производительности рекомендуем локально кэшировать балансы пользователей и историю транзакций.

О создании доказательств

Для создания доказательства с нулевым разглашением требуются входные данные с полными сведениями о пользовательской транзакции в открытом виде и ключи нуллификатора.В настоящее время создание доказательств на сервере доступно через стандартный RPC URL Helius.Локальное создание доказательств появится в ближайшее время. До запуска основной сети планируется реализовать создание серверных доказательств со сквозным шифрованием в AWS Nitro.
3

Интегрируйте пользовательские сценарии

Создание приватного кошелька

Приватный кошелек создается в два этапа:
  1. Получите экранированную пару ключей
  2. Зарегистрируйте адрес Solana в ончейн-реестре.
Для создания приватного кошелька не требуется вносить средства на приватный баланс.
В приложении кошелька вы можете разрешить пользователям создавать приватные кошельки только для выделенного открытого ключа «Приватного кошелька» или для любого открытого ключа.
Реестр связывает открытый ключ подписания с открытыми ключами нуллификатора и просмотра. Вместе эти открытые ключи образуют экранированный адрес.
Каждая запись реестра представляет собой PDA, принадлежащий . Любой пользователь может проверить ее, чтобы узнать, может ли адрес Solana получать приватные переводы.
  • owner — адрес Solana пользователя, используемый для получения PDA реестра.
  • address — экранированный адрес пользователя.
  • buildRegistrationTransaction возвращает скомпилированную транзакцию регистрации или обновления ключа. Если кошелек уже зарегистрирован, возвращается undefined.
  • sendTransaction подписывает и отправляет транзакцию.
  • isWalletRegistered считывает PDA реестра, чтобы проверить регистрацию.
Полные примеры регистрации: TypeScript · Rust

Синхронизация приватного баланса и истории транзакций

При синхронизации баланса зашифрованное состояние извлекается через RPC и расшифровывается в кошельке.RPC не выполняет расшифровку. Только владелец может расшифровать приватный баланс с помощью ключа просмотра.
Кошелек должен расшифровывать и обновлять балансы перед приватными транзакциями, а также при каждом ретроспективном заполнении данных: при разблокировке кошелька, открытии приватного кошелька, возобновлении работы приложения, повторном подключении к сети, пропуске в потоке или восстановлении кошелька.

Read a Private Balance

Read Private Transaction History

Внесение средств на приватный баланс

Пользователи могут вносить средства на приватный баланс двумя способами:
  1. Конвертировать фиатный баланс в приватный криптовалютный баланс через онрамп
  2. Внести средства с публичного SPL-счета на приватный баланс
Онрамп и внесение средств предоставляют разные гарантии конфиденциальности. Для повышения конфиденциальности рекомендуем использовать онрамп вместо внесения средств.

On-/Off-Ramp

Конвертируйте фиатную валюту напрямую в приватный баланс и обратно через онрамп и оффрамп.

Deposit

Внесите средства с публичного криптовалютного баланса.

Приватные переводы

Пользователи могут отправлять приватные переводы на любой адрес кошелька Solana.Для каждого приватного перевода SDK конфиденциальности находит адрес кошелька в ончейн-реестре и проверяет, есть ли у получателя приватный кошелек.SDK конфиденциальности может преобразовать приватный перевод в вывод с приватного баланса на публичный, если у получателя нет приватного кошелька.
Рекомендуем обозначать транзакцию в пользовательском интерфейсе как вывод средств, чтобы пользователь случайно не вывел средства на публичный баланс.Рекомендуем запрашивать отдельную подпись пользователя в интерфейсе, чтобы пользователь случайно не вывел средства на публичный баланс.

Private Transfer

Приватно переведите средства на приватный баланс.

Вывод на публичный баланс

Вывод средств можно использовать двумя способами:
  1. В качестве резервного варианта для приватных переводов получателям, у которых нет приватного кошелька, или
  2. Для прямого вывода на публичный счет токенов SPL.
При выводе средств рекомендуем четко указывать, что пользователь покидает приватный баланс, аналогично экспорту сид-фразы или закрытого ключа.

Withdraw

Выведите средства на публичный криптовалютный баланс.

Не нашли то, что искали?

Свяжитесь с нами! Telegram | Электронная почта | Контакты