Skip to main content
Ví riêng tư bao gồm một cặp khóa Solana để ký, một khóa nullifier và một khóa xem để mã hóa – các khóa này cùng nhau tạo thành cặp khóa được bảo vệ. Hệ thống quản lý khóa của bạn lưu giữ cặp khóa được bảo vệ. Mã ví sử dụng Giao diện Quyền riêng tư và SDK để tạo giao dịch riêng tư. 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. Tích hợp này cho phép người dùng:
  1. Tạo ví riêng tư tự lưu ký
  2. Nhận chuyển khoản riêng tư bằng địa chỉ Solana
  3. Nạp token vào số dư riêng tư
  4. Gửi riêng tư đến một địa chỉ Solana
  5. Rút về bất kỳ địa chỉ Solana nào
  6. Giải mã cục bộ số dư riêng tư và lịch sử giao dịch
Tích hợp này bao gồm:
  1. Cặp khóa được bảo vệ – trong hệ thống quản lý khóa để mã hóa
  2. Giao diện Quyền riêng tư và SDK – để tạo giao dịch riêng tư
  3. Luồng người dùng – để tích hợp vào ví của bạn

Ngữ cảnh cho AI của bạn

Add a Private Wallet to an existing Solana wallet

Mở trong Cursor
1

Tích hợp cặp khóa được bảo vệ

Việc tích hợp ví riêng tư sẽ thêm một cặp khóa được bảo vệ vào hệ thống quản lý khóa của bạn. Cặp khóa được bảo vệ dùng để ký, mã hóa và giải mã giao dịch.Cặp khóa được bảo vệ là một gói gồm khóa ký, khóa nullifier và khóa xem.
  • Khóa ký: Cặp khóa Solana Ed25519 của ví dùng để ký giao dịch.
  • Khóa xem: Một cặp khóa P-256 dùng để mã hóa và giải mã giao dịch.
  • Khóa nullifier:
Ví có thể tạo cặp khóa được bảo vệ theo hai cách:
  1. Đối với ví dựa trên seed, chọn Tạo từ cụm từ seed.
  2. Đối với ví không dựa trên seed, chọn Tạo từ chữ ký EdDSA.
Ví dựa trên seed tạo cặp khóa được bảo vệ từ một cụm từ ghi nhớ BIP-39 và một chỉ mục tài khoản (0, 1, …).Mỗi chỉ mục tài khoản ánh xạ một cặp khóa Solana với một cặp khóa được bảo vệ. Bạn có thể khôi phục cặp khóa được bảo vệ theo cùng cách khôi phục cặp khóa Solana.Ví dụ:
  • Tài khoản 0: Cặp khóa Solana 0 và cặp khóa được bảo vệ 0
  • Tài khoản 1: Cặp khóa Solana 1 và cặp khóa được bảo vệ 1
Khóa ký được bảo vệ là khóa Solana Ed25519 của tài khoản đó. Khóa nullifier và khóa xem là các khóa bổ sung được tạo từ cùng một seed.
Ví dụ triển khai: Ví dụ TypeScript · Ví dụ Rust
2

Tích hợp Giao diện Quyền riêng tư và SDK

Giao diện Quyền riêng tư cho phép mã của bạn sử dụng SDK Quyền riêng tư để tạo giao dịch riêng tư mà không cần truy cập trực tiếp vào dữ liệu khóa. Hệ thống quản lý khóa của bạn triển khai Giao diện Quyền riêng tư theo hai phần.
  1. Giao diện ký để tạo giao dịch bằng SDK Quyền riêng tư. Xem mã nguồn: TypeScript/ Rust
  2. Giao diện mã hóa và giải mã. Xem mã nguồn: TypeScript/ Rust
Giao diện Quyền riêng tư không có trạng thái, do đó không lưu trữ số dư hoặc lịch sử giao dịch. Để cải thiện hiệu suất, chúng tôi khuyên bạn nên lưu số dư và lịch sử giao dịch của người dùng vào bộ nhớ đệm cục bộ.

Về việc tạo bằng chứng

Việc tạo bằng chứng không kiến thức yêu cầu dữ liệu đầu vào dạng văn bản thuần của toàn bộ dữ liệu giao dịch người dùng và các khóa nullifier.Hiện tại, tính năng tạo bằng chứng trên máy chủ được cung cấp qua URL RPC Helius tiêu chuẩn.Tính năng tạo bằng chứng cục bộ sắp ra mắt. Tính năng tạo bằng chứng trên máy chủ được mã hóa đầu cuối bằng AWS Nitro dự kiến sẽ có trước khi ra mắt mainnet.
3

Tích hợp luồng người dùng

Tạo ví riêng tư

Ví riêng tư được tạo qua hai bước:
  1. Tạo cặp khóa được bảo vệ
  2. Đăng ký địa chỉ Solana trong sổ đăng ký trên chuỗi.
Việc tạo ví riêng tư không yêu cầu nạp tiền vào số dư riêng tư.Sổ đăng ký liên kết khóa công khai ký với các khóa công khai nullifier và xem. Các khóa công khai này cùng nhau tạo thành địa chỉ được bảo vệ.
Mỗi bản ghi trong sổ đăng ký là một PDA thuộc sở hữu của . Bất kỳ ai cũng có thể tra cứu để xem một địa chỉ Solana có thể nhận chuyển khoản riêng tư hay không.
  • owner là địa chỉ Solana của người dùng, được dùng để tạo PDA của sổ đăng ký.
  • address là địa chỉ được bảo vệ của người dùng.
  • buildRegistrationTransaction trả về một giao dịch đăng ký hoặc cập nhật khóa đã biên dịch. Hàm trả về undefined nếu ví đã được đăng ký.
  • sendTransaction ký và gửi giao dịch.
  • isWalletRegistered đọc PDA của sổ đăng ký để kiểm tra trạng thái đăng ký.
Ví dụ đăng ký đầy đủ: TypeScript · Rust

Đồng bộ số dư riêng tư và lịch sử giao dịch

Quá trình đồng bộ số dư truy xuất trạng thái đã mã hóa từ RPC và giải mã trạng thái đó trong ví.RPC không thực hiện giải mã. Chỉ chủ sở hữu mới có thể giải mã số dư riêng tư bằng khóa xem.
Ví nên giải mã và cập nhật số dư trước các giao dịch riêng tư cũng như tại mọi thời điểm chạy quá trình backfill: khi mở khóa ví, mở ví riêng tư, tiếp tục ứng dụng, kết nối lại mạng, có khoảng trống trong luồng hoặc khôi phục ví.

Read a Private Balance

Read Private Transaction History

Nạp vào số dư riêng tư

Người dùng có thể nạp vào số dư riêng tư theo hai cách:
  1. Chuyển trực tiếp từ số dư tiền pháp định sang số dư tiền mã hóa riêng tư
  2. Nạp từ tài khoản SPL công khai vào số dư riêng tư
Chuyển tiền trực tiếp và nạp tiền có các bảo đảm quyền riêng tư khác nhau. Để có quyền riêng tư tốt hơn, chúng tôi khuyên bạn nên dùng hình thức chuyển tiền trực tiếp thay vì nạp tiền.

On-/Off-Ramp

Chuyển trực tiếp tiền pháp định vào và ra khỏi số dư riêng tư.

Deposit

Nạp từ số dư tiền mã hóa công khai.

Chuyển khoản riêng tư

Người dùng có thể gửi các khoản chuyển riêng tư đến bất kỳ địa chỉ ví Solana nào.Đối với mỗi khoản chuyển riêng tư, SDK Quyền riêng tư tra cứu địa chỉ ví trong sổ đăng ký trên chuỗi để kiểm tra xem người nhận có ví riêng tư hay không.SDK Quyền riêng tư có thể chuyển một khoản chuyển riêng tư thành giao dịch rút từ riêng tư sang công khai khi người nhận không có ví riêng tư.
Chúng tôi khuyên bạn nên gắn nhãn giao dịch trong giao diện người dùng là giao dịch rút tiền để đảm bảo người dùng không vô tình rút về số dư công khai.

Private Transfer

Chuyển riêng tư vào số dư riêng tư.

Rút về số dư công khai

Có thể sử dụng giao dịch rút tiền theo hai cách:
  1. Là phương án dự phòng cho các khoản chuyển riêng tư đến người nhận không có ví riêng tư, hoặc
  2. Rút trực tiếp về tài khoản token SPL công khai.
Đối với giao dịch rút tiền, chúng tôi khuyên bạn nên ghi rõ rằng người dùng đang rời khỏi số dư riêng tư, tương tự như khi xuất cụm từ seed hoặc khóa riêng tư.

Withdraw

Rút về số dư tiền mã hóa công khai.

Không tìm thấy nội dung bạn đang tìm kiếm?

Hãy liên hệ với chúng tôi! Telegram | Email | Liên hệ