Skip to main content

私有钱包和用户

用户将加密余额保存在私有钱包中,并使用现有的 Solana Ed25519 密钥签署私密交易。私有钱包集成会在你的密钥管理中添加一个隐蔽密钥对。你可以自行集成,也可以使用嵌入式私有钱包。

私密交易

私密转账是普通的 Solana 交易。Solana 运行时会验证签名并调用 Solana Privacy Program,该程序在不泄露加密状态的情况下验证 ZK 证明。 典型的机密转账大约占用 927 字节,远低于 v1 的 4,096 字节限制。
适用于规范中的 2 输入、3 输出机密转账示例。 查看源代码:规范 · xtask/src/main.rs请参阅 Solana v1 交易布局。

RPC

一个 即可提供 Solana RPC、索引器和远程证明器。
  • Solana RPC – 返回公开余额,并将交易提交到 Solana 网络。
  • 索引器 – 索引器提供钱包读取余额和构建私密交易所需的加密状态;任何人也都可以无需许可地运行自己的索引器作为后备。
  • 证明器 – 零知识证明可以在本地生成,也可以由证明器服务器在几毫秒内生成,具体取决于交易和硬件。Helius 使用 GPU 生成证明。
对于自定义 Ring,可选功能包括可选的 Ring RPC,它使用共享查看密钥或配置的 Ring 审计员密钥来提供解密后的余额和历史记录。此外,匿名交易使用中继器,使用户不会显示为交易手续费支付方。

隐私和 Solana 程序

Solana Privacy Program (SPP) 是验证和执行所有私有状态转换的主程序。自定义 Ring 程序和 ZK Solana 程序会添加合规或应用逻辑,然后调用 SPP 来更新私有状态。 其他 Solana 程序可以在同一笔交易中通过 CPI 与这些程序交互,但需遵守 Solana 的交易限制,例如 CPI 深度上限为 5。

Solana Privacy Program (SPP)

Solana Privacy Program 会验证零知识证明并更新私有状态。使用它可以存入代币、转移私有余额,以及将代币提取到公开账户。 其他程序通过 CPI 调用 SPP,以执行私有状态转换。

自定义 Ring 程序

自定义 Ring 程序定义转账权限和任何其他权限主体,类似于 Token-2022。你可以用它配置审计员、要求共同签名人,或允许某个权限主体冻结余额。 它会验证 ZK 证明以执行自定义合规逻辑,然后调用 SPP 更新私有状态。

ZK Solana 程序

零知识 (ZK) Solana 程序支持在 Solana 程序中使用私有托管,以便对私有余额执行应用逻辑。你可以使用 ZK Solana 程序构建私密兑换、质押、借贷等功能。例如,机密兑换可以在不公开约定金额和价格的情况下强制执行这些条件。 该程序会验证其应用逻辑的 ZK 证明,然后直接或通过自定义 Ring 程序调用 SPP,以更新私有状态。

状态 Merkle 树和 Forester

默认 Ring 和所有自定义 Ring 都将私有状态存储在状态 Merkle 树账户中,该账户由 Forester 节点维护。 树账户对私有状态作出承诺,而无需将其存储在单独的 Solana 账户中。 因此,你需要使用专用的索引器 RPC 方法(如 getShieldedTransactionsByTags)读取余额和交易历史记录,而不是使用 getAccountInfo 等 Solana 账户方法。请参阅读取私有余额和读取私密交易历史记录。

吞吐量

该树存储在一个可写的 Solana 账户中。 写入此账户的私密转账会共享 Solana 每个区块 1200 万 CU 的单账户写锁限制。 不同的 UTXO 可以独立花费,但写入同一棵树的交易仍会共享 Solana 账户锁和计算限制。 在指令基准测试中,一笔机密转账大约消耗 140,000 CU。 因此,一棵树每个区块大约支持 86 笔私密转账;按照当前约 400 毫秒的 Solana 区块时间计算,每秒大约支持 215 笔交易。 协议可以添加更多树来提高吞吐量。 每棵树都是独立的可写账户,拥有自己的单账户计算预算,因此不同树上的交易不会争用同一个写锁预算。

SPL 接口

SPL 接口支持公开持有的代币与私下持有的代币之间互操作。它是按铸币地址划分的托管账户,可以无需许可地创建, 但每个铸币地址只需创建一次。
  • 将 SOL 和 SPL 资产存入私有余额时,由 Solana Privacy Program 拥有的接口 PDA 会托管代币,并创建以用户为所有者的 UTXO。
  • 提取到公开余额时,现有 UTXO 会被标记为已花费,代币则会释放到 Solana 代币账户。
对于尚无接口 PDA 的铸币地址,首次存款可以在同一笔交易中包含一条创建接口 PDA 的指令。

了解更多

Overview

Ring、隐私保障和交易流程。

Private State and UTXOs

私有余额的存储和花费方式。

Encryption and Privacy Guarantees

资产的加密方式以及隐蔽密钥对的作用。

Custom Enterprise Rings

了解如何配置自定义 Ring。

没找到您要找的?

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