- Создавать приватный кошелек с самостоятельным хранением средств
- Получать приватные переводы по адресу Solana
- Вносить токены на приватный баланс
- Приватно отправлять средства на адрес Solana
- Выводить средства на любой адрес Solana
- Локально расшифровывать приватные балансы и историю транзакций
- Экранированную пару ключей — в вашей системе управления ключами для шифрования
- Интерфейс конфиденциальности и SDK — для создания приватных транзакций
- Пользовательские сценарии — для интеграции в ваш кошелек
Контекст для вашего ИИ
Add a Private Wallet to an existing Solana wallet
View prompt
View prompt
1
Интегрируйте экранированную пару ключей
При интеграции приватного кошелька в вашу систему управления ключами добавляется экранированная пара ключей. Экранированная пара ключей подписывает, шифрует и расшифровывает транзакции.Экранированная пара ключей представляет собой набор ключей подписания, нуллификатора и просмотра.- Ключ подписания: пара ключей Ed25519 Solana кошелька для подписания транзакций.
- Ключ просмотра: пара ключей P-256, используемая для шифрования и расшифровки транзакций.
- Ключ нуллификатора:
"TSPP/derive/v1", закодированная как офчейн-сообщение Solana v0.Экранированный ключ подписания — это ключ EdDSA Solana кошелька.
Ключи нуллификатора и просмотра — дополнительные ключи, полученные из подписи.Псевдокод для получения экранированной пары ключей из подписи Solana:Пример реализации: TypeScript · Rust
2
Интегрируйте интерфейс конфиденциальности и SDK
Интерфейс конфиденциальности позволяет вашему коду использовать SDK конфиденциальности для создания приватных транзакций без прямого доступа к ключевому материалу. Ваша система управления ключами реализует интерфейс конфиденциальности из двух частей.- Интерфейс подписания для создания транзакций с помощью SDK конфиденциальности. Исходный код: TypeScript/ Rust
- Интерфейс шифрования и расшифровки. Исходный код: TypeScript/ Rust
Интерфейс конфиденциальности не хранит состояние, а следовательно, балансы и историю транзакций.
Для повышения производительности рекомендуем локально кэшировать балансы пользователей и историю транзакций.
О создании доказательств
Для создания доказательства с нулевым разглашением требуются входные данные с полными сведениями о пользовательской транзакции в открытом виде и ключи нуллификатора.В настоящее время создание доказательств на сервере доступно через стандартный RPC URL Helius.Локальное создание доказательств появится в ближайшее время. До запуска основной сети планируется реализовать создание серверных доказательств со сквозным шифрованием в AWS Nitro.3
Интегрируйте пользовательские сценарии
Создание приватного кошелька
Приватный кошелек создается в два этапа:- Получите экранированную пару ключей
- Зарегистрируйте адрес Solana в ончейн-реестре.
В приложении кошелька вы можете разрешить пользователям создавать приватные кошельки только для выделенного открытого ключа «Приватного кошелька»
или для любого открытого ключа.
Каждая запись реестра представляет собой PDA, принадлежащий . Любой пользователь может проверить ее, чтобы узнать, может ли адрес Solana получать приватные переводы.
- TypeScript Client
- Rust Client
owner— адрес Solana пользователя, используемый для получения PDA реестра.address— экранированный адрес пользователя.buildRegistrationTransactionвозвращает скомпилированную транзакцию регистрации или обновления ключа. Если кошелек уже зарегистрирован, возвращаетсяundefined.sendTransactionподписывает и отправляет транзакцию.isWalletRegisteredсчитывает PDA реестра, чтобы проверить регистрацию.
Полные примеры регистрации: TypeScript · Rust
Синхронизация приватного баланса и истории транзакций
При синхронизации баланса зашифрованное состояние извлекается через RPC и расшифровывается в кошельке.RPC не выполняет расшифровку. Только владелец может расшифровать приватный баланс с помощью ключа просмотра.Кошелек должен расшифровывать и обновлять балансы перед приватными транзакциями, а также при каждом ретроспективном заполнении данных: при разблокировке кошелька, открытии приватного кошелька, возобновлении работы приложения, повторном подключении к сети, пропуске в потоке или восстановлении кошелька.
Read a Private Balance
Read Private Transaction History
Внесение средств на приватный баланс
Пользователи могут вносить средства на приватный баланс двумя способами:- Конвертировать фиатный баланс в приватный криптовалютный баланс через онрамп
- Внести средства с публичного SPL-счета на приватный баланс
On-/Off-Ramp
Конвертируйте фиатную валюту напрямую в приватный баланс и обратно через онрамп и оффрамп.
Deposit
Внесите средства с публичного криптовалютного баланса.
Приватные переводы
Пользователи могут отправлять приватные переводы на любой адрес кошелька Solana.Для каждого приватного перевода SDK конфиденциальности находит адрес кошелька в ончейн-реестре и проверяет, есть ли у получателя приватный кошелек.SDK конфиденциальности может преобразовать приватный перевод в вывод с приватного баланса на публичный, если у получателя нет приватного кошелька.Рекомендуем обозначать транзакцию в пользовательском интерфейсе как вывод средств, чтобы пользователь случайно не вывел средства на публичный баланс.Рекомендуем запрашивать отдельную подпись пользователя в интерфейсе, чтобы пользователь случайно не вывел средства на публичный баланс.
Private Transfer
Приватно переведите средства на приватный баланс.
Вывод на публичный баланс
Вывод средств можно использовать двумя способами:- В качестве резервного варианта для приватных переводов получателям, у которых нет приватного кошелька, или
- Для прямого вывода на публичный счет токенов SPL.
Withdraw
Выведите средства на публичный криптовалютный баланс.
Не нашли то, что искали?
Свяжитесь с нами! Telegram | Электронная почта | Контакты