Skip to main content
私人钱包由用于签名的 Solana 密钥对、一个空值密钥和一个用于加密的查看密钥组成,这些密钥合在一起形成了受保护的密钥对。 您的密钥管理中包含受保护的密钥对。 钱包代码使用 Privacy Interface 和 SDK 来构建私人交易。 密钥管理和 Privacy SDK 通过 Privacy Interface 连接。Privacy SDK 调用 Privacy API。Privacy API 将交易提交到 Solana。 该集成使您的用户能够:
  1. 创建一个自我托管的私人钱包
  2. 使用 Solana 地址接收私人转账
  3. 将代币存入私人余额
  4. 私密发送至 Solana 地址
  5. 提现至任意 Solana 地址
  6. 在本地解密私人余额和交易历史
该集成包括:
  1. 受保护的密钥对 – 在您的密钥管理中用于加密
  2. Privacy Interface 和 SDK – 用于构建私人交易
  3. 用户流程 – 集成到您的钱包中

您的 AI 的上下文

为现有的 Solana 钱包添加私有钱包

在 Cursor 中打开
1

集成受保护的密钥对

私人钱包集成会在您的密钥管理中添加一个受保护的密钥对。 受保护的密钥对用于签名、加密和解密交易。受保护的密钥对是签名、空值和查看密钥的集合。
  • 签名密钥: 钱包的 Ed25519 Solana 密钥对用于签署交易。
  • 查看密钥: 一个 P-256 密钥对,用于加密和解密交易。
  • 空值密钥:
钱包可以通过两种方式创建受保护的密钥对:
  1. 对于基于种子的钱包,选择从种子短语导出。
  2. 对于非基于种子的钱包,选择从 EdDSA 签名导出。
基于种子的钱包从一个 BIP-39 助记符和账户索引(0,1……)中导出受保护的密钥对。每个账户索引映射一个 Solana 密钥对到一个受保护的密钥对。 您可以通过与恢复 Solana 密钥对相同的方式恢复受保护的密钥对。例如:
  • 账户 0: Solana 密钥对 0 和受保护的密钥对 0
  • 账户 1: Solana 密钥对 1 和受保护的密钥对 1
受保护的签名密钥就是该账户的 Solana Ed25519 密钥。 空值和查看密钥是从同一个种子导出的附加密钥。
示例实现: TypeScript 示例 · Rust 示例
2

集成 Privacy Interface 和 SDK

Privacy Interface 使您的代码能够使用 Privacy SDK 来构建私人交易,而无需直接访问密钥材料。 您的密钥管理将 Privacy Interface 实现为两个部分。
  1. 使用 Privacy SDK 构建交易的签名接口。查看源码:TypeScript/ Rust
  2. 加密和解密接口。查看源码:TypeScript/ Rust
Privacy Interface 是无状态的,因此不存储余额或交易历史。 为了提高性能,我们建议在本地缓存用户余额和交易历史。

关于证明生成

生成零知识证明需要完整用户交易数据和空值密钥的明文输入。目前,通过标准 Helius RPC URL 提供服务器证明生成。本地证明生成即将推出。 计划在主网发布前在 AWS Nitro 上进行端到端加密的服务器证明生成。
3

集成用户流程

创建私人钱包

创建隐私钱包分为两个步骤:
  1. 派生屏蔽密钥对
  2. 在链上注册表中注册 Solana 地址。
创建隐私钱包无需向隐私余额充值。注册表将签名公钥与作废符公钥和查看公钥关联起来。这些公钥共同构成屏蔽地址。
每条注册记录都是由 拥有的 PDA,任何人都可以查询它,以确定某个 Solana 地址能否接收隐私转账。
  • owner 是用户的 Solana 地址,用于派生注册表 PDA。
  • address 是用户的屏蔽地址。
  • buildRegistrationTransaction 返回已编译的注册或密钥更新交易。如果钱包已注册,则返回 undefined。
  • sendTransaction 对交易进行签名并发送。
  • isWalletRegistered 读取注册表 PDA 以检查注册状态。
完整注册示例:TypeScript · Rust

同步隐私余额和交易历史记录

余额同步会从 RPC 获取加密状态,并在钱包中将其解密。RPC 不会执行解密。只有所有者可以使用查看密钥解密隐私余额。
钱包应在执行隐私交易之前以及任何运行回填的场景中解密并更新余额,包括钱包解锁、打开隐私钱包、应用恢复运行、网络重新连接、流中断或钱包恢复。

Read a Private Balance

Read Private Transaction History

向隐私余额充值

用户可以通过两种方式向隐私余额充值:
  1. 从法币余额入金至隐私加密货币余额
  2. 从公开 SPL 账户充值至隐私余额
法币入金和充值提供的隐私保障不同。 为获得更好的隐私保护,我们建议优先使用法币入金,而不是充值。

On-/Off-Ramp

直接向隐私余额存入法币或从中提取法币。

Deposit

从公开加密货币余额充值。

隐私转账

用户可以向任何 Solana 钱包地址发送隐私转账。对于每笔隐私转账,Privacy SDK 都会在链上注册表中查询钱包地址,以检查收款人是否拥有隐私钱包。当收款人没有隐私钱包时,Privacy SDK 可以将隐私转账转换为从隐私余额到公开余额的提现。
我们建议在 UI 中将该交易明确标记为提现,以确保用户不会意外提取到公开余额。

Private Transfer

以隐私方式转账至隐私余额。

提现至公开余额

提现有两种用途:
  1. 作为向没有隐私钱包的收款人进行隐私转账时的回退方案,或
  2. 直接提现至公开 SPL 代币账户。
对于提现,我们建议明确说明用户正在离开隐私余额,类似于导出助记词或私钥时的提示。

Withdraw

提现至公开加密货币余额。

没找到您要找的?

联系我们!Telegram | 电子邮件 | 联系