- 自己管理のプライベートウォレットを作成
- Solanaアドレスでプライベート転送を受信
- トークンをプライベート残高に入金
- Solanaアドレスにプライベートに送信
- 任意のSolanaアドレスに出金
- プライベート残高とトランザクション履歴をローカルで復号化
- シールドキー ペア – 暗号化のためのキー管理
- プライバシーインターフェースとSDK – プライベートトランザクションを構築するため
- ユーザーフロー – ウォレットに統合するため
AIのためのコンテキスト
Add a Private Wallet to an existing Solana wallet
View prompt
View prompt
1
シールドキー ペアの統合
プライベートウォレットの統合は、キー管理にシールドキー ペアを追加します。 シールドキー ペアはトランザクションの署名、暗号化、復号化を行います。シールドキー ペアは署名、ヌリファイア、およびビューイングキーのバンドルです。- 署名キー: トランザクションに署名するためのウォレットのEd25519 Solanaキー ペア。
- ビューイングキー: トランザクションを暗号化および復号化するためのP-256キー ペア。
- ヌリファイアキー:
- シードベースのウォレットの場合、シードフレーズから導き出すを選択。
- シードベースでないウォレットの場合、EdDSA署名から導き出すを選択。
- シードフレーズから導き出す
- EdDSA署名から導き出す
シードベースのウォレットは、1つのBIP-39ニーモニックとアカウントインデックス (
0, 1, …) からシールドキー ペアを導き出します。各アカウントインデックスは1つのSolanaキー ペアと1つのシールドキー ペアにマップされます。
Solanaキー ペアと同じ方法でシールドキー ペアを復元できます。例:- アカウント0: Solanaキー ペア0とシールドキー ペア0
- アカウント1: Solanaキー ペア1とシールドキー ペア1
シールド署名キーはそのアカウントのSolana Ed25519キーです。
ヌリファイアとビューイングキーは同じシードから導出された追加キーです。
実装例: TypeScript例 · Rust例
2
プライバシーインターフェースとSDKの統合
プライバシーインターフェースにより、コードはプライバシーSDKを使用してキー素材に直接アクセスせずにプライベートトランザクションを構築できます。 キー管理はプライバシーインターフェースを2つの部分で実装します。- プライバシーSDKによるトランザクション構築用の署名インターフェース。ソースを表示: TypeScript/ Rust
- 暗号化および復号化インターフェース。ソースを表示: TypeScript/ Rust
プライバシーインターフェースはステートレスであり、残高やトランザクション履歴を保存しません。
パフォーマンス向上のため、ユーザーの残高やトランザクション履歴をローカルでキャッシュすることをお勧めします。
証明生成について
ゼロ知識証明生成には、完全なユーザートランザクションデータとヌリファイアキーの平文入力が必要です。現在、サーバーでの証明生成は標準的なHelius RPC URLを通じて利用可能です。ローカルでの証明生成は近日公開予定です。 メインネットローンチ前にAWS Nitroでのエンドツーエンド暗号化サーバー証明生成を計画しています。3
ユーザーフローの統合
プライベートウォレットを作成
プライベートウォレットは2つのステップで作成されます:- シールドキー ペアを導き出す
- Solanaアドレスをオンチェーンレジストリに登録
各レジストリレコードはが所有するPDAであり、誰でもSolanaアドレスがプライベート転送を受け取れるかどうかを確認できます。
プライベート残高とトランザクション履歴の同期
残高同期は暗号化された状態をRPCから取得し、ウォレットで復号化します。RPCは復号化を行いません。所有者のみがビューイングキーを使ってプライベート残高を復号化できます。ウォレットはプライベートトランザクションの前やバックフィルの際、ウォレットのロック解除、プライベートウォレットのオープン、アプリの再開、ネットワークの再接続、ストリームギャップ、ウォレットの復元時に残高を復号化し更新すべきです。
プライベート残高の読み取り
プライベートトランザクション履歴の読み取り
プライベート残高への入金
ユーザーは次の2つの方法でプライベート残高に入金できます:- フィアット残高からプライベート暗号残高へのオンランプ
- 公共のSPLアカウントからプライベート残高への入金
オン/オフランプ
プライベート残高へ直接フィアットのオン/オフランプを実行します。
入金
公共の暗号残高から入金。
プライベート転送
ユーザーは任意のSolanaウォレットアドレスにプライベート転送を送信できます。各プライベート転送に対して、プライバシーSDKはオンチェーンレジストリでウォレットアドレスを確認し、受取人がプライベートウォレットを持っているか確認します。受取人がプライベートウォレットを持っていない場合、プライバシーSDKはプライベートからパブリックの出金にプライベート転送を解決できます。誤ってパブリック残高に出金しないよう、UIでトランザクションを出金とラベル付けすることをお勧めします。
プライベート転送
プライベート残高へプライベートに転送します。
パブリック残高への出金
出金は次の2つの方法で使用できます:- プライベートウォレットを持たない受取人へのプライベート転送のフォールバックとして、または
- 公共のSPLトークンアカウントへの直接出金として。
出金
パブリック暗号残高に出金します。