Chuyển đến nội dung chính
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 che chắn. Hệ thống quản lý khóa của bạn lưu giữ cặp khóa được che chắn. Mã ví sử dụng Privacy Interface và SDK để tạo các 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. Việc tích hợp cho phép người dùng:
  1. Tạo ví riêng tư tự lưu ký
  2. Nhận các giao dịch chuyể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
Việc tích hợp bao gồm:
  1. Cặp khóa được che chắn – trong hệ thống quản lý khóa của bạn để mã hóa
  2. Privacy Interface và SDK – để tạo các 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 che chắn

Việc tích hợp ví riêng tư sẽ thêm một cặp khóa được che chắn vào hệ thống quản lý khóa của bạn. Cặp khóa được che chắn dùng để ký, mã hóa và giải mã giao dịch.Cặp khóa được che chắn là một gói gồm khóa ký, khóa nullifier và khóa xem.
  • Khóa ký: Cặp khóa Ed25519 Solana của ví dùng để ký giao dịch.
  • Khóa xem: Một cặp khóa X25519 dùng để mã hóa và giải mã giao dịch.
  • Khóa nullifier:
Ví có thể suy ra cặp khóa được che chắn từ chữ ký EdDSA trên một thông điệp cố định.Chữ ký EdDSA có tính xác định, vì vậy chữ ký của cùng một cặp khóa Solana cho cùng một thông điệp luôn tạo ra cùng một cặp khóa được che chắn. Chúng tôi sử dụng chữ ký làm seed để suy ra một cặp khóa được che chắn.Payload của thông điệp cố định là "TSPP/derive/v1", được mã hóa dưới dạng thông điệp ngoài chuỗi Solana v0.Khóa ký được che chắn là khóa EdDSA Solana của ví. Khóa nullifier và khóa xem là các khóa bổ sung được suy ra từ chữ ký.
Chữ ký là seed dùng để suy ra khóa. Bất kỳ ai nắm giữ chữ ký đều có thể suy ra khóa nullifier và khóa xem, đồng thời giải mã giao dịch của người dùng. Từ chối mọi yêu cầu ký thông điệp "TSPP/derive/v1" từ bên thứ ba.
Mã giả để suy ra một cặp khóa được che chắn từ chữ ký Solana:
Ví dụ triển khai: TypeScript · Rust
2

Tích hợp Privacy Interface và SDK

Privacy Interface cho phép mã của bạn sử dụng Privacy SDK để tạo các 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 Privacy Interface theo hai phần.
  1. Giao diện ký để tạo giao dịch bằng Privacy SDK. Xem mã nguồn: TypeScript/ Rust
  2. Giao diện mã hóa và giải mã. Xem mã nguồn: TypeScript/ Rust
Privacy Interface không có trạng thái nên không lưu trữ số dư hoặc lịch sử giao dịch. Để cải thiện hiệu năng, bạn nên lưu cục bộ số dư và lịch sử giao dịch của người dùng vào bộ nhớ đệm.

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 đầ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 thông qua URL RPC Helius tiêu chuẩn.Tính năng tạo bằng chứng cục bộ sẽ sớm ra mắt. Trình tạo bằng chứng mặc định của các SDK là một enclave AWS Nitro đã được chứng thực.
3

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

Tạo ví riêng tư

Ví riêng tư được tạo theo hai bước:
  1. Suy ra cặp khóa được che chắn
  2. Đăng ký địa chỉ Solana trong một registry 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ư.
Trong ứng dụng ví, bạn có thể cho phép người dùng tạo ví riêng tư chỉ cho một khóa công khai “Private Wallet” chuyên dụng hoặc cho bất kỳ khóa công khai nào.
Registry liên kết khóa công khai dùng để ký với các khóa công khai nullifier và khóa xem. Các khóa công khai này cùng nhau tạo thành địa chỉ được che chắn.
Mỗi bản ghi registry 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 giao dịch chuyển riêng tư hay không.
  • owner là người ký Solana của người dùng, được dùng để suy ra PDA registry.
  • address là địa chỉ được che chắn của người dùng.
  • getRegisterInstructionAsync đăng ký các khóa của địa chỉ được che chắn.
  • getSetMergeEncryptionInstructionAsync bật tính năng hợp nhất cho các UTXO của người dùng. Một giao dịch chuyển có thể chi tiêu tối đa 40 UTXO, vì vậy việc hợp nhất đảm bảo người dùng luôn có thể chi tiêu toàn bộ số dư trong một giao dịch chuyển. Tìm hiểu thêm về việc hợp nhất UTXO.
  • sendTransaction ký và gửi giao dịch.
  • isWalletRegistered đọc PDA registry để 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ư lấy 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ư và ở bất cứ đâu ví chạy quá trình truy xuất dữ liệu bù: 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 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 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 đổi trực tiếp và nạp tiền có các mức bảo đảm quyền riêng tư khác nhau. Để có quyền riêng tư tốt hơn, bạn nên sử dụng hình thức chuyển đổi trực tiếp thay vì nạp tiền.

On-/Off-Ramp

Chuyển đổi 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.

Giao dịch chuyển riêng tư

Người dùng có thể gửi giao dịch chuyển riêng tư đến bất kỳ địa chỉ ví Solana nào.Đối với mỗi giao dịch chuyển riêng tư, Privacy SDK tra cứu địa chỉ ví trong registry trên chuỗi để kiểm tra xem người nhận có ví riêng tư hay không.Privacy SDK có thể chuyển một giao dịch 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ư.
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 sang số dư công khai.Bạn nên yêu cầu một chữ ký người dùng riêng biệt trong giao diện người dùng để đảm bảo người dùng không vô tình rút sang 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 tính năng rút tiền theo hai cách:
  1. Làm phương án dự phòng cho các giao dịch 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, 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ừ khôi phục 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ệ