Langsung ke konten utama
Dompet privat terdiri dari pasangan kunci Solana untuk penandatanganan, kunci nullifier, dan kunci tampilan untuk enkripsi – kunci-kunci ini bersama-sama membentuk pasangan kunci terlindung. Sistem pengelolaan kunci Anda menyimpan pasangan kunci terlindung tersebut. Kode dompet menggunakan Antarmuka Privasi dan SDK untuk membuat transaksi privat. 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. Integrasi ini memungkinkan pengguna Anda untuk:
  1. Membuat dompet privat dengan kustodi mandiri
  2. Menerima transfer privat dengan alamat Solana
  3. Menyetorkan token ke saldo privat
  4. Mengirim secara privat ke alamat Solana
  5. Menarik dana ke alamat Solana mana pun
  6. Mendekripsi saldo privat dan riwayat transaksi secara lokal
Integrasi ini mencakup:
  1. Pasangan Kunci Terlindung – dalam sistem pengelolaan kunci Anda untuk enkripsi
  2. Antarmuka Privasi dan SDK – untuk membuat transaksi privat
  3. Alur Pengguna – untuk diintegrasikan ke dompet Anda

Konteks untuk AI Anda

Add a Private Wallet to an existing Solana wallet

Buka di Cursor
1

Integrasikan Pasangan Kunci Terlindung

Integrasi dompet privat menambahkan pasangan kunci terlindung ke sistem pengelolaan kunci Anda. Pasangan kunci terlindung menandatangani, mengenkripsi, dan mendekripsi transaksi.Pasangan kunci terlindung adalah kumpulan kunci penandatanganan, nullifier, dan tampilan.
  • Kunci penandatanganan: Pasangan kunci Ed25519 Solana milik dompet untuk menandatangani transaksi.
  • Kunci tampilan: Pasangan kunci X25519 yang digunakan untuk mengenkripsi dan mendekripsi transaksi.
  • Kunci nullifier:
Dompet dapat memperoleh pasangan kunci terlindung dari tanda tangan EdDSA atas pesan tetap.Tanda tangan EdDSA bersifat deterministik, sehingga tanda tangan dari pasangan kunci Solana yang sama untuk pesan yang sama selalu menghasilkan pasangan kunci terlindung yang sama. Kami menggunakan tanda tangan tersebut sebagai seed untuk memperoleh pasangan kunci terlindung.Payload pesan tetapnya adalah "TSPP/derive/v1", yang dienkode sebagai pesan off-chain Solana v0.Kunci penandatanganan terlindung adalah kunci EdDSA Solana milik dompet. Kunci nullifier dan tampilan adalah kunci tambahan yang diperoleh dari tanda tangan tersebut.
Tanda tangan tersebut adalah seed derivasi. Siapa pun yang memilikinya dapat memperoleh kunci nullifier dan tampilan serta mendekripsi transaksi pengguna. Tolak setiap permintaan penandatanganan pesan "TSPP/derive/v1" dari pihak ketiga.
Pseudocode untuk memperoleh pasangan kunci terlindung dari tanda tangan Solana:
Contoh Implementasi: TypeScript · Rust
2

Integrasikan Antarmuka Privasi dan SDK

Antarmuka Privasi memungkinkan kode Anda menggunakan SDK Privasi untuk membuat transaksi privat tanpa mengakses materi kunci secara langsung. Sistem pengelolaan kunci Anda mengimplementasikan Antarmuka Privasi dalam dua bagian.
  1. Antarmuka Penandatanganan untuk Pembuatan Transaksi dengan SDK Privasi. Lihat Sumber: TypeScript/ Rust
  2. Antarmuka Enkripsi & Dekripsi. Lihat Sumber: TypeScript/ Rust
Antarmuka Privasi bersifat stateless sehingga tidak menyimpan saldo atau riwayat transaksi. Untuk meningkatkan performa, sebaiknya simpan cache saldo pengguna dan riwayat transaksi secara lokal.

Tentang Pembuatan Bukti

Pembuatan bukti zero-knowledge memerlukan input plaintext dari data transaksi pengguna yang lengkap dan kunci nullifier.Saat ini, pembuatan bukti di server tersedia melalui URL RPC Helius standar.Pembuatan bukti secara lokal akan segera tersedia. Prover default SDK adalah enclave AWS Nitro yang telah diatestasi.
3

Integrasikan Alur Pengguna

Buat Dompet Privat

Dompet privat dibuat dalam dua langkah:
  1. Peroleh pasangan kunci terlindung
  2. Daftarkan alamat Solana dalam registri on-chain.
Pembuatan dompet privat tidak memerlukan setoran ke saldo privat.
Dalam aplikasi dompet, Anda dapat mengizinkan pengguna membuat dompet privat hanya untuk kunci publik “Private Wallet” khusus atau untuk kunci publik mana pun.
Registri menautkan kunci publik penandatanganan dengan kunci publik nullifier dan tampilan. Kunci-kunci publik ini bersama-sama membentuk alamat terlindung.
Setiap catatan registri adalah PDA yang dimiliki oleh , yang dapat dilihat oleh siapa pun untuk mengetahui apakah suatu alamat Solana dapat menerima transfer privat.
  • owner adalah penanda tangan Solana milik pengguna, yang digunakan untuk memperoleh PDA registri.
  • address adalah Alamat Terlindung milik pengguna.
  • getRegisterInstructionAsync mendaftarkan kunci Alamat Terlindung.
  • getSetMergeEncryptionInstructionAsync mengaktifkan penggabungan untuk UTXO pengguna. Satu transfer dapat membelanjakan paling banyak 40 UTXO, sehingga penggabungan memastikan pengguna selalu dapat membelanjakan seluruh saldo mereka dalam satu transfer. Pelajari lebih lanjut tentang penggabungan UTXO.
  • sendTransaction menandatangani dan mengirim transaksi.
  • isWalletRegistered membaca PDA registri untuk memeriksa pendaftaran.
Contoh pendaftaran lengkap: TypeScript · Rust

Sinkronkan Saldo Privat & Riwayat Transaksi

Sinkronisasi saldo mengambil status terenkripsi dari RPC dan mendekripsinya di dompet.RPC tidak melakukan dekripsi. Hanya pemilik yang dapat mendekripsi saldo privat dengan kunci tampilan.
Dompet harus mendekripsi dan memperbarui saldo sebelum transaksi privat serta setiap kali menjalankan backfill: saat dompet dibuka kuncinya, dompet privat dibuka, aplikasi dilanjutkan, jaringan tersambung kembali, terdapat celah aliran, atau dompet dipulihkan.

Read a Private Balance

Read Private Transaction History

Setorkan ke Saldo Privat

Pengguna dapat menyetorkan dana ke saldo privat dengan dua cara:
  1. On-ramp dari saldo fiat ke saldo kripto privat
  2. Setoran dari akun SPL publik ke saldo privat
On-ramp dan setoran memiliki jaminan privasi yang berbeda. Untuk privasi yang lebih baik, sebaiknya gunakan on-ramp daripada setoran.

On-/Off-Ramp

Lakukan on-/off-ramp fiat secara langsung ke dan dari saldo privat.

Deposit

Setorkan dari saldo kripto publik.

Transfer Privat

Pengguna dapat mengirim transfer privat ke alamat dompet Solana mana pun.Untuk setiap transfer privat, SDK Privasi mencari alamat dompet dalam registri on-chain guna memeriksa apakah penerima memiliki dompet privat.SDK Privasi dapat mengubah transfer privat menjadi penarikan dari privat ke publik jika penerima tidak memiliki Dompet Privat.
Sebaiknya beri label transaksi di UI sebagai penarikan untuk memastikan pengguna tidak menarik dana ke saldo publik secara tidak sengaja.Sebaiknya minta tanda tangan pengguna secara terpisah di UI untuk memastikan pengguna tidak menarik dana ke saldo publik secara tidak sengaja.

Private Transfer

Transfer secara privat ke saldo privat.

Tarik ke Saldo Publik

Penarikan dapat digunakan dalam dua cara:
  1. Sebagai fallback untuk transfer privat kepada penerima yang tidak memiliki dompet privat, atau
  2. Penarikan langsung ke akun token SPL publik.
Untuk penarikan, sebaiknya beri label yang jelas bahwa pengguna meninggalkan saldo privat, serupa dengan ekspor frasa seed atau kunci privat.

Withdraw

Tarik ke saldo kripto publik.

Tidak menemukan yang Anda cari?

Hubungi kami! Telegram | Email | Kontak