3 秒后将继续下一节内容
下一节
重播
学习下一节
登录 后可观看高清视频

隐私转账应用

80次播放
2026-05-08
  1. 打开初始代码, 了解它目前的功能, 并明确我们将要添加哪些内容.

  2. 更新存款函数, 使其接受 commitment 而非存储存款人地址. 我们不再直接存储存款信息, 而是存储一个 commitment, 提款时由用户证明自己知晓该 commitment.

  3. 将资金池改为存储 Merkle 树根节点. 我们不需要把整棵 Merkle 树存储在链上, 它可以在链下维护. 这也是我们在存款事件中附带 commitment 的原因, 方便索引器维护完整的 Merkle 树. 因此, 链上只需追踪当前在树中的位置和 Merkle 根节点即可.

  4. 添加 nullifier 追踪机制, 用于证明对特定 commitment 的所有权, 并防止同一笔存款被多次提取.

    4.1 创建 Noir 电路, 用于证明存款所有权, 并生成证明密钥和验证密钥.

    4.2 部署 Sunspot 验证程序, 用于在链上验证 ZK 证明.

    4.3 更新程序, 通过 CPI 调用 Sunspot 验证程序来验证 ZK 证明.

    4.4 了解前端如何使用 Solana Kit 构建并发送提款交易.

Solana