Skip to main content
  1. Thao tác nạp chuyển token từ số dư Solana công khai của người dùng sang số dư riêng tư của chính họ hoặc của người khác.
  2. Khoản nạp được gửi trong một giao dịch Solana duy nhất đến địa chỉ ví Solana.

Nạp tiền: Những gì được giữ riêng tư

Ring không cần cấp quyền có tính bảo mật, với số lượng và tài sản được mã hóa. Ring tùy chỉnh có thể được cấu hình ở chế độ bảo mật hoặc ẩn danh (mã hóa người gửi, người nhận, tài sản và số lượng).

Cách hoạt động của thao tác nạp

Thao tác nạp là một giao dịch chuyển Solana công khai, tạo ra số dư riêng tư.
  1. Số dư SOL hoặc SPL của người dùng được công khai trên chuỗi.
  2. Ví thiết lập số lượng và người nhận, tạo khoản nạp, sau đó chủ sở hữu ký. Thao tác nạp không yêu cầu bằng chứng ZK.
  3. Môi trường thực thi Solana xác minh chữ ký và gọi Solana Privacy Program.
  4. Ứng dụng theo dõi trạng thái thông qua hàm băm giao dịch Solana.
  1. Số dư SOL hoặc SPL của người dùng được công khai trên chuỗi.
  2. Ví đọc trạng thái công khai, tạo giao dịch chuyển, sau đó chủ sở hữu ký.
  3. Môi trường thực thi Solana xác minh chữ ký và gọi System Program hoặc Token Program để cập nhật số dư công khai.
  4. Ứng dụng theo dõi trạng thái thông qua hàm băm giao dịch Solana.
Đây là luồng giao dịch cấp cao dành cho Ring bảo mật không cần cấp quyền. So sánh với Ring tùy chỉnh trong phần khái niệm.

Bắt đầu

1

Điều kiện tiên quyết

Các ví dụ TypeScript yêu cầu Node.js 24 trở lên, pnpm 11.18.0 và Solana CLI.
Nguồn: sdk-libs/ts
Thêm khóa API Helius:
.env
Theo mặc định, các ví dụ sử dụng ví Solana CLI làm bên thanh toán. Bên thanh toán phải có SOL trên devnet. Xem Cách nhận SOL trên devnet.
2

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

  • SDK trả về các lệnh. Ứng dụng ký và gửi các lệnh đó.
  • sendAndConfirmFactory tạo một giao dịch Kit, gửi giao dịch đó và trả về chữ ký cùng slot đã được ghi nhận.
  • senderAddress là của người nhận. Ví dụ này nạp vào tài khoản của người gửi. Người nhận có thể là người gửi hoặc ví của bên thứ ba.
  • senderViewTag là senderAddress.confidentialViewTag(), khóa công khai Solana của người gửi trong các Ring bảo mật. Bộ lập chỉ mục sử dụng khóa này để trả về các đầu ra mã hóa khớp.
  • client.tree là cây Merkle trạng thái nhận cam kết đầu ra mới.
  • depositor / senderSigner cấp tiền và ký khoản nạp từ công khai sang riêng tư.
  • DepositAsset.sol() chọn SOL. DepositAsset.spl nhận địa chỉ mint, tài khoản token nguồn và chương trình token cho tài sản SPL và Token 2022.
  • recipientOwnerHash là senderAddress.ownerHash(). Hàm băm của khóa công khai dùng để ký và khóa công khai nullifier của người nhận là trường chủ sở hữu được cam kết trong tài khoản token riêng tư mới.
  • DEPOSIT_AMOUNT sử dụng lamport cho SOL hoặc đơn vị cơ sở của token cho tài sản SPL và Token 2022.
  • sendAndConfirm ký và gửi depositIx dưới dạng giao dịch Solana.
  • Quá trình xác nhận trả về slot đã được ghi nhận, dùng để kiểm soát việc tìm nạp từ bộ lập chỉ mục.

Ví dụ mã đầy đủ

Sao chép kho lưu trữ và chạy ví dụ:
Các ví dụ sử dụng Ring bảo mật trên local/devnet tại đây.
deposit_transfer_withdraw.ts

Hướng dẫn liên quan

Create a Private Wallet

Transfer

Withdraw

Read a Private Balance

Read Private History

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ệ